您可以将虚拟机从 vSphere 导入 VMware Integrated OpenStack 部署,并像管理 OpenStack 实例一样进行管理。

重要:

VMware Integrated OpenStack 5.1.0.1 及更高版本支持此功能。

此过程适用于使用 NSX-T Data Center 网络的部署。对于 VDSNSX Data Center for vSphere 部署,请参见使用 NSX Data Center for vSphere 将虚拟机导入 VMware Integrated OpenStack

导入的虚拟机将变为 OpenStack 实例,但有所不同。

  • 如果虚拟机有多个磁盘,这些磁盘将作为 Cinder 卷导入。

  • 导入具有特定网络支持的虚拟机后,将无法向不同项目导入相同的网络。如果要将某个网络用于多个项目,请将其配置为共享网络。

OpenStack 管理服务器 上使用 Data Center Command-Line Interface (DCLI) 导入虚拟机。

前提条件

确认要导入的虚拟机位于同一 vCenter Server 实例中。

过程

  1. vSphere 中,将包含所需虚拟机的群集添加为 VMware Integrated OpenStack 部署中的计算群集。有关说明,请参见向 OpenStack 部署中添加计算群集
  2. 将虚拟机连接到 Neutron 网络。

    在此过程中,可以使用提供商网络或租户网络。

    1. vSphere Client 中,打开主机和群集视图。
    2. 右键单击要导入的每个虚拟机,然后选择编辑设置...
    3. 从网络适配器旁边的下拉列表中,选择要使用的 Neutron 网络。
    4. 展开网络适配器设置,并记录其 MAC 地址。
  3. 为虚拟机创建一个临时的含糊网络。
    1. NSX Manager 中,选择交换 > 交换机,然后单击添加
    2. 输入交换机的名称,然后选择覆盖网络传输区域。
    3. 单击添加
    4. 逻辑交换机列中,单击要创建的交换机的名称。
    5. 记录概览列中显示的交换机 ID。
  4. viouser 用户身份登录到 OpenStack 管理服务器
  5. 如果您的部署未使用 custom.yml 文件,请将模板 custom.yml 文件复制到 /opt/vmware/vio/custom 目录。
    sudo mkdir -p /opt/vmware/vio/custom
    sudo cp /var/lib/vio/ansible/custom/custom.yml.sample /opt/vmware/vio/custom/custom.yml
  6. 在文本编辑器中打开 /opt/vmware/vio/custom/custom.yml 文件。
  7. 取消对 nova_import_net_id 参数的注释并将其值设置为您在步骤 3 中创建的交换机的 ID。
  8. 如果要防止导入的虚拟机重新放置或重命名,请取消对 nova_import_vm_relocate 参数的注释并将其值设置为 false
  9. 部署更新的配置。
    sudo viocli deployment configure

    部署此配置会短暂中断 OpenStack 服务。

  10. 切换到 root 用户并加载云管理员凭据文件。
    sudo su -
    source ~/cloudadmin.rc
  11. 创建一个使用虚拟机网络适配器的 MAC 地址的 Neutron 端口。
    neutron port-create network --name port --tenant-id project-id --mac-address vm-mac [--fixed-ip ip_address=vm-ip]

    选项

    说明

    网络

    输入虚拟机所连接到的 Neutron 网络的名称。

    --name

    输入端口的名称。

    --tenant-id

    指定要为其创建端口的项目的 UUID。

    --mac-address

    输入您在步骤 2d 中记录的虚拟机网络适配器的 MAC 地址。

    --fixed-ip

    输入虚拟机的 IP 地址。

    如果虚拟机没有 IP 地址,或者您不想保留现有的 IP 地址,则可以忽略该参数。

  12. 连接到 VMware Integrated OpenStack vAPI 端点。
    dcli +server https://mgmt-server-ip:9449/api +i

    如果无法连接到服务器,请参见DCLI 无法连接到服务器

  13. 将虚拟机导入 VMware Integrated OpenStack
    com vmware vio vm unmanaged importvm --vm vm-moid --nic-net-id network-uuid --nic-port-id port-uuid [--tenant project-name] [--root-disk root-disk-path]

    选项

    说明

    --vm

    输入要导入的虚拟机的受管对象标识符 (MOID)。

    可以通过运行 com vmware vio vm unmanaged list 命令查看所有非受管虚拟机的 MOID。

    --nic-net-id

    输入虚拟机所连接到的 Neutron 网络的 UUID。

    --nic-port-id

    输入您为虚拟机创建的端口的 UUID。

    --tenant

    指定要将虚拟机导入其中的 OpenStack 项目。

    如果不包括此参数,则默认情况下使用 import_service 项目。

    --root-disk

    对于具有多个磁盘的虚拟机,请按以下格式指定根磁盘数据存储路径:--root-disk '[datastore1] foo/foo_1.vmdk'

    注:

    执行命令时,DCLI 会提示您输入 vCenter Server 实例的管理员凭据。您可以保存这些凭据,避免每次都需要输入用户名和密码。