删除损坏的磁盘后,btrfs无法挂载

时间:2017-07-05 09:43:28

标签: filesystems btrfs

我想在我的服务器上使用btrfs作为文件系统,我仍然在所有最糟糕的情况下研究它。

目前我想测试raid系统崩溃,我要测试的条件是:

  1. 如果我的磁盘坏了,如何更换它
  2. 如果我无法替换它,如何保存我的数据
  3. 如果不小心我(或我的团队)合成了一个磁盘,如何解决它
  4. 如果不小心我的一个盘子(我认为这种情况不可能,只是因为最坏的情况),如何更换它
  5. 对于我上面写的所有问题,我只能回答我的两个问题。

    1. 回答第一,我可以在拔掉损坏的磁盘之前使用replace方法。
    2. 回答第二,我可以插入外部硬盘,然后安装它,我可以用restore方法保存我的数据
    3. 对于另一个问题,我没有测试它。

      问题3和4(如果我用另一个磁盘替换它),我尝试使用mount -o degraded但我无法安装它,显示错误wrong fs type, bad option, bad superblock on /dev/sdb。我试图用balance方法重新平衡它,但我无法安装它。

      拜托,我需要回答我的问题3和4。

1 个答案:

答案 0 :(得分:0)

  1. 替换选项需要在之前完成磁盘完全死亡,否则替换操作将无法正常工作(并且可能会搞乱阵列)。如果磁盘已经不可读,则将其拉出并使用降级选项进行挂载。将新磁盘添加到阵列中并告诉它删除丢失的设备,并将其全部排序。

  2. 如果您的阵列在数据和元数据上都有冗余,那么单个故障磁盘不应该花费您任何数据。如果由于某种原因,阵列已损坏且无法接受替换磁盘,则可以使用btrfs recover复制尽可能多的数据,并将其从阵列中复制到另一个存储系统中。然后重建阵列。

  3. 除非您实际上不需要新的物理磁盘,否则格式化磁盘与使用磁盘有所不同。如果您的阵列是冗余的,安装降级,重新添加格式化的磁盘,并删除丢失。它应该自动重新平衡受影响的数据。在你完成后运行磨砂膏也可能是明智的。

  4. 被盗的磁盘与一个坏的磁盘相同。安装降级,添加新的,删除丢失。

  5. 您的错误超级块问题很可能是由于尝试装入已格式化/替换的磁盘造成的。格式化将删除BTRFS文件系统标识符,因此系统无法检测到阵列中的其他驱动器。使用其中一个仍然是数组的一部分的设备作为mount命令,它应该能够检测其余部分。如果它没有,那么在您删除/格式化磁盘之前,可能您的阵列未处于一致状态,并且没有足够的冗余来修复它。 btrfs recover可能是您唯一的选择。根据具体情况,您可能需要运行btrfs device scan来重新检测哪些设备不属于数组。