12.2. メモリー暗号化用 AMD SEV コンピュートノードの指定
メモリーの暗号化を使用するインスタンス用に AMD SEV コンピュートノードを指定するには、AMD SEV ロールを設定するための新規ロールファイルを作成し、メモリーの暗号化のためにコンピュートノードをタグ付けするための新規オーバークラウドフレーバーおよび AMD SEV リソースクラスを設定する必要があります。
手順
-
アンダークラウドに
stackユーザーとしてログインします。 stackrcファイルを取得します。[stack@director ~]$ source ~/stackrcオーバークラウドに必要なその他のロールに加えて
ComputeAMDSEVロールが含まれる新しいロールデータファイルを生成します。以下の例では、ロールデータファイルroles_data_amd_sev.yamlを生成します。これには、ControllerおよびComputeAMDSEVロールが含まれます。(undercloud)$ openstack overcloud roles \ generate -o /home/stack/templates/roles_data_amd_sev.yaml \ Compute:ComputeAMDSEV Controllerroles_data_amd_sev.yamlを開き、以下のパラメーターおよびセクションを編集または追加します。セクション/パラメーター 現在の値 新しい値 ロールのコメント
Role: ComputeRole: ComputeAMDSEVロール名
Computename: ComputeAMDSEVdescriptionBasic Compute Node roleAMD SEV Compute Node roleHostnameFormatDefault%stackname%-novacompute-%index%%stackname%-novacomputeamdsev-%index%deprecated_nic_config_namecompute.yamlcompute-amd-sev.yaml-
オーバークラウド用の AMD SEV コンピュートノードをノード定義のテンプレート
node.jsonまたはnode.yamlに追加して、そのノードを登録します。詳細は、director のインストールと使用方法 の オーバークラウドノードの登録 を参照してください。 ノードのハードウェアを検査します。
(undercloud)$ openstack overcloud node introspect \ --all-manageable --provide詳細は、director のインストールと使用方法 ガイドの ベアメタルノードハードウェアのインベントリーの作成 を参照してください。
AMD SEV コンピュートノード用の
compute-amd-sevオーバークラウドフレーバーを作成します。(undercloud)$ openstack flavor create --id auto \ --ram <ram_size_mb> --disk <disk_size_gb> \ --vcpus <no_vcpus> compute-amd-sev-
<ram_size_mb>をベアメタルノードの RAM (MB 単位) に置き換えます。 -
<disk_size_gb>をベアメタルノード上のディスク容量 (GB 単位) に置き換えます。 <no_vcpus>をベアメタルノードの CPU 数に置き換えます。注記これらの属性は、インスタンスのスケジューリングには使用されません。ただし Compute スケジューラーは、ディスク容量を使用してルートパーティションのサイズを決定します。
-
ノードリストを取得して UUID を把握します。
(undercloud)$ openstack baremetal node listメモリーの暗号化用に指定する各ベアメタルノードに、カスタムの AMD SEV リソースクラスをタグ付けします。
(undercloud)$ openstack baremetal node set \ --resource-class baremetal.AMD-SEV <node><node>をベアメタルノードの ID に置き換えてください。compute-amd-sevフレーバーをカスタム AMD SEV リソースクラスに関連付けます。(undercloud)$ openstack flavor set \ --property resources:CUSTOM_BAREMETAL_AMD_SEV=1 \ compute-amd-sevBare Metal サービスノードのリソースクラスに対応するカスタムリソースクラスの名前を指定するには、リソースクラスを大文字に変換し、それぞれの句読点をアンダースコアに置き換え、
CUSTOM_の接頭辞を追加します。注記フレーバーが要求できるのは、ベアメタルリソースクラスの 1 つのインスタンスだけです。
以下のフレーバー属性を設定して、Compute スケジューラーがインスタンスのスケジューリングにベアメタルフレーバー属性を使用するのを防ぎます。
(undercloud)$ openstack flavor set \ --property resources:VCPU=0 --property resources:MEMORY_MB=0 \ --property resources:DISK_GB=0 compute-amd-sev(オプション)
ComputeAMDSEVロールのネットワークトポロジーがComputeロールのネットワークトポロジーと異なる場合は、カスタムネットワークインターフェイステンプレートを作成します。詳しくは、Advanced Overcloud Customizationの Custom network interface templates を参照してください。ComputeAMDSEVロールのネットワークトポロジーがComputeロールと同じ場合は、compute.yamlで定義されるデフォルトのネットワークトポロジーを使用することができます。ComputeAMDSEVロールのNet::SoftwareConfigをnetwork-environment.yamlファイルに登録します。resource_registry: OS::TripleO::Compute::Net::SoftwareConfig: /home/stack/templates/nic-configs/compute.yaml OS::TripleO::ComputeCPUPinning::Net::SoftwareConfig: /home/stack/templates/nic-configs/<amd_sev_net_top>.yaml OS::TripleO::Controller::Net::SoftwareConfig: /home/stack/templates/nic-configs/controller.yaml<amd_sev_net_top>をComputeAMDSEVロールのネットワークトポロジーが含まれるファイルの名前に置き換えます。たとえば、デフォルトのネットワークトポロジーを使用する場合はcompute.yamlです。以下のパラメーターを
node-info.yamlファイルに追加して、AMD SEV コンピュートノードの数および AMD SEV 対応コンピュートノード用に使用するフレーバーを指定します。parameter_defaults: OvercloudComputeAMDSEVFlavor: compute-amd-sev ComputeAMDSEVCount: 3ロールが作成されたことを確認するには、以下のコマンドを入力します。
(undercloud)$ openstack baremetal node list --long -c "UUID" \ -c "Instance UUID" -c "Resource Class" -c "Provisioning State" \ -c "Power State" -c "Last Error" -c "Fault" -c "Name" -f json出力例:
[ { "Fault": null, "Instance UUID": "e8e60d37-d7c7-4210-acf7-f04b245582ea", "Last Error": null, "Name": "compute-0", "Power State": "power on", "Provisioning State": "active", "Resource Class": "baremetal.AMD-SEV", "UUID": "b5a9ac58-63a7-49ba-b4ad-33d84000ccb4" }, { "Fault": null, "Instance UUID": "3ec34c0b-c4f5-4535-9bd3-8a1649d2e1bd", "Last Error": null, "Name": "compute-1", "Power State": "power on", "Provisioning State": "active", "Resource Class": "compute", "UUID": "432e7f86-8da2-44a6-9b14-dfacdf611366" }, { "Fault": null, "Instance UUID": "4992c2da-adde-41b3-bef1-3a5b8e356fc0", "Last Error": null, "Name": "controller-0", "Power State": "power on", "Provisioning State": "active", "Resource Class": "controller", "UUID": "474c2fc8-b884-4377-b6d7-781082a3a9c0" } ]