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

获取安全内存信息

为满足普通侧运维需要,扩展了libvirt virsh命令,支持通过virsh命令查看TEE侧安全内存使用情况。

  1. 部署安全内存可观测驱动。
    1. 安装virtCCA_driver包。
      yum install -y virtCCA_driver
      depmod -a
    2. 加载tmm_driver驱动。
      modprobe tmm_driver
    3. 执行以下命令验证tmm_driver驱动加载情况以及sys文件系统是否存在。
      lsmod | grep tmm 
      ls /sys/kernel/tmm

  2. 执行以下命令通过libvirt获取安全内存信息。
    • 获取粗粒度安全内存信息。
      virsh tmm tmm_memory_info

      获取的信息包含:

      • 有安全内存的NUMA节点数。
      • 具体的节点。
      • 对应节点的总安全内存。
      • 对应节点的空闲安全内存。
      • 对应节点的元数据占用的内存。
      • 对应节点的cVM使用的内存。
    • 获取细粒度安全内存信息。
      virsh tmm tmm_memory_info --detail

      • 获取的信息除了粗粒度安全内存信息外,新增对应NUMA节点的各种元数据总数和空闲数以及每个NUMA节点的空闲页表数量。
      • 每级页面的内存大小对应如下:

      • 元数据是用来存放机密虚拟机运行时的必要信息数据对象,分为预留元数据和拓展元数据。在预留元数据消耗完毕后,会进行元数据拓展,以获得新的元数据使用。
        表1 元数据类型说明

        元数据类型

        消耗规则

        每次拓展大小

        td

        每个虚拟机消耗1个

        2M

        tec

        每个虚拟机消耗对应vcpu数量个

        2M

        ttt

        每个虚拟机消耗66个

        2M

    • 通过cat内核字符串文件系统获取安全内存信息。
      1. 打印各NUMA安全内存使用情况。
        cat /sys/kernel/tmm/memory_info
      2. 打印各NUMA元数据总数和空闲数。
        cat /sys/kernel/tmm/slab_info
      3. 打印各NUMA空闲页表数。
        cat /sys/kernel/tmm/buddy_info