发布在红帽Linux 5。
由于一些沟通失误,我们的环境中有两个LUN从1.2TB扩大到1.7TB。
现在,在重新启动之后,mdadm将不会再次找到构建数组的超级块。
通用格式--称为0.90版--有一个4K长的超级块,它被写入一个64K对齐块,从设备的末端开始至少64K,小于128 K(也就是说,将超级块的地址从设备的大小降到64K的倍数,然后减去64K)。
我发现了一些旧文件:
# mdadm -D /dev/md0
/dev/md0:
Version : 0.90
Creation Time : Tue Jul 10 17:45:00 2012
Raid Level : raid1
Array Size : 1289748416 (1230.00 GiB 1320.70 GB)
Used Dev Size : 1289748416 (1230.00 GiB 1320.70 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Wed Apr 17 15:03:50 2013
State : active
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
UUID : 2799bd51:67eb54d2:1fcd3c90:293311a1
Events : 0.39
Number Major Minor RaidDevice State
0 253 10 0 active sync /dev/dm-10
1 253 11 1 active sync /dev/dm-11
# fdisk -l /dev/dm-10 /dev/dm-11
Disk /dev/dm-10: 1320.7 GB, 1320702443520 bytes
255 heads, 63 sectors/track, 160566 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/dm-10 doesn't contain a valid partition table
Disk /dev/dm-11: 1320.7 GB, 1320702443520 bytes
255 heads, 63 sectors/track, 160566 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/dm-11 doesn't contain a valid partition table发布于 2013-04-17 16:34:08
只需运行mdadm --build -l1 -n2 /dev/md0 /dev/dm-10 /dev/dm11以获取数据。
在执行此操作之前,
另外,如果您的内核已经使用(或正在使用)这些设备之一,则数据将不一致。您应该将第二个设备设置为一个退化的1.2数组,复制数据,开始使用新的简并RAID,并将第一个磁盘添加到其中。如果您没有当前的备份,那么在尝试此备份之前,请做一个您知道该做什么的备份。
(切换到1.2是个好主意,因为1.2RAID超级块可以防止这种问题。)
发布于 2013-04-17 17:14:58
如果它是带有0.90超级块的RAID 1,那么您应该可以直接挂载,而不需要使用RAID层。数据在磁盘开始时没有偏移,所以应该没有问题。使用只读挂载选项或只读循环设备进行实验,以防万一。
如果这样做有效,最简单的方法是使用另一个磁盘从头创建一个新的RAID (最好是1.2元数据,这样可以避免这个问题,并且不会受到2TB的限制),将数据复制完毕,完成之后,将您复制的磁盘添加到新的RAID中。
https://unix.stackexchange.com/questions/72788
复制相似问题