12.3. 메모리 암호화를 위한 AMD SEV 컴퓨팅 노드 구성

클라우드 사용자가 메모리 암호화를 사용하는 인스턴스를 생성할 수 있도록 하려면 AMD SEV 하드웨어가 있는 컴퓨팅 노드를 구성해야 합니다.

사전 요구 사항

  • 배포에 AMD EPYC CPU와 같이 SEV를 지원할 수 있는 AMD 하드웨어에서 실행되는 컴퓨팅 노드가 포함되어야 합니다. 다음 명령을 사용하여 배포가 SEV-사용 가능한지 확인할 수 있습니다.

    $ lscpu | grep sev

절차

  1. 컴퓨팅 환경 파일을 엽니다.
  2. 선택 사항: Compute 환경 파일에 다음 구성을 추가하여 AMD SEV 컴퓨팅 노드가 동시에 호스팅할 수 있는 최대 메모리 암호화 인스턴스 수를 지정합니다.

    parameter_defaults:
      ComputeAMDSEVExtraConfig:
        nova::config::nova_config:
          libvirt/num_memory_encrypted_guests:
            value: 15
    참고

    libvirt/num_memory_encrypted_guests 매개 변수의 기본값은 none 입니다. 사용자 지정 값을 설정하지 않으면 AMD SEV Compute 노드는 노드가 동시에 호스팅할 수 있는 메모리 암호화 인스턴스 수에 제한을 지정하지 않습니다. 대신, 하드웨어에서 AMD SEV 컴퓨팅 노드가 동시에 호스팅할 수 있는 최대 메모리 암호화 인스턴스 수를 결정하여 일부 메모리 암호화 인스턴스가 시작되지 않을 수 있습니다.

  3. 선택 사항: 모든 x86_64 이미지가 기본적으로 q35 시스템 유형을 사용하도록 지정하려면 Compute 환경 파일에 다음 구성을 추가합니다.

    parameter_defaults:
      ComputeAMDSEVParameters:
        NovaHWMachineType: x86_64=q35

    이 매개변수 값을 지정하는 경우 모든 AMD SEV 인스턴스 이미지에서 hw_machine_type 속성을 q35 로 설정할 필요가 없습니다.

  4. AMD SEV Compute 노드에서 호스트 수준 서비스가 작동할 충분한 메모리를 예약하려면 잠재적인 각 AMD SEV 인스턴스에 대해 16MB를 추가합니다.

    parameter_defaults:
      ComputeAMDSEVParameters:
        ...
        NovaReservedHostMemory: <libvirt/num_memory_encrypted_guests * 16>
  5. AMD SEV 컴퓨팅 노드의 커널 매개변수를 구성합니다.

    parameter_defaults:
      ComputeAMDSEVParameters:
        ...
        KernelArgs: "hugepagesz=1GB hugepages=32 default_hugepagesz=1GB mem_encrypt=on kvm_amd.sev=1"
    참고

    KernelArgs 매개변수를 역할 구성에 처음 추가하면 오버클라우드 노드가 자동으로 재부팅됩니다. 필요한 경우 노드 자동 재부팅을 비활성화하고 대신 각 오버클라우드 배포 후 노드를 수동으로 재부팅할 수 있습니다. 자세한 내용은 KernelArgs를 정의하도록 수동 노드 재부팅 구성을 참조하십시오.

  6. 업데이트를 Compute 환경 파일에 저장합니다.
  7. 다른 환경 파일을 사용하여 스택에 Compute 환경 파일을 추가하고 오버클라우드를 배포합니다.

    (undercloud)$ openstack overcloud deploy --templates \
     -e [your environment files] \
     -e /home/stack/templates/<compute_environment_file>.yaml