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

此过程适用于包含非默认域的部署。对于 NSX-T Data Center 域,请参见具有 NSX-T Data Center 的 VMware Integrated OpenStack

以下条件适用于导入的虚拟机:
  • 如果虚拟机有多个磁盘,这些磁盘将作为 Cinder 卷导入。
  • 导入具有特定网络备份的虚拟机后,您无法使用同一网络导入不同的项目。如果要将网络用于多个项目,请配置提供商 VLAN(虚拟 LAN)网络作为共享网络。

Integrated OpenStack Manager 工具箱中使用 Data Center Command-Line Interface (DCLI) 导入虚拟机。

前提条件

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

过程

  1. VMware Integrated OpenStack 部署中,将包含所需虚拟机的集群添加为计算集群。
    有关说明,请参见 向部署中添加计算群集
  2. 将虚拟机连接到 Neutron 网络。
    1. vSphere Client 中,打开主机和集群视图。
    2. 右键单击要导入的每个虚拟机,然后选择编辑设置...
    3. 从网络适配器旁边的下拉列表中,选择要使用的 Neutron 网络。
    4. 展开网络适配器设置,并记录其 MAC 地址。
  3. 为虚拟机创建一个临时的含糊网络。
    • 对于 NSX-T 2.5,创建一个逻辑交换机。请参见创建逻辑交换机以添加交换机,然后执行以下步骤以获取逻辑交换机 ID。
      1. 逻辑交换机列中,单击要创建的交换机的名称。
      2. 记录概览列中显示的交换机 ID。
    • 对于 NSX-T 3.0,创建一个分段。请参见添加分段并记录添加的分段的名称。
  4. root 用户身份登录到 Integrated OpenStack Manager
    ssh root@mgmt-server-ip
  5. 编辑 Nova 计算配置。
    viocli update nova-compute
  6. vmware 部分中,添加 import_net_id 参数并将其值设置为记录的交换机 ID 或分段名称。
  7. 如果要防止导入的虚拟机重新放置或重命名,请添加 import_vm_relocate 参数并将其值设置为 false
  8. 要向虚拟机导入到非默认域,必须在此域中创建用户和项目,并在 vioshim 容器中设置 default_tenant_domain_name 参数。
    domain name: import-domain
    admin user in import-domain: import-domain
    a new project in import-domain: import-proj2
    viocli update vioshim
    conf:
      vioshim:
        DEFAULT:
          default_tenant_domain_name: import-domain
    要进行验证,可以登录到以下容器。
    osctl exec -it vioadmin1-vioshim-6855dd94b4-s5vzk -c vioshim bash
    要检查 /etc/viocli/viocli.conf 的内容,可以使用以下代码行:
    default_tenant_domain_name = import-domain
  9. 设置 admin 帐户的密码。
    export OS_PASSWORD=admin-account-password
  10. 导出工具箱中的变量。

    以下代码中提供的密码仅供参考。要导出工具箱中的变量,必须指定密码。

    [root@vioadmin1-vioshim-6855dd94b4-s5vzk /]# export OS_PROJECT_NAME=import-proj2 
    [root@vioadmin1-vioshim-6855dd94b4-s5vzk /]# export OS_PROJECT_DOMAIN_NAME=import-domain
    [root@vioadmin1-vioshim-6855dd94b4-s5vzk /]# export OS_USER_DOMAIN_NAME=import-domain
    [root@vioadmin1-vioshim-6855dd94b4-s5vzk /]# export OS_PASSWORD=*****
    [root@vioadmin1-vioshim-6855dd94b4-s5vzk /]# export OS_USERNAME=import-admin

    您还可以使用默认项目 import-service 导入虚拟机,并导出工具箱中的变量。

    [root@vioadmin1-vioshim-56f9ddc779-wc4lc /]#
    [root@vioadmin1-vioshim-56f9ddc779-wc4lc /]# export OS_PASSWORD=*****
    [root@vioadmin1-vioshim-56f9ddc779-wc4lc /]#  env | grep -i project
    OS_PROJECT_NAME=import-service
    OS_PROJECT_DOMAIN_NAME=default
    [root@vioadmin1-vioshim-56f9ddc779-wc4lc /]# export OS_PROJECT_NAME=admin
    
  11. 在指定的项目中创建 Neutron 端口。

    您可以在指定的项目中创建 Neutron 端口。项目 import-proj2 使用共享提供商网络,您必须为端口指定 --tenant-id,以避免出现 PortNotUsable 问题。

    neutron port-create network --name port --tenant-id <project id of import-proj2> --mac-address vm-mac --fixed-ip ip_address=vm-ip
    neutron port-create network --name port --tenant-id project id --mac-address vm-mac --fixed-ip ip_address=vm-ip
    选项 说明

    network

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

    --name

    输入端口的名称。

    --tenant-id

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

    --mac-address

    输入虚拟机网络适配器的 MAC 地址。

    --fixed-ip

    输入虚拟机的 IP 地址。

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

  12. 连接到 VMware Integrated OpenStack vAPI 端点。

    该端点位于部署的专用 OpenStack 端点。

    dcli +server http://internal-vip:9449/api +i
  13. 导入虚拟机,指定租户名称。

    要导入虚拟机,必须指定 --tenant 名称。但是,如果未指定 --tenant 名称,VMware Integrated OpenStack 将使用默认的 --tenant 名称 import-service

    com vmware vio vm unmanaged importvm --vm vm-moid --nic-net-id network-uuid --nic-port-id port-uuid --tenant import-proj2
    com vmware vio vm unmanaged importvm --vm vm-moid --nic-net-id network-uuid --nic-port-id port-uuid --tenant import-service
    选项 说明

    --vm

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

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

    --nic-net-id

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

    --nic-port-id

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

    --tenant

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

    --root-disk

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

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

结果

指定的虚拟机将导入至 OpenStack 部署中,并可作为 OpenStack 实例进行管理。