约束与限制
应用限制
硬件服务器需搭载鲲鹏920新型号处理器(7270Z/7280Z/7250Y/7260Y/5253Z/5252Z/5235Z/5230Z等)。
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相同。
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支持命令所示:
|
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子命令。 |
||||


