您可以将 OpenStack 实例实时迁移到不同的计算节点。
VMware Integrated OpenStack 不支持以下虚拟机迁移方案:
- 在两个不同的 vCenter Server 之间迁移虚拟机。
- 在集群内迁移虚拟机。要在集群内迁移虚拟机,您必须使用 vSphere。
要在集群间迁移虚拟机,如果源和目标集群位于同一 vCenter 实例中,则可以使用 VMware Integrated OpenStack。
注: 对于
VMware Integrated OpenStack 管理的实例,必须使用 OpenStack 命令进行迁移。不要使用
vCenter Server 或其他方法迁移 OpenStack 实例。
前提条件
- 确认源和目标计算节点位于同一 vCenter Server 实例内。
- 确认您的环境包含所有主机和集群均可访问的共享数据存储。
- 确认源计算节点和目标计算节点至少具有一个通用的分布式交换机。如果有两个分布式交换机连接到源计算节点,但只有一个分布式交换机连接到目标计算节点,实时迁移将成功,但 OpenStack 实例必须仅连接到两个计算节点通用的分布式交换机的端口组。
- 确认已分离所有 FCD 卷。
过程
- 以
root
用户身份登录到 Integrated OpenStack Manager。
- 如果该实例连接了 CD-ROM 驱动器,请配置用于 CD-ROM 迁移的共享数据存储。
- 编辑 Nova 计算配置。
viocli update nova-compute
- 在 vmware 部分中,添加 shared_datastore_regex 参数并将其值设置为 vSphere 中的共享数据存储的名称。
- 打开工具箱。
- 对于迁移,如果未选择计算节点作为目标,则可以运行以下命令:
openstack server migrate --live-migration instance-uuid --os-compute-api-version 2.30
要将 实例迁移到指定主机,请运行以下命令:
nova --os-compute-api-version 2.67 live-migration --force [--block-migrate] <server> [<host>]
例如:
nova --os-compute-api-version 2.67 live-migration --force 7a9fd8a8-b3f2-4c72-af0e-ef0b856d7715 compute-35a9679c-c97
您必须在命令中指定 --os-compute-api-version 2.67
、[host]
和 --force
选项。
- 要查找计算节点的名称,请运行 openstack host list 命令,并查看主机名列。
- 要查找实例的 UUID,请运行 openstack server list 命令,然后查看 ID 列。
在不同计算资源的同一 vDC 之间实时迁移 vMotion
要在不同计算资源的同一 vDC 之间实时迁移 vMotion,请执行以下步骤:
- 在 compute-1 中创建
tenant-vdc1
。viocli create tenant-vdc --name tvdc-01 --project-id ecbf813ee5d54420864247a2edcd76dc --compute compute-c05c9c49-c55
- 创建特定实例并更新特定实例属性。
openstack flavor set --property vmware:tenant_vdc='746146ea-a8f2-4be2-8bef-1dabe1249de7' 70841a4c-1332-4474-abd2-3fa07de3ab8e
- 使用创建的特定实例创建实例,并且必须按如下所示将其置于
tvdc1
下:openstack server create --flavor 70841a4c-1332-4474-abd2-3fa07de3ab8e --network 39f32be5-7079-4110-8f38-8c3948d3079d --image "Photon 3.0" tvdc-001
- 将
tvdc1
扩展到计算节点 2。viocli update tenant-vdc --compute compute-c05c9c49-c3101 --id 746146ea-a8f2-4be2-8bef-1dabe1249de7
- 对于实时迁移,请运行以下命令:
export OS_COMPUTE_API_VERSION=2.67
nova --os-compute-api-version 2.67 live-migration --force d155cbf9-3c1d-4732-9d08-9e28cb141ca0 compute-c05c9c49-c3101
下一步做什么
您可以运行 openstack server show instance-uuid
命令确认该实例已迁移至所需的计算节点。