5.6.3. 为内存加密配置 AMD SEV Compute 节点
要让您的云用户创建使用内存加密的实例,您必须配置具有 AMD SEV 硬件的 Compute 节点。
从 RHOSP OSP17.0 开始,Q35 是默认的机器类型。Q35 机器类型使用 PCIe 端口。您可以通过配置 heat 参数 NovaLibvirtNumPciePorts 来管理 PCIe 端口设备的数量。可附加到 PCIe 端口的设备数量比之前版本上运行的实例要少。如果要使用更多设备,则必须使用 hw_disk_bus=scsi 或 hw_scsi_model=virtio-scsi 镜像属性。如需更多信息,请参阅 虚拟硬件的元数据属性。
先决条件
您的部署必须包含在支持 SEV 的 AMD 硬件中运行的 Compute 节点,如 AMD EPYC CPU。您可以使用以下命令来确定部署是否支持 SEV:
$ lscpu | grep sev
流程
- 打开 Compute 环境文件。
可选:在 Compute 环境文件中添加以下配置,以指定 AMD SEV Compute 节点可同时托管的最大内存加密实例数:
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 Compute 节点可以同时托管的最大内存加密实例数,这可能会导致一些内存加密实例无法启动。可选: 要指定所有 x86_64 镜像默认使用 q35 机器类型,请在 Compute 环境文件中添加以下配置:
parameter_defaults: ComputeAMDSEVParameters: NovaHWMachineType: x86_64=q35如果指定了此参数值,则不需要在每个 AMD SEV 实例镜像上设置
hw_machine_type属性设置为q35。为确保 AMD SEV Compute 节点为主机级服务保留足够的内存才能正常工作,请为每个潜在的 AMD SEV 实例添加 16MB:
parameter_defaults: ComputeAMDSEVParameters: ... NovaReservedHostMemory: <libvirt/num_memory_encrypted_guests * 16>为 AMD SEV Compute 节点配置内核参数:
parameter_defaults: ComputeAMDSEVParameters: ... KernelArgs: "hugepagesz=1GB hugepages=32 default_hugepagesz=1GB kvm_amd.sev=1"注意当您首先将
KernelArgs参数添加到角色的配置中时,overcloud 节点会自动重启。如果需要,您可以禁用自动重新引导节点,并在每个 overcloud 部署后手动重启节点。如需更多信息,请参阅配置手动节点重新引导以定义KernelArgs。- 保存对 Compute 环境文件的更新。
使用其他环境文件将计算环境文件添加到堆栈中,并部署 overcloud:
(undercloud)$ openstack overcloud deploy --templates \ -e [your environment files] \ -r /home/stack/templates/roles_data_amd_sev.yaml \ -e /home/stack/templates/network-environment.yaml \ -e /home/stack/templates/<compute_environment_file>.yaml \ -e /home/stack/templates/overcloud-baremetal-deployed.yaml \ -e /home/stack/templates/node-info.yaml