スズハドットコム

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

自宅サーバをIntel N100ミニPCで縮小リプレース ⑤KVMの設定を考える

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

前の記事で、リプレース後の自宅サーバはAlma Linux+KVMで行くことにしました。
今回は設定を詰めていきます。
suzu-ha.com

目次

コンソール表示関連

コンソール表示の手段

cockpitを利用する場合、KVM仮想マシンのコンソール表示(画面表示)する選択肢は3つあります。

①シリアルコンソール
シリアルコンソールはシリアルポート経由で機器を制御する方法です。
UNIXやネットワーク機器ならともかく、Windowsに対してシリアルコンソール接続するのはマニアックすぎるのでやめときます。

②VNCコンソール
VNCコンソールは、仮想マシンの画面がcockpitのWeb画面内に映ります。

マウスカーソルの制御がうまくいってないようで、画面下側、右側にマウス操作ができない領域があります。
GUI画面では致命的です。

③デスクトップビューアー
デスクトップビューアーはWindows上で動作するVNCクライアントアプリケーションです。
※cockpit画面での表記はデスクトップビューアーですが、配布サイトでの表記は「virt-viewer」、インストール後にスタートメニュー上で表示されるアプリケーション名は「Remote viewer」です。バラバラですね。
若干動作に不安定さを感じますが、前述のVNCコンソールはマウス操作できない問題があるので、消去法でこれしかありません。デスクトップビューアーを使うことにします。

VNCのリッスンIPアドレスの指定

cockpit画面内の「リモートビューアーの起動」ボタンをクリックすると拡張子「.vv」のファイルがダウンロードされます。
この中にサーバのIPアドレスやポートが書いてあり、先ほどのデスクトップビューアーはそれを読み込んでサーバに接続する仕組みになっています。
ですが、KVMの設定ファイルではサーバのIPアドレスが"0.0.0.0"となっており、.vvファイルにもこのIPアドレスが記載されてくるので繋がりません。
正しいIPアドレスを指定してやりましょう。

confファイルを編集します。

[root@larkbox-x ~]# vi /etc/libvirt/qemu.conf

ファイル内の以下の行を、サーバのIPアドレスに書き換えます。

vnc_listen = "0.0.0.0"

なお、これと似たようなspice_listenというパラメータもありますが、SPICEは既に非推奨ですので修正不要です。

ファイアウォール

VNCポートは5900から順に、起動している仮想マシンの分だけ割り振られるようです。
リソース的に起動する仮想マシンは1個か2個だと思いますが、ある程度まとめてポートを開けておきます。

cockpit画面で設定します。
「ネットワーキング」-「ファイアウォール」-「ルールとゾーンを編集する」
「Public ゾーン」-「サービスの追加」

項目
サービス/カスタムポート カスタムポート
TCP 5900-5910
UDP 空白
ID custom--5900-5910(デフォルトのまま)
説明 KVM-VNC

パフォーマンスプロファイル

パフォーマンスチューニングを行うデーモンであるtunedのプロファイルに仮想化ホスト向けのものが存在したので、設定します。
なお、設定後に仮想マシンのベンチマークを測定したところほぼ変わらなかったので、効果のほどは不明です。

cockpit画面で設定します。
「概要」-「設定」-「パフォーマンスプロファイル」

項目
パフォーマンスプロファイル virtual-host

ネットワークをブリッジ構成にする

NATかブリッジか

KVMのネットワーク構成は、デフォルトではNAT構成です。

物理サーバが接続されるネットワークセグメント(図では10.10.10.0/24)とは別に、仮想マシン専用のセグメント(図では192.168.122.1/24)が作成されます。
仮想マシン→外部の通信や仮想マシン同士の通信は問題なくできますが、外部→仮想マシンの通信はハードルが上がります。
仮想マシンをサーバにしてサービスを提供したいような場合には不向きです。

ブリッジ構成にすると、この問題が解消します。

仮想マシンは物理サーバと同じネットワークセグメント(図では10.10.10.0/24)に接続されます。
物理サーバが繋がっているL2スイッチに仮想サーバも接続されるイメージですね。

画像出典:
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/9/html/configuring_and_managing_virtualization/types-of-virtual-machine-network-connections_configuring-virtual-machine-network-connections

ブリッジインターフェースの作成

ブリッジ接続するためにインターフェースを新規作成する必要があります。
cockpit画面で設定します。
「ネットワーキング」-「インターフェース」-「ブリッジの追加」

項目
名前 br0
ポート enp2s0(LANケーブルが接続されているポートを指定します)
スパニングツリープロトコル チェック無し
仮想ネットワーク(NAT)の削除

NAT接続用の仮想ネットワークが「default」という名前であらかじめ定義されています。
紛らわしいので削除してしまいます。
cockpit画面で設定します。
「仮想マシン」-「ネットワーク」
「default」の3点リーダをクリックして、削除を選択する。

この状態で仮想マシンを作成すると、ネットワーク設定は
インターフェース形式:Bridge to LAN
ソース:br0(上で作成したブリッジインターフェース)
がデフォルトとなり、ブリッジ接続されます。

ストレージ関連

ストレージ関連は前の記事と同様
①ディスクデバイスをXFSとしてマウントし
②そのマウントポイントのディレクトリをKVMのストレージプールとして登録します。

ストレージ

cockpit画面で設定します。
「ストレージ」-「ドライブ」-「1TB SSD(/dev/sdb)」

項目
パーティション構成 GPT
名前 /dev/sdb1
タイプ XFS
マウントポイント /kvm_storpool/default
サイズ 1TB

「ストレージ」-「ドライブ」-「4TB HDD(/dev/sdc)」

項目
パーティション構成 GPT
名前 /dev/sdc1
タイプ XFS
マウントポイント /kvm_storpool/hdd4tb
サイズ 4TB
ストレージプール

cockpit画面で設定します。
「仮想マシン」-「ストレージプール」-「ストレージプールの作成」

項目
名前 default
タイプ ファイルシステムのディレクトリ
ターゲットパス /kvm_storpool/default
ホスト起動時にプールを開始 チェックあり
項目
名前 hdd4tb
タイプ ファイルシステムのディレクトリ
ターゲットパス /kvm_storpool/hdd4tb
ホスト起動時にプールを開始 チェックあり