18.4. libvirt デーモンの最適化
libvirt 仮想化スイートは、RHEL ハイパーバイザーの管理層として機能し、libvirt の設定は仮想化ホストに大きな影響を与えます。特に、RHEL 9 には、モノリシックまたはモジュラーの 2 つのタイプの libvirt デーモンが含まれており、使用するデーモンのタイプは、個々の仮想化ドライバーをどの程度細かく設定できるかに影響します。
18.4.1. libvirt デーモンのタイプ リンクのコピーリンクがクリップボードにコピーされました!
RHEL 9 は、以下の libvirt デーモンタイプをサポートします。
- モノリシックな libvirt
従来の
libvirtデーモンであるlibvirtdは、単一の設定ファイル/etc/libvirt/libvirtd.confを使用して、さまざまな仮想化ドライバーを制御します。このため、
libvirtdは一元化されたハイパーバイザー設定を可能にしますが、システムリソースの使用が非効率的となる可能性があります。したがって、libvirtdは、RHEL の今後のメジャーリリースではサポートされなくなる予定です。ただし、RHEL 8 から RHEL 9 に更新した場合、ホストはデフォルトで引き続き
libvirtdを使用します。- モジュラー libvirt
RHEL 9 で新たに導入されたモジュラー
libvirtは、仮想化ドライバーごとに特定のデーモンを提供します。これらには以下が含まれます。- virtqemud - ハイパーバイザー管理用のプライマリーデーモン
- virtinterfaced - ホストの NIC 管理用のセカンダリーデーモン
- virtnetworkd - 仮想ネットワーク管理用のセカンダリーデーモン
- virtnodedevd - ホストの物理デバイス管理用のセカンダリーデーモン
- virtnwfilterd - ホストのファイアウォール管理用のセカンダリーデーモン
- virtsecretd - ホストシークレット管理用のセカンダリーデーモン
- virtstoraged - ストレージ管理用のセカンダリーデーモン
デーモンごとに個別の設定ファイル (
/etc/libvirt/virtqemud.confなど) があります。したがって、モジュラーのlibvirtデーモンは、libvirtリソース管理を細かく調整するためのより良いオプションを提供します。RHEL 9 を新規インストールした場合、モジュラー
libvirtはデフォルトで設定されています。
次のステップ
-
RHEL 9 で
libvirtdを使用する場合、Red Hat は、モジュール式デーモンへの切り替えを推奨しています。手順は、モジュラー libvirt デーモンの有効化 を参照してください。
18.4.2. モジュラー libvirt デーモンの有効化 リンクのコピーリンクがクリップボードにコピーされました!
RHEL 9 では、libvirt ライブラリーは、ホスト上の個々の仮想化ドライバーセットを処理するモジュラーデーモンを使用します。たとえば、virtqemud デーモンは QEMU ドライバーを処理します。
RHEL 9 ホストの新規インストールを実行すると、ハイパーバイザーはデフォルトでモジュラー libvirt デーモンを使用します。ただし、ホストを RHEL 8 から RHEL 9 にアップグレードした場合、ハイパーバイザーは RHEL 8 のデフォルトであるモノリシックな libvirtd デーモンを使用します。
その場合、Red Hat は、代わりにモジュラー libvirt デーモンを有効にすることを推奨します。これは、libvirt リソース管理を微調整するためのより良いオプションを提供するためです。また、RHEL の今後のメジャーリリースでは libvirtd はサポートされなくなる予定です。
前提条件
ハイパーバイザーがモノリシックな
libvirtdサービスを使用している。# systemctl is-active libvirtd.service activeこのコマンドで
activeが表示される場合、libvirtdを使用していることになります。- 仮想マシンがシャットダウンしている。
手順
libvirtdとそのソケットを停止します。$ systemctl stop libvirtd.service $ systemctl stop libvirtd{,-ro,-admin,-tcp,-tls}.socketlibvirtdを無効にして、システムの起動時に開始されないようにします。$ systemctl disable libvirtd.service $ systemctl disable libvirtd{,-ro,-admin,-tcp,-tls}.socketモジュラーの
libvirtデーモンを有効にします。# for drv in qemu interface network nodedev nwfilter secret storage; do systemctl unmask virt${drv}d.service; systemctl unmask virt${drv}d{,-ro,-admin}.socket; systemctl enable virt${drv}d.service; systemctl enable virt${drv}d{,-ro,-admin}.socket; doneモジュラーデーモンのソケットを起動します。
# for drv in qemu interface network nodedev nwfilter secret storage; do systemctl start virt${drv}d{,-ro,-admin}.socket; doneオプション: リモートホストからホストに接続する必要がある場合は、仮想化プロキシーデーモンを有効にして起動します。
システムで
libvirtd-tls.socketサービスが有効になっているかどうかを確認します。# grep listen_tls /etc/libvirt/libvirtd.conf listen_tls = 0libvirtd-tls.socketが有効になっていない場合 (listen_tls = 0)、次のようにvirtproxydをアクティブにします。# systemctl unmask virtproxyd.service # systemctl unmask virtproxyd{,-ro,-admin}.socket # systemctl enable virtproxyd.service # systemctl enable virtproxyd{,-ro,-admin}.socket # systemctl start virtproxyd{,-ro,-admin}.socketlibvirtd-tls.socketが有効になっている場合 (listen_tls = 1)、次のようにvirtproxydをアクティブにします。# systemctl unmask virtproxyd.service # systemctl unmask virtproxyd{,-ro,-admin,-tls}.socket # systemctl enable virtproxyd.service # systemctl enable virtproxyd{,-ro,-admin,-tls}.socket # systemctl start virtproxyd{,-ro,-admin,-tls}.socketvirtproxydの TLS ソケットを有効にするには、libvirtで使用できるように設定された TLS 証明書がホストに必要です。詳細は、アップストリームの libvirt ドキュメント を参照してください。
検証
有効化された仮想化デーモンをアクティブにします。
# virsh uri qemu:///systemホストが
virtqemudモジュラーデーモンを使用していることを確認します。# systemctl is-active virtqemud.service activeステータスが
activeの場合、libvirtモジュラーデーモンは正常に有効になっています。