本文主要是介绍KVM/QEMU2.3.0 虚拟机动态迁移分析(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1 迁移源端QEMU
migrate命令 –> hmp_migrate –> qmp_migrate –> qemu_savevm_state_blocked判断当前虚拟机状态适不适合迁移 –> migrate_init迁移初始化 –> 根据uri来选择迁移函数,如表1所示。
Uri | 跳转函数 |
---|---|
Tcp: | tcp_start_outgoing_migration |
Rdma: | rdma_start_outgoing_migration |
exec: | exec_start_outgoing_migration |
unix: | unix_start_outgoing_migration |
fd: | fd_start_outgoing_migration |
以TCP迁移为例说明:tcp_start_outgoing_migration –> inet_nonblocking_connect(创建一个非阻塞的socket,并用其连接一个地址,并将tcp_wait_for_connect注册为连接成功后的处理函数)。
tcp_wait_for_connect –> migrate_fd_connect –> qemu_thread_create(创建线程,使用函数migration_thread作为执行体)。
migration_thread –> qemu_savevm_state_
这篇关于KVM/QEMU2.3.0 虚拟机动态迁移分析(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!