您可以将虚拟机从 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 实例中。
过程
- 在 VMware Integrated OpenStack 部署中,将包含所需虚拟机的集群添加为计算集群。
有关说明,请参见 向部署中添加计算群集。
- 将虚拟机连接到 Neutron 网络。
- 在 vSphere Client 中,打开主机和集群视图。
- 右键单击要导入的每个虚拟机,然后选择编辑设置...。
- 从网络适配器旁边的下拉列表中,选择要使用的 Neutron 网络。
- 展开网络适配器设置,并记录其 MAC 地址。
- 为虚拟机创建一个临时的含糊网络。
- 以
root
用户身份登录到 Integrated OpenStack Manager。ssh root@mgmt-server-ip
- 编辑 Nova 计算配置。
viocli update nova-compute
- 在 vmware 部分中,添加 import_net_id 参数并将其值设置为记录的交换机 ID 或分段名称。
- 如果要防止导入的虚拟机重新放置或重命名,请添加 import_vm_relocate 参数并将其值设置为
false
。 - 要向虚拟机导入到非默认域,必须在此域中创建用户和项目,并在 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
- 设置
admin
帐户的密码。export OS_PASSWORD=admin-account-password
- 导出工具箱中的变量。
以下代码中提供的密码仅供参考。要导出工具箱中的变量,必须指定密码。
[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
- 在指定的项目中创建 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 地址,则可以忽略该参数。
- 连接到 VMware Integrated OpenStack vAPI 端点。
该端点位于部署的专用 OpenStack 端点。
dcli +server http://internal-vip:9449/api +i
- 导入虚拟机,指定租户名称。
要导入虚拟机,必须指定 --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 实例进行管理。