fangpsh's blog

主机掉电 lvm 异常处理

五一期间,电力维护,机房UPS 异常,导致一批服务器掉电。送电后,其他机器基本都能正常维护,就 2 台 DELL R420 异常,整列卡是PERC H310 Mini,不带 BBU(电池),其他掉电的机器也都是 RAID5+lvmcache(JBOD),但是只有这 2 台 R420 出问题,难道是因为其他的 BBU 让写入数据正常落盘了,所以没异常?

如果是这样的话,那是不是不建议在不带 BBU 的整列上开启 lvmcache 了。

先说说怎么恢复,和之前的ssd 故障掉盘恢复不同。

启动之后,直接报错:

dracut-initqueue timeout - starting timeout scripts
....
Warning: /dev/mapper/centos-root does not exist
...

dracut:/# 下识别不到 lvm,/dev/mapper 看不到任何信息,像是分区异常,但是数据盘大概率没损坏。于是尝试插U 盘用 livecd 进入,真不行按照lvm分区信息丢了还能这样恢复? 手工维护。

xfs 的建议用 centos 的 livecd, 一开始用了ubuntu ,发现不带 xfs_repair。

进入之后,lvm 能正常识别到,移除 cache:

lvconvert --uncache centos/root

回刷数据用了挺久时间,结束之后xfs_repair一下,没异常,可以尝试启动了。

不过启动又报错:DMAR: DRHD: hangling fault status req xxx...PTE Read access is not set,没头绪,google 了下,在grub 页面按e 编辑intel_iommu=off, ok了。

启动之后,又不得不把lvmcache加上了,谁让这🌶︎🐔 卡连缓存都没有。


后续:第二个启动报错问题,[BUG] DELL R420 开启iommu启动异常 #20242 ,参考redhat/183373 确定是LSI MegaRAID SAS 2008的问题。