我有一台服务器,该服务器配备了 RAID LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] 和 4 个 3TB 磁盘,配置为 RAID 5。不幸的是,经过 3 年的良好服务后,一个磁盘坏了(盘片不见了),另一个磁盘出现了一些坏扇区。
我需要恢复两天前的一些数据,但我无法挂载和/或找到方法。我不知道如何恢复一些数据的正确方法,我停止了服务器并寻求帮助。
我可以采取什么步骤来恢复阵列上的数据?
答案1
这是 RAID5 阵列的一个“经典”问题:当一个磁盘坏掉时,你发现其他磁盘也出现了坏扇区。在这种情况下,许多硬件 RAID 控制器会直接丢弃整个阵列(或拒绝启动它)。
如果您的 RAID 控制器具有“强制”模式以使阵列联机(尽管不可避免地会出现一些数据损坏),请使用它。
如果没有,你应该能够通过以下方式恢复:
- 获取与有坏扇区的磁盘相同的磁盘
- 将两个磁盘连接到 Linux 机器
ddrescue
(或 dd_rescue,按照 Debian 的说法) - 使用命令将旧磁盘复制到新磁盘
ddrescue <bad_drive> <new_drive>
- 让它完成,然后将新驱动器连接到 RAID 控制器,在分配给坏设备的同一个位置/位置
- 尽管不可避免的会出现一些数据损坏,但您的阵列应该可以上线。
- 对 vdisk/array 进行完整的文件系统检查
如果幸运的话,损坏的数据驻留在可用/未分配的空间中,因此不会造成数据丢失。
否则,您可能会丢失某些东西。如果这是不可接受的风险,请忘记上面的步骤:销毁/重新创建阵列并从备份中恢复。