LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1118|回复: 7

如何修复软RAID5

[复制链接]
发表于 2008-11-20 11:15:31 | 显示全部楼层 |阅读模式
小弟有一台服务器的 软 RAID 5 挂了,大哥大姐们请帮我看看。

情况是这样的,一台装 SuSE 10.3 的服务器(组装),上面有三颗 320G SATA 硬盘,在安装 SUSE 时设置了软 RAID 5,三颗硬盘分别设置设 1G,组合成 3G 做 SWAP 分区,其他的划为根分区。

昨天同事将键盘和鼠标拆下借用了一下,另一同事想用服务器,发现不能操作,就热启动了一下机器,结果就进不了系统。

我用 mdadm -D /dev/md0 显示的信息是:
active sync /dev/sda3
active sync /dev/sdb1
spare rebuilding /dev/sdc2

我的操作系统也是在 RAID5 环境中安装的,现在系统进不了。提示无法激活 /dev/md0 分区。

请问如何修复?


cat /proc/mdstat 返回的结果如下:
Personalities: [raid6] [raid5] [raid4] [raid0] [raid1]
md0: inactive sda3[0] sdc2[3] sdb2[1]
          929287424 blocks super 1.0
unused devices: <none>

fdisk -l 执行后返回:sh: fdisk: command not found

我想因为我的系统也在 RAID5,所以现在内核是没有完全加载的,所以会报找不到这个命令。

cat /etc/mdadm.conf 返回的结果如下:
DEVICE partitions
ARRAY /dev/md0 level=raid5 num-devices=3 spares=1 name=0 UUID=e04580f5:feab3ecc:633557ce:5310f44


我用 mdadm -D /dev/md0 命令查看的结果如下:

mdadm -D /dev/md0
/dev/md0:
Version: 01.00.03
Creation Time: Sat Nov 24 19:17:53 2007
Raid Leve: raid5
Used Dev Size: 308359424 (294.07 GiB 315.76 GB)
Raid Devices: 3
Total Devices: 3
Preferred Minor: 0
Persistence: Superblock is persistent

Update Time: Wed Nov 19 09:57:10 2008
State: active, degraded, Not Started
Active Devices: 2
Working Devices: 3
Failed Devices: 0
Spare Devices: 1

Layout: left-symmetric
Chunk Size: 128K

Name: 0
UUID: e04580f5:feab3ecc:633557ce:5310f440
Events: 8502297

Number Major Minor RaidDevice State
0      8     3     0          active sync /dev/sda3
1      8     18    1          active sync /dev/sdb2
3      8     34    2          spare rebuilding /dev/sdc2
 楼主| 发表于 2008-11-20 11:57:16 | 显示全部楼层
顶一下贴,有没有高手碰到过这个问题并有解决方案的?不甚感激。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-20 14:29:20 | 显示全部楼层
再顶一下,真没有人知道吗?
回复 支持 反对

使用道具 举报

发表于 2008-11-21 01:36:47 | 显示全部楼层
把 mdadm.conf 内“spares=1”项去掉,试试看。如果不行,看提示内容是要rebuild /dev/sdc2,先remove/add一下,猜测如不是硬件故障的话,问题可能会解决。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-21 09:34:16 | 显示全部楼层
多谢楼上的答复,我也曾这么想试过,但是问题是因为内核未能加载,无法使用 vi 等命令来编辑 mdadm.conf 文件,就连我复制备份的该文件重启后也没有了。另外,我也试过 remove 再 add, 可是 remove 不了,因为不在阵列中,要 add 也不行,提示设备忙。可有其他好招否?
回复 支持 反对

使用道具 举报

发表于 2008-11-21 10:53:27 | 显示全部楼层
mdadm --stop /dev/md0
mdadm --assemble --update=resync /dev/md0 /dev/sda3 /dev/sdb1 /dev/sdc2
试一下看
然后再 more /proc/mdstat ,看看是不是"md0 : active raid5 sda3[0] sdc2[3] sdb2[1]"
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-21 11:20:52 | 显示全部楼层
多谢, 我现在准备去试一下,不过这样会不会导致数据丢失的?
因为老板已经知道,并且要求确保数据不失。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-21 11:28:40 | 显示全部楼层
谢谢你的答复
我试了一下,不过不行,不能同步,返回信息如下:

md: md0 stopped.
md: bind<sdb2>
md: bind<sdc2>
md: bind<sda3>
md: md0: raid array is not clean -- starting background reconstruction
raid5: device sda3 operational as raid disk 0
raid5: device sdb2 operational as raid disk 1
raid5: cannot start dirty degraded array for md0
RAID5 con printout:
-- rd:3 wd:2
disk 0, o:1, dev:sda3
disk 1, o:1, dev:sdb2
disk 2, o:1, dev:sdc2
raid5: failed to run raid set md0
md: pers->run() failed...
mdadm: failed to RUN_ARRAY /dev/md0: Input/output error
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表