[ English | Indonesia | русский ]

恢复计算主机故障

以下过程适用于使用共享存储的情况下的计算节点故障。

注意

如果未使用共享存储,可以将数据从故障计算节点 /var/lib/nova/instances 目录复制到另一个节点 ${FAILED_NODE} ${RECEIVING_NODE},然后再执行以下过程。请注意,此方法不受支持。

  1. 重新启动故障节点上的所有实例。

  2. 调用 MariaDB 命令行工具。

  3. 生成托管在故障节点上的实例 UUID 列表

    mysql> select uuid from instances where host = '${FAILED_NODE}' and deleted = 0;
    
  4. 将故障节点上的实例设置为由另一个节点托管

    mysql> update instances set host ='${RECEIVING_NODE}' where host = '${FAILED_NODE}' \
    and deleted = 0;
    
  5. 重新启动之前查询中列出的故障节点上的每个实例,以重新生成 XML 文件

    # nova reboot —hard $INSTANCE_UUID
    
  6. 查找卷以检查实例是否已成功启动并已到达登录界面

    mysql> select nova.instances.uuid as instance_uuid, cinder.volumes.id \
    as voume_uuid, cinder.volumes.status, cinder.volumes.attach_status, \
    cinder.volumes.mountpoint, cinder.volumes,display_name from \
    cinder.volumes inner join nova.instances on cinder.volumes.instance_uuid=nova.instances.uuid \
    where nova.instances.host = '${FAILED_NODE}';
    
  7. 如果找到行,请使用之前查询中列出的值分离并重新连接卷

    # nova volume-detach $INSTANCE_UUID $VOLUME_UUID && \
    # nova volume-attach $INSTANCE_UUID $VOLUME_UUID $VOLUME_MOUNTPOINT
    
  8. 按照 添加计算主机 中所述重建或替换故障节点。