您可以将虚拟机从 vSphere 导入 VMware Integrated OpenStack 部署,并像管理 OpenStack 实例一样进行管理。
重要:
仅 VMware Integrated OpenStack 5.1.0.1 及更高版本支持此功能。
此过程适用于使用 NSX-T Data Center 网络的部署。对于 VDS 或 NSX Data Center for vSphere 部署,请参见使用 NSX Data Center for vSphere 将虚拟机导入 VMware Integrated OpenStack。
导入的虚拟机将变为 OpenStack 实例,但有所不同。
在 OpenStack 管理服务器 上使用 Data Center Command-Line Interface (DCLI) 导入虚拟机。
前提条件
确认要导入的虚拟机位于同一 vCenter Server 实例中。
过程
- 在 vSphere 中,将包含所需虚拟机的群集添加为 VMware Integrated OpenStack 部署中的计算群集。有关说明,请参见向 OpenStack 部署中添加计算群集。
- 将虚拟机连接到 Neutron 网络。
- 在 vSphere Client 中,打开主机和群集视图。
- 右键单击要导入的每个虚拟机,然后选择编辑设置...。
- 从网络适配器旁边的下拉列表中,选择要使用的 Neutron 网络。
- 展开网络适配器设置,并记录其 MAC 地址。
- 为虚拟机创建一个临时的含糊网络。
- 在 NSX Manager 中,选择,然后单击添加。
- 输入交换机的名称,然后选择覆盖网络传输区域。
- 单击添加。
- 在逻辑交换机列中,单击要创建的交换机的名称。
- 记录概览列中显示的交换机 ID。
- 以
viouser
用户身份登录到 OpenStack 管理服务器。
- 如果您的部署未使用 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
- 在文本编辑器中打开 /opt/vmware/vio/custom/custom.yml 文件。
- 取消对 nova_import_net_id 参数的注释并将其值设置为您在步骤 3 中创建的交换机的 ID。
- 如果要防止导入的虚拟机重新放置或重命名,请取消对 nova_import_vm_relocate 参数的注释并将其值设置为
false
。
- 部署更新的配置。
sudo viocli deployment configure
部署此配置会短暂中断 OpenStack 服务。
- 切换到
root
用户并加载云管理员凭据文件。
sudo su -
source ~/cloudadmin.rc
- 创建一个使用虚拟机网络适配器的 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 地址,则可以忽略该参数。 |
- 连接到 VMware Integrated OpenStack vAPI 端点。
dcli +server https://mgmt-server-ip:9449/api +i
如果无法连接到服务器,请参见DCLI 无法连接到服务器。
- 将虚拟机导入 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 实例的管理员凭据。您可以保存这些凭据,避免每次都需要输入用户名和密码。