スズハドットコム

IT関連や3Dプリンタの記事、たまに生活のメモを書いていきます。

自宅サーバをIntel N100ミニPCで縮小リプレース ④Larkbox X 2023にAlma Linux+KVMを導入(成功)

(2024/2/10追記)
Proxmox編を作成しました。
suzu-ha.com

こちらの続きです。 suzu-ha.com

インストール

インストールメディアは、AlmaLinux 9.2 x86_64版(AlmaLinux-9.2-x86_64-dvd.iso)をダウンロードしました。
https://mirrors.almalinux.org/isos.html

これを、Win32 Disk Imager RenewalでUSBメモリに書き込みました。
github.com 余談ですが、READMEの内容が脱線しまくっていて面白いです。書いているのは天才・登大遊氏です。

なお、Alma Linuxのwikiでは、USBメモリへの書き込みツールとして
Windowsの場合はRufus
Macの場合はbalenaEtcher
が、それぞれオススメされています。好きなツールを使ってください。
https://wiki.almalinux.org/documentation/installation-guide.html#iso-verification

AlmaLinuxのインストールUSBメモリをさしてLarkbox Xを起動すると、無事インストーラが起動しました。

インストールオプションです。
ハイパーバイザとして使いたいだけなので、「ソフトウェアの選択」は「仮想化ホスト」として、余計なパッケージが導入されないようにします。
また、ホスト名と有線LANのIPアドレスもここで設定済みです。

無事インストールできました。
デスクトップ環境は入ってませんので、ここからはSSH接続して操作します。

KVMのインストール

RedHatのこちらのドキュメントを参考にしました。
access.redhat.com

まず一通りパッケージをアップデートしてしまいましょう。

[root@larkbox-x ~]# dnf update

4分ほどで終わりました。

必要なパッケージをインストールします。
※実際に実行してみたところqemu-kvm、libvirtはインストール済みでした。virt-install、virt-viewerとその依存パッケージがインストールされます。

[root@larkbox-x ~]# dnf install qemu-kvm libvirt virt-install virt-viewer

仮想化サービスを起動します。

[root@larkbox-x ~]# for drv in qemu network nodedev nwfilter secret storage interface; do systemctl start virt${drv}d{,-ro,-admin}.socket; done

検証コマンドを実行します。

[root@larkbox-x ~]# virt-host-validate
  QEMU: 確認中 ハードウェア仮想化用                              : 成功
  QEMU: 確認中 if device /dev/kvm exists                                   : 成功
  QEMU: 確認中 if device /dev/kvm is accessible                            : 成功
  QEMU: 確認中 if device /dev/vhost-net exists                             : 成功
  QEMU: 確認中 if device /dev/net/tun exists                               : 成功
  QEMU: 確認中 for cgroup 'cpu' controller support                         : 成功
  QEMU: 確認中 for cgroup 'cpuacct' controller support                     : 成功
  QEMU: 確認中 for cgroup 'cpuset' controller support                      : 成功
  QEMU: 確認中 for cgroup 'memory' controller support                      : 成功
  QEMU: 確認中 for cgroup 'devices' controller support                     : 成功
  QEMU: 確認中 for cgroup 'blkio' controller support                       : 成功
  QEMU: 確認中 デバイス割り当て IOMMU サポート用              : 成功
  QEMU: 確認中 IOMMU がカーネルによって有効になっている場合: WARN (IOMMU appears to be disabled in kernel. Add intel_iommu=on to kernel cmdline arguments)
  QEMU: 確認中 安全なゲストサポートのため                     : WARN (Unknown if this platform has Secure Guest support)

IOMMUが有効ではないと出ましたので、解消しましょう。
/etc/default/grubを編集します。

[root@larkbox-x ~]# vi /etc/default/grub

GRUB_CMDLINE_LINUXの行に、赤文字部分を追記します。

GRUB_CMDLINE_LINUX="resume=/dev/mapper/almalinux-swap rd.lvm.lv=almalinux/root rd.lvm.lv=almalinux/swap rhgb quiet intel_iommu=on"

grubコンフィグファイルを生成します。

[root@larkbox-x ~]# grub2-mkconfig -o /boot/grub2/grub.cfg

再起動します。

[root@larkbox-x ~]# reboot

再起動後に検証コマンドを実行すると、IOMMUの警告は解消していました。

[root@larkbox-x ~]# virt-host-validatevirt-host-validate
  QEMU: 確認中 ハードウェア仮想化用                              : 成功
  QEMU: 確認中 if device /dev/kvm exists                                   : 成功
  QEMU: 確認中 if device /dev/kvm is accessible                            : 成功
  QEMU: 確認中 if device /dev/vhost-net exists                             : 成功
  QEMU: 確認中 if device /dev/net/tun exists                               : 成功
  QEMU: 確認中 for cgroup 'cpu' controller support                         : 成功
  QEMU: 確認中 for cgroup 'cpuacct' controller support                     : 成功
  QEMU: 確認中 for cgroup 'cpuset' controller support                      : 成功
  QEMU: 確認中 for cgroup 'memory' controller support                      : 成功
  QEMU: 確認中 for cgroup 'devices' controller support                     : 成功
  QEMU: 確認中 for cgroup 'blkio' controller support                       : 成功
  QEMU: 確認中 デバイス割り当て IOMMU サポート用              : 成功
  QEMU: 確認中 IOMMU がカーネルによって有効になっている場合: 成功
  QEMU: 確認中 安全なゲストサポートのため                     : WARN (Unknown if this platform has Secure Guest support)

なお、「安全なゲストサポートのため」の項目は、ググったところAMDとIBMプロセッサのみが対象で、Intelの場合はチェックしてないらしいという記事にたどり着きました。
公式なドキュメントではないので信頼性は不明ですが、この警告は無視することにします。

cockpit(Linux管理用のWebコンソール)を有効にする

cockpitでKVMの管理も出来るようなので、これを有効化しましょう。

サービスを有効化します。

[root@larkbox-x ~]# systemctl enable --now cockpit.socket

cockpitへのrootログインは禁止されています。
今回はお試しなので許可します。実運用するときは別ユーザにした方が安全ですね。

[root@larkbox-x ~]# vi /etc/cockpit/disallowed-users

以下のようにrootの行をコメントアウトします。

# List of users which are not allowed to login to Cockpit
# root

cockpitサービスを再起動して反映させれば、cockpitにrootログインできるようになります。

[root@larkbox-x ~]# systemctl restart cockpit.socket

ログインできました。

この時点では左側のメニューに「Virtual machines」がありません。
cockpit-machinesパッケージが必要なので、追加します。

[root@larkbox-x ~]# dnf install cockpit-machines

「Virtual machines」メニューが追加されました。

環境設定

ストレージプール

Larkbox Xの内蔵SSDは512GBしかなく心許ないので、旧サーバから抜き取った1TB SSDと4TB HDDを使います。SSD/HDDスタンドをを使って外付けしました。

SSDを /kvm_storpool/default にマウントします。
その後、defaultという名前のストレージプールとして登録します。

というのも、仮想マシンを新規作成する際に、ストレージは「ボリュームの新規作成」か既存ボリュームを指定するかの2択です。

既存ボリュームを指定する場合は、あらかじめ別画面でストレージプール内にボリュームを作成しておき、仮想マシン作成時にそれを指定することになります。面倒です。

「ボリュームの新規作成」では、作成先の指定などは一切できません。
・defaultストレージプールが存在しない場合
⇒/var/lib/libvirt/imagesをdefaultストレージプールとして作成し、そこにボリュームを作成
・defaultストレージプールが存在する場合
⇒そこにボリュームを作成
という挙動をします。

ですので、デフォルトでボリュームを作成したいストレージプールにはdefaultと名付けるのがベストなのです。

ファイアウォール

仮想マシンの画面を表示する際に5900ポートで接続します。
このポートはデフォルトで解放されていないので、ファイアウォールを開放しておきます。

作業前の状態です。5900は解放されていません。

[root@larkbox-x ~]# firewall-cmd --list-all
  (略)
  services: cockpit dhcpv6-client ssh
  ports: 
  (略)

ポートを解放します。

[root@larkbox-x ~]# firewall-cmd --add-port=5900/tcp --permanent

ポート5900が解放されました。

[root@larkbox-x ~]# firewall-cmd --add-port=5900/tcp --permanentlist-all
  (略)
  services: cockpit dhcpv6-client ssh
  ports: 5900/tcp
  (略)

仮想マシンの作成

仮想マシンを新規作成します。

問題なくWindows11のインストールが完了しました。(スクショなしで申し訳ないですが)

ベンチマーク

CPU:4C4T、メモリ:10GB設定にして、このWindows11仮想マシンでCinebench R23を動かしてみます。
マルチコア2729、シングルコア826でした。

こちらの記事によると、仮想化なしの素のLarkbox X 2023ではマルチコア:2976、シングルコア920ですので、仮想化によって性能10%ダウンくらいですね。
複数OSを切り替えながら使えることとトレードオフなので、良しとしましょう。
【西川和久の不定期コラム】Core i5-7200Uと同レベルの性能!? N100搭載ミニPC!「CHUWI LarkBox X」 - PC Watch

うまく導入できましたので、自宅サーバのリプレースはLarkbox X 2023+Alma Linux+KVMとします。
次は、KVMの設定を詰めていきましょうか。

suzu-ha.com