鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

约束与限制

应用限制

硬件服务器需搭载鲲鹏920新型号处理器(7270Z/7280Z/7250Y/7260Y/5253Z/5252Z/5235Z/5230Z等)。

内存插法约束

机器的内存插法要求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子命令。