开发者
资源
文档评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

约束与限制

应用限制

硬件服务器需搭载鲲鹏920新型号处理器。

  • 鲲鹏920 7280Z处理器
  • 鲲鹏920 7270Z处理器
  • 鲲鹏920 7285Z处理器
  • 鲲鹏920 5253Z处理器
  • 鲲鹏920 5252Z处理器
  • 鲲鹏920 5235Z处理器
  • 鲲鹏920 5230Z处理器
  • 鲲鹏920 7260Z处理器
  • 鲲鹏920 7260Y处理器
  • 鲲鹏920 7250Y处理器
  • 鲲鹏920 5258F处理器

内存插法约束

机器的内存插法要求NUMA间对称。

BIOS菜单约束

  • 关闭3路交织。
  • 支持DIE交织Disable、Enable两种模式。

SWIOTLB Buffer特性限制

机密虚拟机通过SWIOTLB Buffer共享内存与外设通信,该区域大小默认值为64MB。高负载IO通信场景下,可能出现SWIOTLB Buffer空间不足问题,在Guest OS中执行如下命令,若收到“swiotlb buffer is full”的错误日志回显,可确认出现此问题,可参见调大SWIOTLB Buffer空间进行处理。

dmesg | grep "swiotlb buffer is full"

安全内存粒度约束

机密虚拟机的安全内存须按2MB对齐。

机密虚拟机性能约束

  • 机密虚拟机CPU所绑定的NUMA需要和安全内存所分配的NUMA相同。
  • 机密虚拟机CPU绑定的NUMA需要与网卡亲和NUMA相同。执行如下命令查询网卡亲和NUMA。
    cat /sys/class/net/$net_name/device/numa_node

    net_name为网卡设备名称,可在Guest OS中通过ip addr查看。

    预期示例如下:

    • 查询到网卡亲和NUMA为1。

    • 机密虚拟机的libvirt xml文件配置CPU绑定到NUMA 1。

sysctl_overcommit_memory限制

BIOS提供安全内存配置auto模式,BIOS将分配尽可能大的安全内存,此时安全内存将大于非安全内存。当启动机密虚拟机的ram size大于非安全内存时,需要允许mmap的虚拟地址空间大于物理地址空间,否则机密虚拟机将启动失败,即启动机密虚拟机前需要保证sysctl_overcommit_memory=1。需执行以下命令:

echo 1 > /proc/sys/vm/overcommit_memory

不支持超线程(SMT)

当用户使能CPU超线程能力后,可能存在针对机密计算的侧信道攻击等风险,因此业界建议在禁用SMT的系统上运行机密计算,可参见关闭SMT关闭SMT。

不支持超分配

CPU和内存超分配当前不支持。

libvirt支持命令

libvirt在机密虚拟机中支持的命令有限,具体支持命令如libvirt支持命令所示:

表1 libvirt支持命令说明

virsh子命令

命令说明

可选参数

机密虚拟机支持情况

普通虚拟机支持情况

define

从指定xml文件定义一个虚拟机域。

--validate

√

√

undefine

销毁一个虚拟机域。

--managed-save

x

√

--storage

√

√

--remove-all-storage

√

√

--delete-storage-volume-snapshots

x

√

--wipe-storage

√

√

--snapshots-metadata

x

√

--checkpoints-metadata

x

√

--nvram

x

√

--keep-nvram

x

√

--tpm

x

√

--keep-tpm

x

√

start

启动一个已定义过的虚拟机。

--console

√

√

--paused

x

√

--autodestroy

√

√

--bypass-cache

√

√

--force-boot

x

√

--pass-fds

x

√

--reset-nvram

x

√

destroy

销毁一个运行中的虚拟机。

--graceful

√

√

--remove-logs

√

√

console

通过串口连接、登录到虚拟机内部。

--devname

√

√

--force

√

√

--resume

x

√

--safe

√

√

create

从指定xml创建并启动一个虚拟机。

--console

√

√

--paused

x

√

--autodestroy

√

√

--pass-fds

x

√

--validate

√

√

--reset-nvram

x

√

attach-disk

添加磁盘设备。

--subdriver

√

√

--live

√

√

--persistent

√

√

detach-disk

删除磁盘设备。

--live

√

√

--persistent

√

√

attach-interface

添加网络接口。

--model

√

√

--live

√

√

--persistent

√

√

detach-interface

删除网络接口。

--live

√

√

--persistent

√

√

attach-device

基于xml添加设备。

--live

√

√

--persistent

√

√

detach-device

基于xml删除设备。

--live

√

√

--persistent

√

√

tmm

查看tmm相关信息,包括安全内存使用信息。

--dev

√

x

--detail

√

x

√:机密虚拟机或普通虚拟机支持对应的virsh子命令。

x:机密虚拟机或普通虚拟机不支持对应的virsh子命令。