问题描述:
有一个DataStore始终写入失败,报错很简单,就是写入失败。
解决过程:
第一反应,先确定是宿主机问题还是存储问题。测试其他DataStore,完全正常。那就把问题缩小到这个DataStore上来。可能是挂载或者格式化的时候出现了问题,重新来呗,结果还是一样。
第二反应,重新挂,从存储上把Lun抽回去然后再分配给主机。还是一个熊样。
第三反应,查看Vmware底层日志,看似有锁信息。
第四反应,谁加的锁呢?为什么不释放呢?
第五反应,仔细询问实施工程师,原来这个DataStore并没有从Vmwware层面进行卸载就通知存储工程师将其重新分配了。他说这么干过很多次了,重来没没有出过问题。
第六反应,不用想了,Vmare对这个Datastore加了scsi锁,这个锁加在了Lun的盘头。在非正常释放Datastore的场合下,及时存储回收了,当它再次给到Vmware的时候,盘头信息并没有消除。锁依然存在,所以无法写入。
第七反应,存储上讲该存储回收再次分配。问题消除。
问题总结:
试想,如果当时工程师按照正常的流程,把磁盘从Vmware层面进行卸载,然后存储再回收,那就不会有这个问题了。对于这个案例来讲,想告诉大家的是不要想当然,999的成功不等于1000一定成功。因为我们面对的外在环境不一定相同或者相似。所以一切操作请按照正确的流程去做。