Xenapi-live-migration
- Launchpad 条目: NovaSpec:xenapi-live-migration
- 创建时间: 2012年6月8日
- 贡献者: John Garbutt
总结
我们需要在 XenAPI 驱动程序中支持实时迁移。
这仅处理使用由 XenServer 池管理的共享存储的实时迁移。它在使用外部 ramdisk 和内核时也无法工作
发布说明
添加了对 XenAPI 中实时迁移的支持。
对于基于共享存储的实时迁移,您需要确保源主机和目标主机位于同一聚合中,配置为使用池默认 SR,并且默认 SR 是一个共享存储系统,类似于 NFS。
更多文档请参见:https://wiki.openstack.org/XenServer/LiveMigration
原理
以类似于当前 LibVirt 支持的方式,使用 XenAPI 暴露实时迁移。
用户故事
用户正在运行一个 VM (w
前提条件
- 主机聚合允许您创建一个 XenServer 池。
- 池正在使用共享存储
设计
利用 XenAPI pool_migrate 调用在共享存储上迁移 XenServer 池内的 VM。
实现
UI 变更
与 libvirt 相同
代码变更
大的代码更改是
- 在 XenAPI 驱动程序中实现实时迁移调用
- 重构调度器代码,使其仅包含 XenAPI 和 LibVirt 通用的检查
- 以上涉及驱动程序向其他驱动程序发出 rpc 调用(就像在创建 XenServer 池时 XenAPI 层中一样)
- 以上涉及引入 rpc 调用 "check_can_live_migrate" 来替换调度器将要执行的调用,例如 "compare_cpu" 和 "check_shared_storage"
迁移
无。
测试/演示计划
- 手动测试 KVM 以确保没有回归
- 使用 XenServer 6.0 进行手动测试,以检查 XenAPI 实现
- 推迟 tempest 测试,直到使用 Xen Storage Motion
未解决的问题
- ramdisk + kernel
- 更好的错误报告
- 为 Xen Storage Motion 打开了另一个蓝图
- 将打开另一个蓝图来研究迁移与实时迁移的区别