我可以调整reiserfs的LVM卷失败吗?

前段时间,我抽出一些备件来设置backuppctesting。 两个较大的硬盘被合并成LVM的单个卷。 几个月后,似乎第二个驱动器正在变坏。 最后我检查了一下,如果我能说服文件系统resize,我所拥有的数据就可以放在第一个驱动器上。

我将文件系统设置为reiserfs,接下来的一些报告表明它对backuppc运行良好。 我开始使用resierfsck来查看损坏的程度,包括尝试使用坏块列表(来自badblocks程序)的--rebuild-tree 。 但每次运行时,都会发现一个新的坏块并暂停,所以看起来像是磁盘丢失的原因。

resize_resierfs告诉我,我需要先运行reiserfsck --check ,即使使用-f 。 这反过来告诉我,它不能运行,因为一个不完整的 – --rebuild-tree

至less数据只是备份,所以没有什么重要的东西会被重新开始丢失,只是很多时间下载初始备份。

你真正想要做的是将逻辑卷从驱动器中取出,最好的办法是将物理盘区迁移到另一个磁盘。 如果只是调整文件系统的大小,无法预测可用空间的来源。

假设失败的驱动器是/dev/sdb ,并且新驱动器是/dev/sdc ,则过程如下:

准备新的磁盘

 pvcreate /dev/sdc 

将其添加到卷组中

 vgextend myvolumegroup /dev/sdc 

将数据移动到新的磁盘

 pvmove /dev/sdb /dev/sdc 

注意:pvmove很 ,所以你可能要这样做

 pvmove -v /dev/sdb /dev/sdc 

代替。

使用pvmove将该LV的所有扩展区移到VG中的其他PV上。

我同意这个磁盘似乎是一个失败的原因。 你的方法(缩小文件系统,缩小LV,移动坏的磁盘)也似乎没问题。

这可能(我的意思是可能,所有的投注失败的磁盘)工作:

  1. 获得另一个磁盘,至less与失败磁盘一样大。
  2. 将其添加到卷组(pvcreate,vgextend)。
  3. 将LV从故障磁盘(pvmove)中移出。

这将在PE /块级别工作,绕过文件系统。 但是,你正在阅读错误,所以我不知道它会工作还是失败。

用健康的磁盘,从VG中删除一个是这样的:(我猜你有一个LV跨越两个磁盘)

  1. 调整文件系统的大小
    • 调整LV
    • pvmove的
    • vgreduce

但你的主要问题似乎是第1步和第3步真的不喜欢磁盘错误。

在过去,我从reiserfs卷中恢复数据的唯一方法是使用坏扇区。 所有“危险的”reiserfs工具都是安全的:在第一次磁盘错误时,整个操作被取消。 与ddrescue我可以简单地复制到一个好的设备,并继续与reiserfsck。

我曾经使用的每个分区大小调整程序(gparted,Partition Magic等)都会在提交任何更改之前对文件系统执行健康检查。 除非有人知道一个不支持reiserfs的应用,否则最好的办法就是从头开始。 我能想到的任何其他途径都会有更多的工作,需要更长的时间。

否则,您可以尝试通过文件系统工具重新映射所有坏块,但是如果硬盘真的很快,它们可能会显示得比您可以重映射快。