虚机操作之migrate日志跟踪

来源:互联网 发布:多维分析 数据服务 编辑:程序博客网 时间:2024/06/08 18:56

源计算节点:compute,目标节点:compute1(在实际环境中,目标节点多个,由nova-scheduler按过滤规则选出,本实验环境就两个计算节点,当然是一个迁移到另一个了)

按下dashboard上的migrate按钮后发生下面的事情

1、查看控制节点上的nova-api.log日志

 

2、nova-api发送向rabbitmq发送消息,迁移这个instance,可以在代码中查看,日志并未记录nova-apirabbitmq发消息这个过程

3nova-scheduler收到消息,为迁移的instance过滤选择合适的目标计算节点,nova-scheduler.log日志跟踪如下,我的实验环境只有两台计算节点,所以scheduler过滤过程中,只过滤到了符合条件的compute1nova-scheduler发送消息通知计算节点可以迁移了。

 

PS:我的环境这个过滤规则直接就filtered出了compute1,源计算节点没有通过filter,所以日志里没有显示,实际在这个过程中,nova-scheduler是有可能选择到源计算节点作为迁移的目标节点的,假如最终选中的仍然是源计算节点,nova-compute在做migrate时会检查迁移的目标节点是否与源节点相同,若相同则会抛出UnableToMigrateToSelf的异常。nova-compute失败后,scheduler会重新调度,由于调度策略中的RetryFilter会将之前选择的源节点过滤掉,这样就选择到了一定不是源节点的目标节点。

4、nova-compute在源/目标计算节点分别执行操作。

源节点:

1)迁移前关闭instance,但下面日志显示的这个时刻并没有真的关闭instance,要在后面操作完成后才迁移

 

(2)迁移前,在源节点上ssh到目标节点,测试touch命令创建一个临时文件,也就是touch /var/lib/nova/instances/[uuid]/*****.tmp,本例日志显示,目标节点上无法创建这个临时文件,说明没有这个目录,那么就ssh到这个目标节点创建一个目录咯,创建完成后就关闭instance

 

PS我的实验环境有问题,不仔细排查了,日志显示关了60sshutdown failed,最后是destoryed的,这个关机操作,以后再研究,下面继续按照正常流程来。

3)日志显示的步骤已经很清楚了,先把源节点上的对应instance的目录给备份了,就是改了下目录名字而已。然后拷贝这个目录下的diskdisk.info这两个文件到目标节点的对应目录下(就是之前测试没有,后来创建的那个)

 

PS:看了半天的日志,才发现带(subprocess)字样的就是实际执行了这条命令产生的日志信息,下面一条日志信息是返回return 0,表示上面那个subprocess执行的命令成功。

目标节点:

在目标节点启动迁移过来的这个instance,与launch instance类似。可以查看日志。

 

按下confirm按钮后,源节点会删除instance目录,并在Hypervisor上删掉instance

按下revert按钮后执行如下操作:

(1)在目标节点关闭迁移后已启动的instance

(2)Hypervisor上删除instance

(3)源计算节点上只需要直接启动instance即可,因为只是做了个改变目录名的事儿而已,改回来就行了

0 0