ZStack云平台本地存储环境下,计算节点意外断电,重启后运行在该计算节点的云主机启动失败;并报如下错误:

图1 报错信息
云平台版本:ZStack云平台3.6.0版本
存储:本地存储
网络:扁平网络
云主机操作系统类型:Centos7.4操作系统
1.通过上述报错信息发现云主机在启动过程中发现找不到虚拟磁盘文件;
2.通过对计算节点rc.local文件分析发现使用了磁盘盘符方式进行自动挂载,服务器意外重启后导致物理机上用于本地存储的磁盘盘符发生变化:

图2 盘符信息
rc.local配置文件中显示使用盘符为sdb。

图3 盘符信息
服务器重启之后盘符变成sdc,通过上述分析最终定位到引起云主机启动失败原因为物理机主存储磁盘发生变化导致自动挂载失败。
1.为了防止直接使用盘符分区发生变化,建议使用UUID方式进行挂载,可使用如下命令查询出磁盘UUID:
ll -a /dev/disk/by-uuid/ |grep sdc

图4 磁盘UUID
2.先手动挂载mount /dev/disk/by-uuid/UUID /zstack_ps/
mount /dev/disk/by-uuid/690bfc83-1d7c-4c0a-b35c-fa494143efc0 /zstack_ps/

图5 挂载磁盘
主存储目录挂载好后需要在UI界面上对物理机和主存储进行重连操作:
重连物理机:

图6 重连物理机
重连主存储:

图7 重连主存储
物理机和主存储重连后再次重新启动云主机;

图8 重启云主机
通过重新挂载并重连物理机、主存储后云主机可正常启动并运行。
3.为保证下次物理机异常重启不影响云主机正常运行,则需要再进行自动挂载配置;操作命令如下:
chmod +x /etc/rc.d/rc.local && chmod +x /etc/rc.local;vim /etc/rc.local
为 rc.local 增加权限;编辑 rc.local 时添加如下内容:
mount /dev/disk/by-uuid/690bfc83-1d7c-4c0a-b35c-fa494143efc0 /zstack_ps/