4.3. インスタンスの CPU 機能フラグの設定
ホストコンピュートノードの設定を変更してコンピュートノードをリブートすることなく、インスタンスの CPU 機能フラグを有効または無効にすることができます。インスタンスに適用される CPU 機能フラグの標準的なセットを設定することで、コンピュートノード間でライブマイグレーションの互換性を実現するのに役立ちます。また、特定の CPU モデルにおいてインスタンスのセキュリティーやパフォーマンスに悪影響を与えるフラグを無効にしたり、セキュリティーやパフォーマンスの問題を軽減するフラグを有効したりして、インスタンスのパフォーマンスおよびセキュリティーを管理するのにも役立ちます。
4.3.1. インスタンスの CPU 機能フラグの設定 リンクのコピーリンクがクリップボードにコピーされました!
Compute サービスを設定し、特定の仮想 CPU モデルのインスタンスに CPU 機能フラグを適用します。
手順
-
アンダークラウドに
stackユーザーとしてログインします。 stackrcファイルを取得します。[stack@director ~]$ source ~/stackrc- Compute 環境ファイルを開きます。
インスタンスの CPU モードを設定します。
parameter_defaults: ComputeParameters: NovaLibvirtCPUMode: <cpu_mode><cpu_mode>をコンピュートノード上の各インスタンスの CPU モードに置き換えます。以下の有効な値のいずれかに設定します。-
host-model:(デフォルト) ホストコンピュートノードの CPU モデルを使用します。この CPU モードを使用して、重要な CPU フラグをインスタンスに自動的に追加し、セキュリティー上の欠陥の軽減策を提供します。 custom: 各インスタンスが使用する特定の CPU モデルを設定するのに使用します。注記CPU モードを
host-passthroughに設定すると、コンピュートノードでホストされるインスタンスにそのコンピュートノードと同じ CPU モデルおよび機能フラグを使用することができます。
-
(オプション)
NovaLibvirtCPUModeをcustomに設定した場合は、カスタマイズするインスタンス CPU モデルを設定します。parameter_defaults: ComputeParameters: NovaLibvirtCPUMode: 'custom' NovaLibvirtCPUModels: <cpu_model><
;cpu_model> を、ホストがサポートする CPU モデルのリストに置き換えます。CPU モデルを順に一覧表示します。この際、より一般的で高度ではない CPU モデルは最初にリストに配置され、より機能が充実した CPU モデルが最後になります。以下に例を示します。NovaLibvirtCPUModels: - SandyBridge - IvyBridge - Haswell-noTSX-IBRSモデル名の一覧は、
/usr/share/libvirt/cpu_map.xmlファイルを参照するか、ホストコンピュートノードで以下のコマンドのいずれかを使用します。RHEL バージョン 8.4 コンピュートノードの場合:
$ sudo podman exec -it nova_libvirt virsh cpu-models <arch>RHEL バージョン 9.2 コンピュートノードの場合:
$ sudo podman exec -it nova_virtqemud virsh cpu-models <arch>-
<arch>をコンピュートノードのアーキテクチャー名に置き換えてください (例:x86_64)。
指定の CPU モデルのインスタンスの CPU 機能フラグを設定します。
parameter_defaults: ComputeParameters: ... NovaLibvirtCPUModelExtraFlags: <cpu_feature_flags><cpu_feature_flags>を、有効または無効にする機能フラグのコンマ区切りリストに置き換えます。フラグを有効にするには各フラグの前に "+" を付け、無効にするには "-" を付けます。接頭辞が指定されていない場合、フラグが有効になります。特定の CPU モデルで利用可能な機能フラグのリストは、/usr/share/libvirt/cpu_map/*.xmlを参照してください。以下の例では、
IvyBridgeおよびCascadelake-Serverモデルの CPU 機能フラグpcidおよびssbdを有効にし、機能フラグmtrrを無効にします。parameter_defaults: ComputeParameters: NovaLibvirtCPUMode: 'custom' NovaLibvirtCPUModels: - IvyBridge - Cascadelake-Server NovaLibvirtCPUModelExtraFlags: 'pcid,+ssbd,-mtrr'その他の環境ファイルと共に Compute 環境ファイルをスタックに追加して、オーバークラウドをデプロイします。
(undercloud)$ openstack overcloud deploy --templates \ -e [your environment files] \ -e /home/stack/templates/<compute_environment_file>.yaml