インストール手順は他でさんざん紹介されてるので省略。
こだわりポイント(?): SOFTWARE SELECTION では Minimal Install
を選択してあとから必要なものをインストールする方法を取る。
dnf upgrade
dnf install vim rsync mlocate wget tar bash-completion
セキュリティを意識して公開鍵を利用した SSH でのみ鯖機にログインできるようにする。
クライアント側で公開鍵を作成する。
鍵の暗号化アルゴリズムにEd25519
を使う。ssh-keygen のデフォルト暗号化アルゴリズムであるRSA
よりセキュリティに優れているらしい。
ssh-keygen -t ed25519
公開鍵をホスト側に送る。
USB メモリに作成した公開鍵を入れてホスト側でマウントして受け取る。
公開鍵は~/.ssh/
にauthorized_keys
という名前で配置する。
ホスト側で SSH 接続のための設定を行う。
/etc/ssh/sshd_config
をエディタで開きPubkeyAuthentication yes
のコメントアウトを外す。
SSH デーモンを再起動する。
systemctl restart sshd
クライアント側から SSH での接続テストを行う。
ssh root@192.168.10.xxx
~/.bashrc
をエディタで開き、以下を追加する。
HISTTIMEFORMAT='%Y-%m-%d %H:%M:%S '
一度ログアウトしてから再度ログインし、history コマンドを実行してコマンドの実行時間が表示されていることを確認する。
[root@host-al91 ~]# history
1 2023-04-12 22:54:08 df -h
2 2023-04-12 22:54:08 blkid
...
RAID に使用するディスクのパーティショニングを行う。
同様の操作をsdc
の他に、sdd
、sde
、sdf
に対しても行う。
parted -l # ディスクの一覧を表示する
parted /dev/sdc # 操作を行うディスクを選択
p # 現在の状況を確認
mklabel gpt # GNU Parted
mkpart nextcloud 0% 100% # 名前をつけてパーティショニング
p # 現在の状況を確認
mdadm
をインストールする。
dnf install mdadm
4 個の HDD でで RAID 6 を構成する。
parted -l # ディスクの一覧を表示する
mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sd[cdef]1 # RAID6を4つのHDDで構成する
cat /proc/mdstat
で RAID の状態を確認できる。
resync
が完了するまで作成した RAID への操作(書き込みなど)はしない。
かなり時間がかかるので気長に待とう。
[root@host-al91 ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid6 sdf1[3] sde1[2] sdd1[1] sdc1[0]
7813769216 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/4] [UUUU]
[>....................] resync = 0.0% (575356/3906884608) finish=905.2min speed=71919K/sec
bitmap: 30/30 pages [120KB], 65536KB chunk
XFS
でフォーマット。
mkfs -t xfs -f /dev/md0
仮想ブリッジ作成。
nmcli c add type bridge con-name bridge0 ifname bridge0
仮想ブリッジに物理 NIC enp2s0
を割り当てる。
nmcli c m enp2s0 master bridge0
仮想ブリッジに対して適宜設定をしていく。
nmcli c m bridge0 ipv4.method manual ipv4.addresses '192.168.10.xxx/24' ipv4.gateway '192.168.10.xxx'
nmcli c m bridge0 ipv4.dns 'xxx.xxx.xxx.xxx'
nmcli c m bridge0 ipv6.method disabled
仮想ブリッジの起動と物理 NIC の再起動を行う。
nmcli c up bridge0; nmcli c down enp2s0; nmcli c up enp2s0
疎通確認などを行い問題がないことを確認する。
KVM 動作に必要なものをインストールする。
dnf install qemu-kvm libvirt virt-install virt-viewer
KVM 動作に必要なデーモンlibvirtd
を起動する。ついでに自動で起動するようにする。
systemctl start libvirtd
systemctl enable libvirtd
cockpit をインストールする。cockpit-machines
は cockpit で仮想マシンを扱うために必要。
dnf install cockpit cockpit-machines
cockpit を起動する。ついでに自動で起動するようにする。
systemctl start cockpit.socket
systemctl enable cockpit.socket
cockpit にアクセスできるようにポートを開放する。(既に解放されていれば設定の必要なし。)
firewall-cmd --list-all # ファイアウォールの設定確認 cockpit用に既にポートが解放されていれば設定の必要なし
firewall-cmd --add-service=cockpit --permanent
firewall-cmd --reload
色々追加したのでサービス自動起動の確認も兼ねて再起動しておく。
reboot
設定したサービスの起動状況の確認と、cockpit の画面にアクセスできれば OK。
※ 注意
この時点だと libvirtd 自動起動の設定をしたにもかからわず自動で起動しなかった。
念のためjournalctl
でログを確認したが特に問題なさそうだったのでとりあえずそのまま行く。
予想: まだ仮想マシンを作成していないから?
[root@host-al91 ~]# systemctl status libvirtd
○ libvirtd.service - Virtualization daemon
Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: disabled)
Active: inactive (dead)
TriggeredBy: ○ libvirtd.socket
○ libvirtd-tcp.socket
○ libvirtd-admin.socket
○ libvirtd-tls.socket
○ libvirtd-ro.socket
Docs: man:libvirtd(8)
https://libvirt.org
VM 用のイメージファイルを置いておくディレクトリを適当に作成する。
mkdir /vhd
cockpit にブラウザからアクセスする。
URL: http://192.168.10.xxx(ホストサーバのIPアドレス):9090
仮想マシン > ストレージプール と進み、ストレージプールの作成ボタンを押す。
以下の画像のように入力し、作成を押す。
ストレージプール画面に戻るので、作成したストレージプールを有効化する。
状態が「アクティブ」になっていれば OK。
次回は VM ゲストを作成し、目的のアプリを動かす準備をする。
AlmaLinux 9.1 で自分用のストレージサーバを構築する(VM ゲスト編)