O040、Migrate Instance 操做详解

 
Migrate 操做的做用是将instance 从当前的计算节点迁移到其余的计算节点上。
 
Migrate 不要求源节点和目标节点共享存储,固然共享存储也是能够的。
 
Migrate 前必须知足一个条件:计算节点间须要配置 nova 用户无密码访问。
 
Migrate 实现过程以下:
 
    一、nova-api 发送Migrate 消息,告知有一个Migrate的请求(使用的是resize方法,详见后面章节)    n-api.log
    二、nova-scheduler 执行调度,选择最合适的计算节点。有可能会选中源计算节点,这时会抛出一个 UnableToMigrateToSelf 异常,因为又RetryFilter,nova-scheduler 会从新调度,并且从新调度的时候会先过滤掉源计算节点,这样就能Migrate到其余计算节点上了。    n-sch.log
    三、nova-scheduler发送消息到Messaging,告知能够进行Migrate了
    四、nova-compute 先会经过ssh 在目标节点上的instance 目录中touch一个文件,来判断使用的是不是共享存储
    五、若是上面是共享存储省略磁盘文件传输过程,若是不是共享存储须要在目标节点上建立instance目录
    六、关闭instance 
    七、将磁盘文件传输到目标计算节点
    八、在目标节点上启动instance,过程和 launch instance相似
    九、Web UI 上会提示 Confirm Or Revert Resize / Migrate ,用户能够选择确认或者回退
    十、若是用户选择确认,会在源节点上执行删除instance操做
    十一、若是用户选择回退,会启动源节点上的instance ,并删除目标节点上的instance
 
注意:迁移过程当中源和目标节点以前会使用ssh和scp,为了使操做顺利进行,必需要保证nova-compute 进程的启动用户(一般是nova,也多是root)能都在计算节点间无密码访问。不然nova-compute 会等待密码输入,但后台服务没有地方输入密码,而后迁移操做就会卡在那里。
相关文章
相关标签/搜索