由于发生了单点故障,笔者最近处理了一个case,其中一些经验非常希望和大家分享。
问题原因:
某环境使用VMware的ESXi5.1的平台搭建的,存储使用iSCSI进行连接,Manage和业务口分离,但是Manage本身为单点环境非冗余,并且iSCSI的流量也经过该端口进行连接。某日网络交换机故障导致了存储与ESXi主机的失联,等待网络恢复之后,部分虚拟机自己活了过了,并对外正常提供业务,而部分虚拟机在VCenter中看到灰色不可用状态,直接登录到ESXi主机上显示UnknownNUM字样。并且事发之后有多个操作人员在奋力齐修,但是始终有几台虚拟机不能被添加到清单中,体现的样子如下图所示。
Figure 1浏览存储添加虚拟机配置文件到清单项目为灰色不可用
问题是这么考虑的
有两个方向:拼凑虚拟机——通过新建VM,磁盘选择该文件夹下的VMDK文件;另一个方向就是从VM层面考虑是不是磁盘文件损坏,文件被锁等问题。
解决问题
根据第一种方法,经过各种拼凑和组装,最后得到的结果就是怎么都不行,各种报错中间总会夹杂着文件不能被锁定、磁盘vmdk依赖的文件不可被访问等等信息。
那就转投第二种方法,想到前面查看加载清单出现的状况,加载清单出现灰色条目表示不可用,但文件有大小,被占用的可能性越来越大,通过登录到ESXi主机里面直接查看文件占用情况了解到的情况如下:
Figure 2使用vmkfstools -D 查看某文件的锁定状态,红色标记看到Lock字样标识锁定,黄色标记表明该文件被这个MAC地址的主机锁定
现在问题又来了,在管理众多ESXi主机的VC下面寻找到一个小小的主机MAC目测是件很木乱还要看运气的事情,有没有什么便捷的办法快速定位这个问题?
这里推荐一款VMware相关的第三方小工具RVTools(作者Rob de Veij是VMware公司4年的vExpert),它可以统一查看很多虚拟化和主机信息,包括本例中你的主机MAC,统一查看存储名称和内部URL映射关系表,同时这些信息均可以被导出。
Figure 3通过该工具可以在vNIC选项卡下面可以很方便的查找到对应的主机和MAC对应关系
问题得以解决
最后通过VMware Client程序登录到对应主机,从其中浏览存储,将失联的虚拟机添加到清单中即可。
小结
解决问题的方向有时候比技术更有指向性,需要在合适的情况下指定合理有效的维修方案,使得问题迅速解决。
RVTools算是本文的干货软件,大家可以通过官方链接订阅下载,同时有更新的时候也会通过邮件系统发送到您的邮箱,当然也可以点击下面的链接直接从cnBlogs下载,本地下载3.6版。
本文参考:VMware KB 2180803