0

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

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

  1. 如果我的磁盘坏了,如何更换它
  2. 如果我不能替换它,如何保存我的数据
  3. 如果不小心我(或我的团队)格式化了其中一个磁盘,如何修复它
  4. 如果不小心我的一个磁盘被盗了(我认为这种情况是不可能的,只是在最坏的情况下),如何更换它

对于我上面写的所有问题,我只能回答我的两个问题。

  1. 第一个答案是,我可以replace在拔出损坏的磁盘之前使用方法。
  2. 回答第二个,我可以插入外置硬盘,然后安装它,我可以使用restore方法保存我的数据

对于另一个问题,我没有测试它。

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

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

4

1 回答 1

0
  1. 替换选项需要在磁盘完全死掉之前完成,否则替换操作将不起作用(并且可能会搞砸阵列)。如果磁盘已经无法读取,则将其拉出并使用降级选项挂载。在阵列中添加一个新磁盘并告诉它删除丢失的设备,它应该将其全部整理出来。

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

  3. 格式化磁盘与损坏磁盘没有什么不同,只是您实际上并不需要新的物理磁盘。如果您的阵列是冗余的,请挂载降级,重新添加格式化的磁盘,然后删除丢失的磁盘。它应该自动重新平衡受影响的数据。完成后运行磨砂膏也可能是明智的。

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

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

于 2017-08-18T17:48:20.293 回答