Nova Mitaka 版本热迁移变化浅析

来源:互联网 发布:mac颜色配置文件 编辑:程序博客网 时间:2024/04/27 04:12
虚拟机热迁移(Live Migration)在Mitaka版本中发生了较大的变化,在临近发布的时候合入了多个BP,其中主要有:

Microvcersion 2.22:
新增加了 server-migrations API 并提供了 live migration force complete的功能,字面意思是提供了可以使migration状态强制变为完成状态,在实现时其实是在底层的libvirt driver进行了虚拟机pause的操作,而其bp也说的是pause vm during live migtate, 当时和作者沟通作者说是后期会增加其他功能,由于是M版本优先级BP因此和入了。这个BP的主要思路是pause虚拟机可以终止一些虚拟机内部的当前任务,从而使得热迁移可以快速完成,这样pause的虚拟机在迁移完成后在目的节点会再自动unpause。其实争议比较大,Matt Riedemann 甚至提出这样还算不算热迁移的问题,比较有意思:
BP: https://blueprints.launchpad.net/nova/+spec/pause-vm-during-live-migration
SPEC: https://review.openstack.org/#/c/229040
PATCH: https://review.openstack.org/#q,topic:bp/pause-vm-during-live-migration,n,z

Microversion 2.23:
新增接口支持只查所有在migration中的migration,使用新的/servers/{uuid}/migrations/ 接口,以及/servers/{uuid}/migrations/{migration_id}来查看指定虚拟机指定migration的详细内容。这个接口返回的数据中提供了一些有关于迁移的新的属性,其中包括了迁移的总迁移量,当前已完成的迁移量等进度信息,可以使得用户更方便的了解正在进行中的迁移的进度状态。这两个接口的实现看起来有一些奇怪,其中第一个List接口是返回某台虚拟机所有的正在进行的migration的状态,而其实在同一时刻虚拟机应该只能有一个migration任务在进行中。而在这种情况下似乎没有再使用提供migration id 来查询迁移进度的需要。还有一个隐患是对于进度的检测采用的是定时写数据库的方式,经过讨论时间间隔虽然由原先的0.5秒一次改到了5秒一次,但是其实用性和性能的平衡点还是需要在实际中去测试,并且这个时间目前是写死的,如果变成配置项可配应该会更实用一点。

BP: https://blueprints.launchpad.net/nova/+spec/live-migration-progress-report
SPEC: https://review.openstack.org/#/c/248472/
PATCH: https://review.openstack.org/#/q/topic:bp/live-migration-progress-report,n,z

Microversion 2.24:
新增接口支持取消正在进行中的Live Migration,需要底层虚拟化driver能支持此功能。

BP: https://blueprints.launchpad.net/nova/+spec/abort-live-migration
SPEC: https://review.openstack.org/#/c/228828/
PATCH: https://review.openstack.org/#q,topic:bp/abort-live-migration,n,z

Microversion 2.25
之前在Live Migration 接口中为必选参数的disk over commit 参数不需要再提供了,而migrate_disk参数可以填为auto,底层会根据虚拟机的实际情况进行自动判断。

BP: https://blueprints.launchpad.net/nova/+spec/making-live-migration-api-friendly
SPEC: https://review.openstack.org/245543
PATCH: https://review.openstack.org/#q,topic:bp/making-live-migration-api-friendly,n,z

分离热迁移时的数据迁移网络:在热迁移进行数据拷贝时,我们之前使用的都是控制面的网络,这导致在实际生产环境中如果有一定数量的迁移在进行,有可能会影响到其他的控制面的网络通信性能,因此提供了分离这两个网络的能力。通过使用新添加的配置项,可以使用专门的网络地址进行热迁移的数据拷贝。

BP: https://blueprints.launchpad.net/nova/+spec/split-network-plane-for-live-migration
SPEC: https://review.openstack.org/#/c/194990
PATCH: https://review.openstack.org/#/c/245005

最后再吐槽一下,社区临近发布合入的几个BP感觉质量参差,坑还是比较多。

0 0
原创粉丝点击