我正在寻找从软件 raid5 中设置的 4 个旧 HDD 恢复数据,看起来磁盘已出现故障。我想要做的是恢复 raid,以便我可以将其数据复制到其他地方。我已经做了一些研究,我相信我想用它mdadm
来执行重新同步,但最终我不想把它搞砸,如果有人能解释需要做什么才能实现这一点,我将不胜感激数据安全。我也在 ubuntu 16.04 上,这是我运行时看到的mdadm --detail /dev/md0
/dev/md0:
Version : 1.1
Creation Time : Thu Feb 13 09:03:27 2014
Raid Level : raid5
Array Size : 4395016704 (4191.41 GiB 4500.50 GB)
Used Dev Size : 1465005568 (1397.14 GiB 1500.17 GB)
Raid Devices : 4
Total Devices : 3
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Sun Dec 23 12:51:56 2018
State : clean, FAILED
Active Devices : 2
Working Devices : 2
Failed Devices : 1
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 512K
Name : CentOS-01:0
UUID : 1cf7d605:8b0ef6c5:bccd8c1e:3e841f24
Events : 4178728
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 33 1 active sync /dev/sdc1
2 8 65 2 active sync /dev/sde1
6 0 0 6 removed
0 8 49 - faulty /dev/sdd1
另外,我在每个设备上运行 mdadm --examine:
/dev/sdb1:
Magic : a92b4efc
Version : 1.1
Feature Map : 0x1
Array UUID : 1cf7d605:8b0ef6c5:bccd8c1e:3e841f24
Name : CentOS-01:0
Creation Time : Thu Feb 13 09:03:27 2014
Raid Level : raid5
Raid Devices : 4
Avail Dev Size : 2930012160 (1397.14 GiB 1500.17 GB)
Array Size : 4395016704 (4191.41 GiB 4500.50 GB)
Used Dev Size : 2930011136 (1397.14 GiB 1500.17 GB)
Data Offset : 262144 sectors
Super Offset : 0 sectors
Unused Space : before=262072 sectors, after=1024 sectors
State : clean
Device UUID : 252a74c1:fae726d9:179963f2:e4694a65
Internal Bitmap : 8 sectors from superblock
Update Time : Sun Mar 15 07:05:19 2015
Checksum : 53cae08e - correct
Events : 130380
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 3
Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdc1:
Magic : a92b4efc
Version : 1.1
Feature Map : 0x1
Array UUID : 1cf7d605:8b0ef6c5:bccd8c1e:3e841f24
Name : CentOS-01:0
Creation Time : Thu Feb 13 09:03:27 2014
Raid Level : raid5
Raid Devices : 4
Avail Dev Size : 2930012160 (1397.14 GiB 1500.17 GB)
Array Size : 4395016704 (4191.41 GiB 4500.50 GB)
Used Dev Size : 2930011136 (1397.14 GiB 1500.17 GB)
Data Offset : 262144 sectors
Super Offset : 0 sectors
Unused Space : before=262072 sectors, after=1024 sectors
State : clean
Device UUID : dc8c18bd:e92ba6d3:b303ee86:01bd6451
Internal Bitmap : 8 sectors from superblock
Update Time : Sun Dec 23 14:18:53 2018
Checksum : d1ed82ce - correct
Events : 4178730
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 1
Array State : .AA. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdd1:
Magic : a92b4efc
Version : 1.1
Feature Map : 0x1
Array UUID : 1cf7d605:8b0ef6c5:bccd8c1e:3e841f24
Name : CentOS-01:0
Creation Time : Thu Feb 13 09:03:27 2014
Raid Level : raid5
Raid Devices : 4
Avail Dev Size : 2930012160 (1397.14 GiB 1500.17 GB)
Array Size : 4395016704 (4191.41 GiB 4500.50 GB)
Used Dev Size : 2930011136 (1397.14 GiB 1500.17 GB)
Data Offset : 262144 sectors
Super Offset : 0 sectors
Unused Space : before=262072 sectors, after=1024 sectors
State : active
Device UUID : 03a2de27:7993c129:23762f07:f4ba7ff8
Internal Bitmap : 8 sectors from superblock
Update Time : Sun Dec 23 12:48:03 2018
Checksum : ba2a5a95 - correct
Events : 4178721
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 0
Array State : AAA. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sde1:
Magic : a92b4efc
Version : 1.1
Feature Map : 0x1
Array UUID : 1cf7d605:8b0ef6c5:bccd8c1e:3e841f24
Name : CentOS-01:0
Creation Time : Thu Feb 13 09:03:27 2014
Raid Level : raid5
Raid Devices : 4
Avail Dev Size : 2930012160 (1397.14 GiB 1500.17 GB)
Array Size : 4395016704 (4191.41 GiB 4500.50 GB)
Used Dev Size : 2930011136 (1397.14 GiB 1500.17 GB)
Data Offset : 262144 sectors
Super Offset : 0 sectors
Unused Space : before=262072 sectors, after=1024 sectors
State : clean
Device UUID : c00a8798:51804c50:3fe76211:8aafd9b1
Internal Bitmap : 8 sectors from superblock
Update Time : Sun Dec 23 14:18:53 2018
Checksum : 14ec2b30 - correct
Events : 4178730
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 2
Array State : .AA. ('A' == active, '.' == missing, 'R' == replacing)
编辑: 按照@frostschutz的建议,我运行了:
server:~$ sudo mdadm --stop /dev/md0
从而成功阻止了袭击。之后我跑了:
server:~$ sudo mdadm --assemble --force /dev/md0 /dev/sdc1 /dev/sdd1 /dev/sde1`
mdadm: forcing event count in /dev/sdd1(0) from 4178721 upto 4178730
mdadm: Marking array /dev/md0 as 'clean'
mdadm: /dev/md0 assembled from 3 drives - not enough to start the array.
看起来不太好,但我仍然尝试了以下方法:
server:~$ sudo mdadm --assemble --scan
mdadm: /dev/md/0 has been started with 3 drives (out of 4).
此后,阵列现在处于“活动、降级”状态,其中 3 个磁盘处于“活动同步”状态,最后一个磁盘被删除。我很高兴地报告,我已经成功开始将数据复制到更安全的地方(至少到目前为止,rsync 命令没有显示错误消息,但我想我们会看到)。
答案1
所以.../dev/sdb1
从那以后就没有在这个阵列中活跃过2015年( Update Time
)。上面的数据应该已经过时到无用的程度了。从本质上讲,您从那时起就一直在运行 RAID-0。
这样就剩下另外三个设备了/dev/sd{c,d,e}1
。其中,/dev/sdd1
最近失败了。由于您几年前就已经失去了冗余,因此这次故障实际上使您的 RAID 完全无法工作。
现在就看情况了。这三个驱动器仍然可读吗?然后您也许可以恢复数据。否则,游戏就结束了。所以检查一下smartctl -a
。如果任何驱动器有坏扇区或重新分配的扇区,请使用ddrescue
将它们复制到新驱动器。
如果驱动器完好无损,并且有足够新的内核(4.10+)和 mdadm(v4.x),您可能可以像这样组装它:
mdadm --stop /dev/md0
mdadm --assemble --force /dev/md0 /dev/sdc1 /dev/sdd1 /dev/sde1
(旧版本中存在组装力错误,但我不确定到底是哪个版本。)
...如果这不起作用,你就剩下了,mdadm --create
但这是一条充满危险的道路,另请参阅https://unix.stackexchange.com/a/131927/30851