detach volume流程分析

    xiaoxiao2021-03-25  109

    Detach volumeAttach volume的执行相反

    detach volume流程是:

    cinder-api post detach请求-->nova-compute执行volume卸载(Generate XML)、initiator断开iscsi连接-->cinder-volume删掉对应volumetarget

    attach volume流程是:

    cinder-api post attach请求-->cinder-volume创建对应volumetarget-->nova-computeinitiator连接target、执行挂载(Generate XML

     

    输入nova volume-detach server-id volume-id

    一、cinder-api

     

    1、cinder-api post一个begin_detaching,完成的时间是10:36:17.609nova-compute显示真正开始detach volume的时间是10:36:17.774,结合日志信息volume updated successfully推断,这个begin_detaching的阶段,仅仅是更新数据库的volume信息。

     

    2、接着cinder-api post一个terminate connection的请求,Terminate volume connection completed successfully的时间是10:36:21.276,观察nova-compute日志,实际断开的时间是10:36:20.514,这说明这个时间是真实的,那么api如何得知真的已经断开连接了呢,这个消息的发送应该和MSG_ID有关。

     

    3cinder-api post一个detach请求,api最后显示Detach volume completed successfully的时间是10:36:23.942,而最终cinder-volume显示Detach volume completed successfully的时间是10:36:23.928,这说明,api显示的仍是真实的信息,这个信息也是cinder-volume通过MSG_ID通知到cinder-api的。

     

    二、nova-compute

     

    1nova-compute首先将volumeinstance上卸载,实际上就是更新该instancexml文件,解除该volumeinstance的映射关系

     

    2、断开与远程存储节点上iscsi target的连接,上图日志只是打印出要断开target连接的信息,执行的具体操作如下:

     

    2.1将缓存中的数据flushvolume

     

     

    2.2删除计算节点上对应的scsi设备,也就是/dev/sdb,检查是否/dev/disk/by-path/***-lun-1被删除,/dev/disk/by-path/***-lun-1/dev/sdb的链接文件。

     

    2.3通过iscsiadmlogoutdelete操作断开与iscsi target的连接

     

    三、cinder-volume

     

    1、先验证一个东西:cinder-volume上显示在10:36:21.210时刻,Terminate volume connection completed successfully,这也吻合2.3步骤中,nova-compute断开时间是10:36:20.514

    回到正题:cinder-volumetgt命令删除那个被exporttarget,最后detach过程结束。

    转载请注明原文地址: https://ju.6miu.com/read-22464.html

    最新回复(0)