12.2. 메모리 암호화를 위해 AMD SEV 컴퓨팅 노드 지정

메모리 암호화를 사용하는 인스턴스에 AMD SEV 컴퓨팅 노드를 지정하려면 새 역할 파일을 생성하여 AMD SEV 역할을 구성하고, 메모리 암호화를 위해 Compute 노드에 태그를 지정하는 데 사용할 새 오버클라우드 플레이버 및 AMD SEV 리소스 클래스를 구성해야 합니다.

절차

  1. stack 사용자로 언더클라우드에 로그인합니다.
  2. stackrc 파일을 소싱합니다.

    [stack@director ~]$ source ~/stackrc
  3. ComputeAMDSEV 역할을 포함하는 새 역할 데이터 파일을 오버클라우드에 필요한 다른 역할과 함께 생성합니다. 다음 예제에서는 ControllerComputeAMDSEV 역할이 포함된 roles 데이터 파일 roles_data_amd_sev.yaml 을 생성합니다.

    (undercloud)$ openstack overcloud roles \
     generate -o /home/stack/templates/roles_data_amd_sev.yaml \
     Compute:ComputeAMDSEV Controller
  4. roles_data_amd_sev.yaml 을 열고 다음 매개변수 및 섹션을 편집하거나 추가합니다.

    섹션/패랜드현재 값새 값

    역할 설명

    역할: 컴퓨팅

    역할: ComputeAMDSEV

    역할 이름

    name: 컴퓨팅

    name: ComputeAMDSEV

    description

    기본 컴퓨팅 노드 역할

    AMD SEV Compute Node 역할

    HostnameFormatDefault

    %stackname%-novacompute-%index%

    %stackname%-novacomputeamdsev-%index%

    deprecated_nic_config_name

    compute.yaml

    compute-amd-sev.yaml

  5. 노드 정의 템플릿 node. json 또는 node. yaml에 추가하여 오버클라우드의 AMD SEV 컴퓨팅 노드를 등록합니다. 자세한 내용은 Director 설치 및 사용 가이드 의 오버클라우드 노드 등록을 참조하십시오.
  6. 노드 하드웨어를 검사합니다.

    (undercloud)$ openstack overcloud node introspect \
     --all-manageable --provide

    자세한 내용은 Director 설치 및 사용 가이드 의 베어 메탈 노드 하드웨어 인벤토리 생성을 참조하십시오.

  7. 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 수로 바꿉니다.

      참고

      이러한 속성은 인스턴스를 예약하는 데 사용되지 않습니다. 그러나 계산 스케줄러는 디스크 크기를 사용하여 루트 파티션 크기를 결정합니다.

  8. 노드 목록을 검색하여 UUID를 확인합니다.

    (undercloud)$ openstack baremetal node list
  9. 사용자 정의 AMD SEV 리소스 클래스를 사용하여 메모리 암호화를 지정할 각 베어 메탈 노드에 태그를 지정합니다.

    (undercloud)$ openstack baremetal node set \
     --resource-class baremetal.AMD-SEV <node>

    <node> 를 베어 메탈 노드의 ID로 바꿉니다.

  10. compute-amd-sev 플레이버를 사용자 지정 AMD SEV 리소스 클래스와 연결합니다.

    (undercloud)$ openstack flavor set \
     --property resources:CUSTOM_BAREMETAL_AMD_SEV=1 \
      compute-amd-sev

    베어 메탈 서비스 노드의 리소스 클래스에 해당하는 사용자 지정 리소스 클래스의 이름을 확인하려면 리소스 클래스를 대문자로 변환하려면 각 문장 부호 표시를 밑줄로 바꾸고 접두사는 CUSTOM_ 로 바꿉니다.

    참고

    플레이버는 베어 메탈 리소스 클래스의 인스턴스 하나만 요청할 수 있습니다.

  11. Compute 스케줄러가 베어 메탈 플레이버 속성을 사용하여 인스턴스를 예약하지 못하도록 다음 플레이버 속성을 설정합니다.

    (undercloud)$ openstack flavor set \
     --property resources:VCPU=0 --property resources:MEMORY_MB=0 \
     --property resources:DISK_GB=0 compute-amd-sev
  12. 선택 사항: ComputeAMDSEV 역할의 네트워크 토폴로지가 Compute 역할의 네트워크 토폴로지와 다른 경우 사용자 지정 네트워크 인터페이스 템플릿을 생성합니다. 자세한 내용은 Advanced Overcloud Customization 가이드의 Custom network interface templates 를 참조하십시오.

    ComputeAMDSEV 역할의 네트워크 토폴로지가 Compute 역할과 동일한 경우 compute.yaml 에 정의된 기본 네트워크 토폴로지를 사용할 수 있습니다.

  13. network-environment.yaml 파일에 ComputeAMDSEV 역할의 Net::SoftwareConfig 를 등록합니다.

    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 ).

  14. node-info.yaml 파일에 다음 매개변수를 추가하여 AMD SEV 컴퓨팅 노드 수와 AMD SEV 지정 컴퓨팅 노드에 사용하려는 플레이버를 지정합니다.

    parameter_defaults:
      OvercloudComputeAMDSEVFlavor: compute-amd-sev
      ComputeAMDSEVCount: 3
  15. 역할이 생성되었는지 확인하려면 다음 명령을 입력합니다.

    (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"
      }
    ]