在恢复 RAID 阵列方面需要帮助

sxa*_*ess 6 linux raid lvm

长话短说,我负责一个具有两个 RAID 阵列(/dev/md0 和 /dev/md2)的媒体服务器。我还有很多东西要学习软件 RAID 和 LVM 等。我们在 /dev/md0 中有一个驱动器故障,好吧没什么大不了我更换了坏驱动器,重新组装了 RAID 阵列(昨晚花了大部分时间才完成) ),今天早上我进来了,并且能够在没有数据丢失的情况下挂载 /dev/md0。

我几乎不知道,有些东西被 /dev/md2 损坏了。现在 /dev/md0 是两年前我的同事设置的,我大约六个月前设置了 /dev/md2。一直使用戴尔和惠普服务器内置的硬件控制器完成 RAID,这是我第一次不得不处理软件 RAID。我按照 [url] http://www.gagme.com/greg/linux/raid-lvm.php[/url]上的说明进行操作我认为这是最好的主意,因为 LVM 将使我能够在未来扩展 RAID 阵列(我刚刚了解到 mdadm 可以做同样的事情)。直到今天,这都没有问题。修复 /dev/md0 后重新启动机器后,无法挂载 /dev/lmv-raid/lvm0(表示找不到文件或目录)。看起来逻辑卷几乎消失了。我不明白是什么导致了这种情况。第二个阵列中没有驱动器坏,我没有接触第二个阵列。阵列应该没有任何问题。但是好像有什么不对的地方。

现在 /dev/md2 正在运行并且处于干净状态,但我无法安装它。恐怕数据没了。真正可怕的是,对于发生的事情,我的脑海中没有任何解释。我假设我无法挂载 /dev/md2,因为 RAID 阵列期望由 LVM 控制。也许我不太了解系统,但是如果我有一个干净的数组,数据不应该仍然在数组中吗?知道如何恢复数据吗?我最不想做的就是回到我的老板那里告诉他,在修复一个阵列的过程中,另一个阵列神奇地坏了,你所有的数据都没有了。我查看了多个站点,但由于我不知道实际上是什么破坏了它,我不知道我是否真的丢失了数据,或者是否还有其他东西我遗漏了。

任何建议将不胜感激,我整个上午都在为此苦苦挣扎,并且完全不知所措。

以下是更多信息:

 [root@viamao ~]# mdadm --detail /dev/md2
 /dev/md2:
 Version : 00.90.01
 Creation Time : Tue Jun  9 11:32:06 2009
 Raid Level : raid5
 Array Size : 4395415488 (4191.79 GiB 4500.91 GB)
 Device Size : 1465138496 (1397.26 GiB 1500.30 GB)
 Raid Devices : 4
 Total Devices : 4
 Preferred Minor : 2
 Persistence : Superblock is persistent

Update Time : Tue Jun  9 15:54:39 2009
      State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0

     Layout : left-symmetric
 Chunk Size : 64K

Number   Major   Minor   RaidDevice State
   0       8      128        0      active sync   /dev/sdi
   1       8      144        1      active sync   /dev/sdj
   2       8      160        2      active sync   /dev/sdk
   3       8      176        3      active sync   /dev/sdl
       UUID : 88bbe155:b6d852b1:3ad8a77d:5eba3ee2
     Events : 0.36


  [root@viamao archive2]# mount -t ext3 /dev/md2 /share/archive2
  mount: wrong fs type, bad option, bad superblock on /dev/md2,
  or too many mounted file systems


 [root@viamao archive2]# mount
 /dev/hda3 on / type ext3 (rw)
 none on /proc type proc (rw)
 none on /sys type sysfs (rw)
 none on /dev/pts type devpts (rw,gid=5,mode=620)
 usbfs on /proc/bus/usb type usbfs (rw)
 /dev/hda1 on /boot type ext3 (rw)
 none on /dev/shm type tmpfs (rw)
 none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
 sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
 /dev/md0 on /share/archive1 type ext3 (rw)


  [root@viamao share]# cat /proc/mdstat
  Personalities : [raid5] 
  md2 : active raid5 sdl[3] sdk[2] sdj[1] sdi[0]
  4395415488 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]

  md0 : active raid5 sda[0] sdh[7] sdg[6] sdf[5] sde[4] sdd[3] sdc[2] sdb[1]
  5128021248 blocks level 5, 64k chunk, algorithm 2 [8/8] [UUUUUUUU]

  unused devices: <none>
Run Code Online (Sandbox Code Playgroud)

我可以向您展示的其他任何东西可能会有所帮助吗?我有一个无法挂载的活动 RAID 阵列,我认为这与以前在 lvm 上的事实有关,但是现在当我尝试挂载 /dev/lvm-raid/lvm0 时,它告诉我特殊的找不到设备。lvdisplay 不给我任何东西 pvdisplay 只显示我的操作系统所在的驱动器。vgdisplay 也不会产生任何结果。

想法?我在这里严重不知所措。

Ave*_*yne 4

Linux 中的文件系统层(按相反顺序开始,从物理驱动器到文件系统):

  1. 物理设备
    • /dev/sdi
    • /dev/sdj
    • /dev/sdk
    • /dev/sdl
  2. 每个驱动器上的特殊 md 分区类型(使用时)

    • 这可能存在也可能不存在。虽然建议您简单地在每个驱动器上创建跨越其所在驱动器整个大小的单个分区,但也可以直接使用设备名称来指定整个驱动器。请注意,这可能会导致某些分区工具对它们正在处理的内容感到困惑(因为分区表只是“消失”),所以我不推荐它。

    在您的情况下,指定了整个驱动器,因此没有可看到的分区。您不必担心这一点。

  3. md 驱动程序(使用时)

    • /dev/md2

    详细信息和/proc报告的输出表明阵列在所有驱动器上均已启动,并且没有驱动器处于故障状态。这意味着阵列是健康的!

  4. LVM(使用时)

    • 以 root 身份登录时,在 shell 中键入以下内容:

    pvscan && vgscan && lvscan

    如果有任何卷可以找到,它们应该在这里。请注意,卷扫描过程由一个文件控制,该文件可以在执行扫描时选择忽略某些设备。您需要确保明确扫描 /dev/md2。每个 LVM 卷都刻有一个 GUID;如果该文件丢失或损坏,可能会导致您遇到的一些问题。这里的目标是让您的 LVM 卷得到认可。一旦他们健康了,你就会保持良好的状态。

  5. 文件系统

    我想你知道这里的演习。

从这里您应该能够恢复您的文件系统。