13.2. 配置 Compute 节点,为实例提供模拟受信任的平台模块(TPM)设备
作为云管理员,您可以为云用户提供创建具有模拟虚拟信任平台模块(vTPM)设备的实例。
要让您的云用户创建具有 vTPM 设备的实例,您必须执行以下任务:
- 启用使用 vTPM 设备的实例支持并部署 overcloud。
- 创建类别或镜像以使用 vTPM 设备启动实例。
先决条件
- Key Manager 服务(barbican)包含在您的 RHOSP 部署中,用于存储 vTPM 密钥。有关使用密钥管理器服务管理 secret 的详情,请参考使用密钥管理器服务管理 secret。
带有 vTPM 设备的实例限制
- 您无法实时迁移或撤离具有 vTPM 设备的实例。
- 您不能救援或她具有 vTPM 设备的实例。
- 实例必须具有 Q35 机器类型。
13.2.1. 启用使用 vTPM 设备的实例支持
要让您的云用户创建具有 vTPM 设备的实例,您必须配置 overcloud 来为实例启用 vTPM 设备。
流程
- 打开 Compute 环境文件。
启用 vTPM 设备支持:
parameter_defaults: ComputeParameters: ... NovaEnableVTPM: True
- 保存对 Compute 环境文件的更新。
使用其他环境文件将计算环境文件添加到堆栈中,并部署 overcloud:
(undercloud)$ openstack overcloud deploy --templates \ -e /home/stack/templates/overcloud-baremetal-deployed.yaml \ -e /home/stack/templates/node-info.yaml \ -e [your environment files] \ -e /home/stack/templates/<compute_environment_file>.yaml
13.2.2. 为 vTPM 设备创建镜像
当 overcloud 启用来创建具有 vTPM 设备的实例时,您可以创建一个 vTPM 设备实例镜像,您的云用户可以使用该镜像来启动具有 vTPM 设备的实例。
如果类别和镜像同时指定了 TPM 设备模型,并且两个值不匹配,则调度会失败。
流程
为 vTPM 设备创建新镜像:
(overcloud)$ openstack image create ... \ --property hw_tpm_version=2.0 vtpm-image
注意不支持 TPM 版本
1.2
。可选:指定要使用的 TPM 模型:
(overcloud)$ openstack image set \ --property hw_tpm_model=<tpm_model> \ vtpm-image
将
<tpm_model
> 替换为要使用的 TPM 设备的模型。设置为以下有效值之一:-
TPM
-tis
: (默认) TPM 接口规格。 -
TPM-crb
:命令响应缓冲.
-
TPM
注意如果没有设置
hw_tpm_version
属性,Compute 服务会忽略hw_tpm_model
属性的配置。
验证
使用 vTPM 镜像创建实例:
(overcloud)$ openstack server create --flavor m1.small \ --image vtpm-image vtpm-instance
- 以云用户身份登录实例。
要验证实例是否可以访问 vTPM 设备,请从实例输入以下命令:
$ dmesg | grep -i tpm
13.2.3. 为 vTPM 设备创建类别
当 overcloud 被启用来创建具有 vTPM 设备的实例时,您可以创建一个或多个 vTPM 设备类别,供您的云用户用来启动具有 vTPM 设备的实例。
只有 hw_tpm_model
和 hw_tpm_version
属性没有在镜像上设置时,才需要 vTPM 设备类别。如果类别和镜像同时指定了 TPM 设备模型,并且两个值不匹配,则调度会失败。
流程
为 vTPM 设备创建类别:
(overcloud)$ openstack flavor create --vcpus 1 --ram 512 --disk 2 \ --property hw:tpm_version=2.0 \ vtpm-flavor
注意不支持 TPM 版本
1.2
。可选:指定要使用的 TPM 模型:
(overcloud)$ openstack flavor set \ --property hw:tpm_model=<tpm_model> \ vtpm-flavor
将
<tpm_model
> 替换为要使用的 TPM 设备的模型。设置为以下有效值之一:-
TPM
-tis
: (默认) TPM 接口规格。 TPM-crb
:命令响应缓冲.仅与 TPM 版本 2.0 兼容。注意如果没有设置
hw:tpm_model
属性,Compute 服务会忽略hw:tpm_
model 属性的配置。
-
TPM
验证
使用 vTPM 类别创建一个实例:
(overcloud)$ openstack server create --flavor vtpm-flavor \ --image rhel-image vtpm-instance
- 以云用户身份登录实例。
要验证实例是否可以访问 vTPM 设备,请从实例输入以下命令:
$ dmesg | grep -i tpm