使用版本1.2元数据从双驱动器RAID 5arrays中移除驱动器?

我的情况与“如何从非标准的双驱动器RAID 5arrays中移除驱动器”几乎相同? ,除了我的2 TB RAID5正在使用mdadm超级版本1.2。 根据最好的答案 ,“因为它是0.90的mdadm超级块,所以每个驱动器也应该可以自己使用。由于1.1和1.2将元数据放在arrays的起始位置,所以这些版本不起作用。 “

但是,执行后

mdadm /dev/md0 --grow --raid-devices=2 

并完成后续的布局更改,我的RAID 5看起来像这样:

  /dev/md0: Version : 1.2 Creation Time : Thu Sep 25 11:25:10 2014 Raid Level : raid5 Array Size : 1953383296 (1862.89 GiB 2000.26 GB) Used Dev Size : 1953383296 (1862.89 GiB 2000.26 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Sun May 3 17:19:39 2015 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 128K Name : XXX:0 (local to host XXX) UUID : XXX:XXX:XXX:XXX Events : 93388 Number Major Minor RaidDevice State 3 8 16 0 active sync /dev/sdb 1 8 32 1 active sync /dev/sdc 

我的两个设备是这样的:

 /dev/sdb: Magic : a92b4efc Version : 1.2 Feature Map : 0x0 Array UUID : 37ac9dbd:a823812b:fe8a59f6:ba24bf34 Name : XXX:0 (local to host XXX) Creation Time : Thu Sep 25 11:25:10 2014 Raid Level : raid5 Raid Devices : 2 Avail Dev Size : 3906767024 (1862.89 GiB 2000.26 GB) Array Size : 1953383296 (1862.89 GiB 2000.26 GB) Used Dev Size : 3906766592 (1862.89 GiB 2000.26 GB) Data Offset : 262144 sectors Super Offset : 8 sectors State : clean Device UUID : XXX:XXX:XXX:XXX Update Time : Sun May 3 13:11:25 2015 Checksum : 30f8e8f7 - correct Events : 93388 Layout : left-symmetric Chunk Size : 128K Device Role : Active device 0 Array State : AA ('A' == active, '.' == missing) 

 /dev/sdc: Magic : a92b4efc Version : 1.2 Feature Map : 0x0 Array UUID : 37ac9dbd:a823812b:fe8a59f6:ba24bf34 Name : XXX:0 (local to host XXX) Creation Time : Thu Sep 25 11:25:10 2014 Raid Level : raid5 Raid Devices : 2 Avail Dev Size : 3906767024 (1862.89 GiB 2000.26 GB) Array Size : 1953383296 (1862.89 GiB 2000.26 GB) Used Dev Size : 3906766592 (1862.89 GiB 2000.26 GB) Data Offset : 262144 sectors Super Offset : 8 sectors State : clean Device UUID : XXX:XXX:XXX:XXX Update Time : Sun May 3 13:11:25 2015 Checksum : 6ab24a9f - correct Events : 93388 Layout : left-symmetric Chunk Size : 128K Device Role : Active device 1 Array State : AA ('A' == active, '.' == missing) 

核算每个驱动器上“数据偏移量”的值:

 dd if=/dev/sdb skip=262144 bs=512 count=1024 of=/tmp/b dd if=/dev/sdc skip=262144 bs=512 count=1024 of=/tmp/c 

我仍然得到相当的md5sums:

 79e53dd4906b3fcb7b1f7c613325c377 /tmp/b 79e53dd4906b3fcb7b1f7c613325c377 /tmp/c 

那么,这是否意味着这一点

 mdadm /dev/md0 --fail /dev/sdc --remove /dev/sdc mdadm --zero-superblock /dev/sdc 

要么

 mdadm --stop /dev/md0 mdadm --create /dev/md0 --level=1 --raid-devices=1 --force /dev/sdb mdadm --zero-superblock /dev/sdc 

不会导致任何数据丢失(假设在最后一次驱动器出现故障之前剩余的数据被移动到别处)?

我继续前进,只是试了一下,答案是肯定的。 使用mdadm superblock 1.2版的双磁盘RAID5实际上会在其中一个磁盘出现故障和移除时保留其数据。

例如:

 mdadm /dev/md0 --fail /dev/sdc --remove /dev/sdc mdadm --zero-superblock /dev/sdc