Linux软件RAID恢复

我看到mdadm –detail和mdadm –examine之间的差异,我不明白为什么。

这个输出

mdadm --detail /dev/md2 /dev/md2: Version : 0.90 Creation Time : Wed Mar 14 18:20:52 2012 Raid Level : raid10 Array Size : 3662760640 (3493.08 GiB 3750.67 GB) Used Dev Size : 1465104256 (1397.23 GiB 1500.27 GB) Raid Devices : 5 Total Devices : 5 Preferred Minor : 2 Persistence : Superblock is persistent 

似乎与此相矛盾。 (对于arrays中的每个磁盘都是一样的)

 mdadm --examine /dev/sdc2 /dev/sdc2: Magic : a92b4efc Version : 0.90.00 UUID : 1f54d708:60227dd6:163c2a05:89fa2e07 (local to host) Creation Time : Wed Mar 14 18:20:52 2012 Raid Level : raid10 Used Dev Size : 1465104320 (1397.23 GiB 1500.27 GB) Array Size : 2930208640 (2794.46 GiB 3000.53 GB) Raid Devices : 5 Total Devices : 5 Preferred Minor : 2 

数组是这样创build的。

 mdadm -v --create /dev/md2 \ --level=raid10 --layout=o2 --raid-devices=5 \ --chunk=64 --metadata=0.90 \ /dev/sdg2 /dev/sdf2 /dev/sde2 /dev/sdd2 /dev/sdc2 

5个独立驱动器中的每一个都有这样的分区。

 Disk /dev/sdc: 1500.3 GB, 1500301910016 bytes 255 heads, 63 sectors/track, 182401 cylinders, total 2930277168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00057754 Device Boot Start End Blocks Id System /dev/sdc1 2048 34815 16384 83 Linux /dev/sdc2 34816 2930243583 1465104384 fd Linux raid autodetect 

背景故事

所以SATA控制器在我提供一些支持的一个盒子里失败了。 失败是一个丑陋的,所以个人的驱动器一点一点落在arrays之外。 虽然有备份,但我们并没有像我们真正需要的那样频繁地完成。 如果可以的话,我正在尝试恢复一些数据。

我有额外的硬件,我可以再次访问驱动器。 驱动器似乎很好,我可以使数组和文件系统处于活动状态并装入(使用只读模式)。 我能够访问文件系统上的一些数据,并且已经复制了这些数据,但是当我尝试复制最新的数据时,我看到了很多错误。

当我试图访问最新的数据时,我得到如下的错误,这使我认为数组大小的差异可能是问题。

 Mar 14 18:26:04 server kernel: [351588.196299] dm-7: rw=0, want=6619839616, limit=6442450944 Mar 14 18:26:04 server kernel: [351588.196309] attempt to access beyond end of device Mar 14 18:26:04 server kernel: [351588.196313] dm-7: rw=0, want=6619839616, limit=6442450944 Mar 14 18:26:04 server kernel: [351588.199260] attempt to access beyond end of device Mar 14 18:26:04 server kernel: [351588.199264] dm-7: rw=0, want=20647626304, limit=6442450944 Mar 14 18:26:04 server kernel: [351588.202446] attempt to access beyond end of device Mar 14 18:26:04 server kernel: [351588.202450] dm-7: rw=0, want=19973212288, limit=6442450944 Mar 14 18:26:04 server kernel: [351588.205516] attempt to access beyond end of device Mar 14 18:26:04 server kernel: [351588.205520] dm-7: rw=0, want=8009695096, limit=6442450944 

  • 重塑已经被重塑的linux md raid5?
  • 重新使用预先安装的现有RAID
  • MD RAID 1与外部位图不完全重新同步
  • Linux软件RAID1重build完成,但是在重启之后,它又降级了
  • 我可以将一个RAID1分区分成两部分吗?
  • RAID处于降级模式时如何重新添加驱动器?
  • 2 Solutions collect form web for “Linux软件RAID恢复”

    你确定你的命令行来创build数组吗? 我的猜测是,这是一个“标准”4驱动raid10arrays与热备用驱动器,这将解释/ dev / sdc2的结果

    你能告诉我们结果:

     cat /proc/mdstat cat /etc/mdadm.conf mdadm --examine /dev/sdx2 ( each drive ) 

    有了这个,您可以猜测哪个驱动器是热备份,因此您将能够正确重buildarrays。 当然,正如3dinfluence所述,在重新configuration数组之前,您应该复制数据。

    编辑:也可能不是浪费时间来运行:每个驱动器上的smartctl -a /dev/sdx (如果报告错误,请检查输出的结尾),然后是smartcl -t long /dev/sdx和3或4小时后smartctl -a再次检查5个磁盘是否真的很好。 如果一个磁盘报告错误,也许它被mdadm检测为错误,所以mdadm打开备用驱动器(总是猜测)

    编辑2:如果vgs报告:vgdisplay显示Alloc PE /大小3.00 TiB,自由PE /大小421.08这意味着你的PV已经神秘地增长了421G ..我坚信我的情况:“神秘”增长是一个错误的arraysconfiguration。 数组的实际大小是3T。 你没有正确地重新组装,所以它是腐败的。 为了正确地重新组装,您需要检索原始configuration,以及哪个驱动器是备用驱动器。 祝你好运。

    如果你可以用dd复制驱动器,那么我会这样做。 尽可能保持原有的驱动器不变。

    那么这是一个从髋关节的事情总拍摄,但是我想尝试,如果我在这种情况下。 随着系统中的克隆驱动器,我会使用擦除所有的RAID元数据。
    mdadm --zero-superblock /dev/sdx#
    在每个涉及的驱动器上。

    然后使用该命令重新创build数组。
    mdadm -v --create /dev/md2 \
    --level=raid10 --layout=o2 --raid-devices=5 \
    --chunk=64 --metadata=0.90 --assume-clean \
    /dev/sdg2 /dev/sdf2 /dev/sde2 /dev/sdd2 /dev/sdc2

    这应该摆脱所有的RAID级别问题。 从那里你可以尝试重新安装文件系统,看看还剩下什么。 如果这不起作用,然后重新克隆你的驱动器,并尝试其他的东西:)

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.