由于业务上的需要,我们的系统盘之前一直是直接软RAID 0然后做系统的(因为RAID卡组RAID实际上会有一些性能损耗,损耗大到会对业务有一定的影响,所以直接软RAID0)。
然后15年下半年,偷懒选择了硬盘座克隆硬盘的方式快速写入系统,这样只需要把硬盘插上去,克隆完成后捅回服务器上改一下MAC即可
然后。。。。。。这批机器的系统盘,在工作了2个月后,大量的出现了read-only file system的情况。。。
一开始的做法是:直接重新安装系统,这样比较靠谱,但是很耗费时间,每台机器的流量都很大(最低也会有1个G,高的时候每台甚至都会到10个G的带宽占用),一台服务器下线就意味着压力分散到了其他服务器上
后来经过研究,看到了这一篇文章:http://www.111cn.net/sys/linux/59672.htm,然后决定跟着这篇文章的思路自己来试一试,正好有一台系统盘RO的服务器等着修
实际操作很简单:
我们是EXT4的分区,就直接执行
fsck.ext4 -y /dev/md0
接下来会有一串是否修复的提示(这里有个有意思的事情,有的服务器会自动一路确认然后修下去,但是有些服务器却不自动,等着你按下Y键)
修复完成后,直接reboot,重启机器
漫长的等待后(其实也就1分半)。。。系统起来了,然后touch测试了一发,成功写入~
这里有几点要注意的地方
1、分区格式一定要选对,直接df -Th即可看到
2、参考的文章建议你unmount后再修复,但由于我们是系统盘,又是raid0,所以不可能unmount,这次我也是死马当活马医直接/dev/md0 结果神奇的发现可以修复
3、如果你的机器已经重启,然后进入了busybox的话,不要慌,在这里一样可以执行fsck来修复硬盘,而且至少我这里修复了后就又正常的进入了系统~
4、我们的服务器有接好远程口,所以出了问题大不了就是重装一下系统,但是如果你的服务器并没有装远程口,机器上跑的又是关键业务的话。。。那还是建议你悠着点,毕竟数据更重要。
ps。。。这文章白天写完,下午让机房的人换硬盘的时候。。。。。。日了狗,一块系统盘被她们拔了。。。这回的ro彻底没法修了艸。。。