第 12 章 配置 AMD SEV Compute 节点,为实例提供内存加密
作为云管理员,您可以让云用户能够创建在启用了内存加密的 SEV 支持的 Compute 节点上运行的实例。
此功能可从第二代 AMD EPYC™ 7002 系列("Rome")中使用。
要让您的云用户创建使用内存加密的实例,您必须执行以下任务:
- 指定用于内存加密的 AMD SEV Compute 节点。
- 为内存加密配置 Compute 节点。
- 部署 overcloud。
- 创建类别或镜像以使用内存加密启动实例。
如果 AMD SEV 硬件有限,您还可以配置主机聚合来优化 AMD SEV Compute 节点上的调度。要仅将请求内存加密的实例调度到 AMD SEV Compute 节点上,请创建一个具有 AMD SEV 硬件的 Compute 节点的主机聚合,并将计算调度程序配置为仅将请求内存加密的实例放在主机聚合中。如需更多信息,请参阅 Creating and managing host aggregates 和 Filtering by isolating host aggregates。
12.1. 安全加密虚拟化(SEV)
由 AMD 提供的安全加密虚拟化(SEV)保护正在运行的虚拟机实例正在使用的 DRAM 中的数据。SEV 使用唯一密钥加密每个实例的内存。
当使用非易失性内存技术(NVDIMM)时,SEV 会提高安全性,因为 NVDIMM 芯片可从具有数据的系统物理移除,类似于硬盘。如果没有加密,任何存储的信息(如敏感数据、密码或机密密钥)都可能会被破坏。
如需更多信息,请参阅 AMD 安全加密虚拟化(SEV) 文档。
具有内存加密的实例的限制
- 您无法实时迁移,或使用内存加密暂停和恢复实例。
- 您不能使用 PCI 透传直接访问具有内存加密的实例上的设备。
您不能使用
virtio-blk
作为之前早于 kernel-4.18.0-115.el8 (RHEL-8.1.0)内核的内存加密实例的引导磁盘。注意您可以使用
virtio-scsi
或SATA
作为引导磁盘,或者virtio-blk
用于非引导磁盘。- 在加密实例中运行的操作系统必须提供 SEV 支持。如需更多信息,请参阅 在 RHEL 8 中启用 AMD 安全加密虚拟化 的 红帽知识库解决方案。
- 支持 SEV 的机器在其内存控制器中具有有限的插槽来存储加密密钥。每个带有加密内存的实例都会消耗其中一个插槽。因此,可同时运行的内存加密的实例数量仅限于内存控制器中的插槽数量。例如,在1st Gen AMD EPYC™ 7001 系列("Naples")中,这个限制为 16,在第二代 Gen AMD EPYC™ 7002 系列("Rome")时,这个限制为 255。
- 具有内存加密的实例固定 RAM 中的页面。Compute 服务无法交换这些页面,因此您无法过量使用托管内存加密的 Compute 节点上的内存。
- 您不能将内存加密用于具有多个 NUMA 节点的实例。