如何将OpenStack实例从一个计算主机迁移到另一个
时间:2020-02-23 14:41:13 来源:igfitidea点击:
可以在OpenStack中将实例从一个计算主机移动到另一个实例。
当计算节点具有问题或者维护时,这是一个常见任务。
OpenStack Server Migrate命令用于将OpenStack实例从一个计算主机迁移到另一个。
Nova Scheduler将根据其设置自动选择目标计算主机。
迁移过程不假设实例在目标主机上可用共享存储。
对于使用SSH隧道的人,请确保使用SSH密钥身份验证配置每个节点,以便计算服务可以使用SSH将磁盘移动到其他节点。
我们可以执行实时迁移或者非实时迁移。
在非实时迁移中,实例关闭,然后移动到另一个虚拟机管理程序并重新启动。
实例识别出它重新启动,并且实例上运行的应用程序被中断。
使用实时迁移,实例在整个迁移中断运行。
这可以通过处理实例存储的方式进一步分类:共享基于存储的实时迁移。
该实例具有位于源主机和目标主机之间共享的存储中的截阵截面.Block实时迁移,或者只是阻止迁移。
该实例具有在源主机和目标主机之间不共享的短暂磁盘。
块迁移与只读设备诸如CD-ROM和配置驱动器(CONFIG_DRIVE).volume备份的实时迁移不兼容。
实例使用卷而不是短暂磁盘。
第1步:识别VM以迁移
识别要迁移的VM。
要列出在OpenStack上运行的VM,请运行:
$openstack server list +--------------------------------------+-------------+--------+----------------------+----------+----------+ | ID | Name | Status | Networks | Image | Flavor | +--------------------------------------+-------------+--------+----------------------+----------+----------+ | 97cb5110-4135-4b59-8049-d19a29f64184 | dbvm01 | ACTIVE | public=172.20.150.70 | rhel-7.6 | m1.small | | 8ba74eb3-469e-4535-8f30-ed75df303680 | webvm01 | ACTIVE | public=172.20.150.71 | rhel-7.6 | m1.small | +--------------------------------------+-------------+--------+----------------------+----------+----------+
列表虚拟机管理程序可用:
$openstack hypervisor list +----+----------------------------------+-----------------+---------------+-------+ | ID | Hypervisor Hostname | Hypervisor Type | Host IP | State | +----+----------------------------------+-----------------+---------------+-------+ | 1 | compute-01.osp.example.com | QEMU | 172.20.150.10 | up | | 4 | compute-02.osp.example.com | QEMU | 172.20.150.11 | up | +----+----------------------------------+-----------------+---------------+-------+
获取Hypervisor服务名称:
$openstack hypervisor show compute-01.osp.example.com
使用OpenStack Server Migrate命令迁移实例。
$openstack server migrate <options> <server>
通过运行,请参阅可用的命令选项:
$openstack server migrate --help usage: openstack server migrate [-h] [--live <hostname>] [--shared-migration | --block-migration] [--disk-overcommit | --no-disk-overcommit] [--wait] <server> Migrate server to different host positional arguments: <server> Server (name or ID) optional arguments: -h, --help show this help message and exit --live <hostname> Target hostname --shared-migration Perform a shared live migration (default) --block-migration Perform a block live migration --disk-overcommit Allow disk over-commit on the destination host --no-disk-overcommit Do not over-commit disk on the destination host (default) --wait Wait for migrate to complete
迁移示例:
$openstack server migrate dbvm01
迁移实例和短暂块磁盘:
openstack server migrate --block-migration --live compute-02.localdomain dbvm01
其中:compute-02.localdomain是目标主机hostnamedbvm01是要迁移实例的名称。
检查实例迁移状态。
$openstack server show dbvm01 +-------------------------------------+----------------------------------------------------------+ | Field | Value | +-------------------------------------+----------------------------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-AZ:availability_zone | nova | | OS-EXT-SRV-ATTR:host | compute-01.localdomain | | OS-EXT-SRV-ATTR:hypervisor_hostname | compute-01.osp.example.com | | OS-EXT-SRV-ATTR:instance_name | instance-000000cf | | OS-EXT-STS:power_state | Running | | OS-EXT-STS:task_state | None | | OS-EXT-STS:vm_state | resized | | OS-SRV-USG:launched_at | 2019-09-18T08:59:09.000000 | | OS-SRV-USG:terminated_at | None | | accessIPv4 | | | accessIPv6 | | | addresses | public=172.20.150.70 | | config_drive | | | created | 2019-09-18T06:30:41Z | | flavor | m1.medium (2) | | hostId | 0535fdb75a2a49238da76c9b812629b3fc5522251ab791ef03287be9 | | id | 3a82cf1f-93d0-47c6-931f-9d14472d9e45 | | image | rhel-7.6 (3dcc3ae0-41ba-4371-afb2-c07c5c1725fb) | | key_name | None | | name | dbvm01 | | progress | 0 | | project_id | f278b83dd81848399a66d704aeb507b4 | | properties | | | security_groups | name='default' | | status | VERIFY_RESIZE | | updated | 2019-09-18T08:59:10Z | | user_id | 9d6cd9e9847640ffbb2570a39d98aa55 | | volumes_attached | | +-------------------------------------+----------------------------------------------------------+
如果状态已验证_RESIZE。
手动确认调整大小。
$openstack server resize --confirm dbvm01
应设置为活动状态。
| status | ACTIVE |