前段时间,我拿了一些备用件来为 backuppc 做测试。两个较大的硬盘驱动器通过 LVM 合并为一个卷。几个月后,似乎第二个驱动器出了问题。上次检查时,如果我能说服文件系统调整大小,我的数据刚好可以放在第一个驱动器上。
我将文件系统设置为 reiserfs,因为有报告称它在 backuppc 上运行良好。我开始使用 resierfsck 来查看损坏程度,包括尝试--rebuild-tree
使用坏块列表(来自 badblocks 程序)。但每次运行时,它都会发现一个新的坏块并停止,所以看起来磁盘已经无可救药了。
resize_resierfs
告诉我我需要reiserfsck --check
先运行,即使有-f
。这反过来告诉我它无法运行,因为不完整--rebuild-tree
。
至少数据只是备份,因此重新开始不会丢失任何重要数据,只是需要花费大量时间下载初始备份。
答案1
您真正想要做的是将逻辑卷从该驱动器中移除,而最好的办法是将物理盘区迁移到另一个磁盘。如果您只是调整文件系统的大小,则无法预测可用空间将从何处而来。
假设故障驱动器是 ,/dev/sdb
而新驱动器是/dev/sdc
,则程序如下:
准备新磁盘
pvcreate /dev/sdc
将其添加到卷组
vgextend myvolumegroup /dev/sdc
将数据移动到新磁盘
pvmove /dev/sdb /dev/sdc
注意:pvmove 是慢的,所以你可能想要做
pvmove -v /dev/sdb /dev/sdc
反而。
答案2
使用pvmove
将该 LV 的所有范围移至 VG 中的其他 PV 上。
答案3
我同意磁盘似乎无济于事。您的方法(缩小文件系统、缩小 LV、移出坏磁盘)似乎也不错。
这可能会(我的意思是可能会,磁盘故障可能会导致所有赌注都失效)起作用:
- 获取另一个磁盘,至少与发生故障的磁盘一样大。
- 将其添加到卷组(pvcreate、vgextend)。
- 将 LV 从故障磁盘上移开(pvmove)。
这将在 PE/块级别上工作,绕过文件系统。但是您遇到了读取错误,所以我不知道它是否会成功或失败。
答案4
我使用过的每个分区调整程序(gparted、Partition Magic 等)都会在提交任何更改之前对文件系统执行健康检查。除非有人知道某个应用程序不支持并且仍然支持 reiserfs,否则最好的办法是从头开始。我能想到的任何其他方法都会花费更多的工作和更长的时间。
否则,您可以尝试通过文件系统工具重新映射所有坏块,但如果驱动器运行速度确实很快,它们出现的速度可能比您重新映射它们的速度还快。