介绍
在生产环境中,我遇到了几台服务器(CentOS 6.4)的问题,问题是服务器不时崩溃,我们需要重新启动这些服务器,以便能够再次使用它们。
问题
问题是,有时在重新启动后服务器执行强制检查的文件系统,当它失败有人需要身体去服务器和手动执行FSCK。
这个问题
当这种强制检查无法通过SSH访问服务器时,有没有一种方法可以真正启动系统? 还是有另一种解决scheme,既有定期检查文件系统和SSH访问服务器。
提前致谢!
首先,使用一些不依赖操作系统的远程控制台连接。 对于戴尔,它是iDRAC,惠普是iLO,IBM是RSA2等。这是标准做法,因为除了fsck之外,还可能有其他许多启动错误。
其次,看到自动fsck的问题 。 但是,如果你正在做这个“自动化”,确保你已经testing了你的备份。 有了这个,你的fsck会通过,你可以通过SSH连接。
我会专心找出最初的问题的原因。 无论是文件系统损坏还是机器无响应的另一个症状,或者您正在执行不安全的重新引导(电源循环)或上述两者。
你没有说你的文件系统是如何安排的,哪一个正在变坏。 如果你有一个非常小的根文件系统,几乎所有其他东西都是单独的坐骑( /sbin , /etc ,还有其他一些东西需要一直保留在根fs上), fsck正在拾取的东西在非根文件系统上那么如果你熟悉shell脚本,你可以调整启动过程
/导致它阻止 这样,你可以ssh来修复其他文件系统,并启动一个干净的重新启动,把东西放回原处。
有一些选项可以设置fsck来自动尝试修复问题(如果是由不安全的重启引起的,通常情况下并不严重,尤其是对于日志文件系统),但是这通常不被推荐用于生产环境,因为它可以隐藏日益严重的问题。 在/etc/default/rcS ,在Debian / Ubuntu /类似的FSCKFIX选项/etc/default/rcS , /var/log/fsck/checkfslogging结果,如果/var在成功安装的文件系统上是可读的,在CentOS也是如此。
如果你真的想坐在你的裤子的位置上,把pasnum设置为/etc/fsck (最后一列)中的所有内容都设为0,没有任何东西会被检查。 这当然是非常不推荐…如果你真的走这个方法,我build议你设置最小的服务启动时自动启动,SSH在重新启动后立即运行fsck一切,而挂载只读,重新安装一切读取+写入模式,然后启动您的服务(这样您可以访问机器,但是只有在确定机器上的文件系统干净后,才能启动面向服务的用户)。
但是,真正find根本原因应该是您的首选,IMO和远程KVM选项比在可能损坏的文件系统中启动到操作系统的风险更好。
至less在Debian上 ,可以将dropbear SSH服务器安装到INITRD中。 在Centos上应该可以做到这一点,但是我没有具体的说明,但我可以指出。
在任何情况下,您最好都要进行某种带外pipe理设置。