可以将特定实例配置为允许直通,然后创建使用物理硬件接口的 OpenStack 实例。
此过程不适用于 NVIDIA GRID vGPU。要配置 NVIDIA GRID vGPU,请参见NVIDIA GRID vGPU。
前提条件
- 在 vSphere 中启用 SR-IOV 或 DirectPath I/O:
- 为 SR-IOV 设备创建专用计算集群。DRS 规则不适用于这些设备。
- 确认未在要用于直通的映像上配置 vmware_extra_config 元数据。
- 要保留物理设备的 MAC 地址,在设备上启用直接直通之前先将其集群添加为计算节点。如果已启用直接直通,可以将其禁用,重新启动集群,然后再启用直接直通。
过程
- 以
root
用户身份登录到 Integrated OpenStack Manager。
- 编辑 Nova 配置。
- 在
nova
部分中,创建 pci
部分。
- 在
pci
部分中,创建 alias
部分,添加 type 参数并将其值设置为 multistring
。
- 添加 values 参数并将其值设置为与设备相匹配。
使用以下格式:
values:
- '{"device_type": "type-PF", "vendor_id": "vendor-id", "name": "physical-name"}'
- '{"device_type": "type-VF", "vendor_id": "vendor-id", "name": "virtual-name"}'
选项 |
说明 |
vendor-id |
输入设备的四字符供应商 ID。以小写形式输入所有字母。 |
physical-name |
输入物理设备的别名。 |
virtual-name |
输入虚拟设备的别名。 |
- 在
vmware
部分中,添加 generic_passthrough 参数并将其值设置为 true。
现在,配置文件看起来类似于以下内容。
conf:
nova:
vmware:
[...]
generic_passthrough: true
pci:
alias:
type: multistring
values:
- '{"device_type": "type-PF", "vendor_id": "vendor-id", "name": "physical-name"}'
- '{"device_type": "type-VF", "vendor_id": "vendor-id", "name": "virtual-name"}'
- 编辑 Nova 计算配置。
viocli update nova-compute
- 在
vmware
部分中,添加 generic_passthrough 参数并将其值设置为 true。
现在,配置文件看起来类似于以下内容。
conf:
nova_compute:
DEFAULT:
[...]
vmware:
[...]
generic_passthrough: true
- 以云管理员身份登录 VMware Integrated OpenStack 仪表板。
- 从标题栏中的下拉菜单选择管理项目。
- 选择。
- 创建新的特定实例或者选择现有特定实例用于直通。
- 选择要使用的特定实例旁边的更新元数据。
- 在可用元数据下的自定义字段中,键入 vmware_extra_config,然后单击添加(加号)图标。
- 将 vmware:extra_config 的值设置为 {"pciPassthru.use64bitMMIO":"TRUE"}。
- 在可用元数据下的自定义字段中,键入 pci_passthrough:alias,然后单击添加(加号)图标。
- 将 pci_passthrough:alias 的值设置为
virtual-device-name:device-count
。
选项 |
说明 |
virtual-device-name |
输入在此过程中指定的虚拟设备名称。 |
device-count |
指定可在一个请求中调用的虚拟函数数。 此值的范围可以是从 1 到 10。 |
- 展开 VMware 配额,然后单击Quota: Memory Reservation旁边的添加(加号)图标。
- 将 quota:memory_reservation 的值设置为 100,然后单击保存。
结果
现在,您可以部署启用直通的虚拟机,方法是使用在此过程中修改的特定实例对它们进行配置。