AlmaLinux 9.1で自分用のストレージサーバを構築する(KVMホスト編)
旧ブログ記事のアーカイブです
- 自宅鯖 構成メモ 2023
- AlmaLinux 9.1 で自分用のストレージサーバを構築する(KVM ホスト編) ← イマココ
- AlmaLinux 9.1 で自分用のストレージサーバを構築する(VM ゲスト編)
- AlmaLinux 9.1 で自分用のストレージサーバを構築する(Nextcloud 編)
インストール手順は他でさんざん紹介されてるので省略。
こだわりポイント(?): SOFTWARE SELECTION では Minimal Install を選択してあとから必要なものをインストールする方法を取る。
dnf upgradednf 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 Partedmkpart nextcloud 0% 100% # 名前をつけてパーティショニングp # 現在の状況を確認mdadmをインストールする。
dnf install mdadm4 個の 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/mdstatPersonalities : [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 chunkXFS でフォーマット。
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-viewerKVM 動作に必要なデーモンlibvirtdを起動する。ついでに自動で起動するようにする。
systemctl start libvirtdsystemctl enable libvirtdcockpit をインストールする。cockpit-machinesは cockpit で仮想マシンを扱うために必要。
dnf install cockpit cockpit-machinescockpit を起動する。ついでに自動で起動するようにする。
systemctl start cockpit.socketsystemctl enable cockpit.socketcockpit にアクセスできるようにポートを開放する。(既に解放されていれば設定の必要なし。)
firewall-cmd --list-all # ファイアウォールの設定確認 cockpit用に既にポートが解放されていれば設定の必要なしfirewall-cmd --add-service=cockpit --permanentfirewall-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.orgVM 用のイメージファイルを置いておくディレクトリを適当に作成する。
mkdir /vhdcockpit にブラウザからアクセスする。
URL: http://192.168.10.xxx(ホストサーバのIPアドレス):9090
仮想マシン > ストレージプール と進み、ストレージプールの作成ボタンを押す。
以下の画像のように入力し、作成を押す。

ストレージプール画面に戻るので、作成したストレージプールを有効化する。
状態が「アクティブ」になっていれば OK。

次回は VM ゲストを作成し、目的のアプリを動かす準備をする。
AlmaLinux 9.1 で自分用のストレージサーバを構築する(VM ゲスト編)