resize和cold migration流程一样类似,区别在于resize的flavor是重新定义的,而migration的flavor是实例初始的flavor。而对于共享存储,因为映射关系,resize时,直接在本节点创建实例的文件,包括磁盘,磁盘信息,xml文件等。而对于非共享存储,则是通过实现在远端创建目录,而后通过scp或者sync的方式,将实例文件同步过去,见nova.virt.libvirt.volume.remotes.SshDriver.copy_file和ova.virt.libvirt.volume.remotes.RsyncDriver.copy_file
具体流程可参考:
http://blog.csdn.net/tantexian/article/details/41444461
http://blog.csdn.net/tantexian/article/details/41519135
http://blog.csdn.net/tantexian/article/details/41519179
关键步骤:nova/virt/libvirt/driver.py
def migrate_disk_and_power_off(self, context, instance, dest,
flavor, network_info,
block_device_info=None,
timeout=0, retry_interval=0):
LOG.debug("Starting migrate_disk_and_power_off&
具体流程可参考:
http://blog.csdn.net/tantexian/article/details/41444461
http://blog.csdn.net/tantexian/article/details/41519135
http://blog.csdn.net/tantexian/article/details/41519179
关键步骤:nova/virt/libvirt/driver.py
def migrate_disk_and_power_off(self, context, instance, dest,
flavor, network_info,
block_device_info=None,
timeout=0, retry_interval=0):
LOG.debug("Starting migrate_disk_and_power_off&