近日,遇到一个非常奇怪的问题:重启腾讯云服务器后导致数据遗失,即整个/var下的内容都不见了,而且mysql、sshd都无法启动. 针对以上问题,经过了一个下午的排查,最终确定是由于挂载了新硬盘导致原数据看不到。如果你只想关注结果,本文就到此结束了,然而我更想把整个排查过程分享于此。最近在看电视剧《神探狄仁杰》,非常精彩,试想一下,如果一下子给出谁是凶手,就没有那么精彩了,其给出的往往是一些蛛丝马迹,通过这些蛛丝马迹慢慢推出凶手;排查问题跟断案也是一个道理,我们可以根据已有的蛛丝马迹,推出真正的『凶手』。

蛛丝马迹
  • 头一次重启非常慢,大致花费了5分钟,后面重启时间正常
  • 启动后发现ssh无法登录,提示/var/empty/xxx文件不存在
  • mysql启动失败,提示/var/lib/mysql/xxx不存在
  • 外挂50G硬盘,只分配了10G
推敲
  • 会不会被误删

根据以上的蛛丝马迹,我们把问题定位在/var,即由于/var中文件遗失,导致服务异常,于是我们确认了下/var,确实没有相应的文件,而没有很可能被误删除了,我们查了下history,发现并没有类似的操作;

  • 会不会是盘损坏,重新初始化

我又重新确认了下/var,发现/var确实是外挂硬盘,于是我就猜想会不会是腾讯内部BUG引发硬盘损坏,重新初始化,于是自己就把自己推向的死路,至此冤案就产生了,认定腾讯云不可靠。

  • 偶然卸载硬盘

也是事情到此就结束了,带着无数的疑问长埋于地下,然而事情就是这么偶然,由于之前的硬盘只分配了10G,于是我想重新分配下,因此我就卸载了硬盘,并重启了,然而神奇的事情就发生了,mysql服务正常了,查看/var,发现原来的文件都像变戏法般还原了。

  • 确定出真正元凶

于是分析了下,终于确定了是由于挂载了新硬盘,导致原/var下的内容神奇的消失了。而且忽然想到,腾讯云新分配的硬盘,需要重启才能生效,而且硬盘初始化需要一段时间,这也就解释了为何头一次重启需要花费5分钟时间。

总结

唯有真正元凶,才会让所有现象都变得很好解释,否则很有可能产生冤案.