免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Boson
打印 上一主题 下一主题

如何让软RAID在出故障后重新运行起来 [复制链接]

论坛徽章:
0
41 [报告]
发表于 2006-02-09 14:36 |只看该作者
我个人认为你首先是需要想办法把md进程加载后,把raid5起起来,然后才可以把在其它两块好的硬盘中的条带信息计算写入新的硬盘。
也就是说,无论hdb是否是好的,是否是存在的,raid5 array总是要能够起来的,状态最多是critical。如果磁盘状态是offline,在硬件raid中,可以通过raid控制软件激活或者重写阵列控制器信息的方法把由剩下两块硬盘组成的阵列激活,再进行磁盘更换工作

论坛徽章:
0
42 [报告]
发表于 2006-02-09 14:48 |只看该作者
原帖由 bingosek 于 2006-2-9 14:36 发表
我个人认为你首先是需要想办法把md进程加载后,把raid5起起来,然后才可以把在其它两块好的硬盘中的条带信息计算写入新的硬盘。
也就是说,无论hdb是否是好的,是否是存在的,raid5 array总是要能够起来的,状态 ...



是呀,我现在就是想这样,因为无论我用什么命令,系统都说我的RAID状态没有运行,所以什么也做不了,
我想来想去,好像只有试试mkraid --force这个命令了,让RAID5的超级块同步后,
再试着能不能raidstart /dev/md0

你觉得可行吗??

论坛徽章:
0
43 [报告]
发表于 2006-02-09 14:56 |只看该作者
现在我的系统信息报的错误全是表示我的/dev/hdb的超级块信息不对,请看

md: could not import hdb1!
md: autostart hdb1 failed!
[events: 00000000]
md: invalid raid superblock magic on hdb1
md: hdb1 has invalid sb, not importing!
md: could not import hdb1!
md: autostart hdb1 failed!
[events: 00000000]
md: invalid raid superblock magic on hdb1
md: hdb1 has invalid sb, not importing!
md: could not import hdb1!
md: autostart hdb1 failed!
[events: 00000000]
md: invalid raid superblock magic on hdb1
md: hdb1 has invalid sb, not importing!
md: could not import hdb1!
md: autostart hdb1 failed!
[events: 00000000]
md: invalid raid superblock magic on hdb1
md: hdb1 has invalid sb, not importing!
md: could not import hdb1!
md: autostart hdb1 failed!
[events: 00000000]
md: invalid raid superblock magic on hdb1
md: hdb1 has invalid sb, not importing!
md: could not import hdb1!
md: autostart hdb1 failed!

论坛徽章:
0
44 [报告]
发表于 2006-02-09 15:01 |只看该作者
hdb 是新添加的硬盘,当然没有同步数据和 superblock
我认为应该先把 hdb 拿走,之后先让另外两块硬盘的 array 起来,最后再上这块新的硬盘再同步
我觉得如果你 mkraid 的话,有可能会破坏原有数据(重新做 RAID 的感觉),和 mkfs 命令类似

论坛徽章:
0
45 [报告]
发表于 2006-02-09 15:08 |只看该作者
这样的问题真是麻烦,同志们加油啊!

论坛徽章:
0
46 [报告]
发表于 2006-02-09 15:21 |只看该作者
原帖由 platinum 于 2006-2-9 15:01 发表
hdb 是新添加的硬盘,当然没有同步数据和 superblock
我认为应该先把 hdb 拿走,之后先让另外两块硬盘的 array 起来,最后再上这块新的硬盘再同步
我觉得如果你 mkraid 的话,有可能会破坏原有数据(重新做 RAI ...



mkraid这个命令有很多种用法的,其中有一种是只同步superblock,我估计只有这法能让我的RAID跑起来啊,但我不敢试,我也怕万一啊,万一真的把我的数据搞坏了,我就完了,

另外,sfdisk这个命令我试成功了,
# sfdisk -d /dev/hdc > hdc.bak
#sfdisk /dev/hdb < hdc.bak


成功后,我运行fdisk -l ,从显示信息证明分区信息已经同步成功。。。
[root@appfs /]# fdisk -l

Disk /dev/hdc: 255 heads, 63 sectors, 9964 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hdc1             1      9964  80035798+  fd  Linux raid autodetect

Disk /dev/hdd: 255 heads, 63 sectors, 9964 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hdd1             1      9964  80035798+  fd  Linux raid autodetect

Disk /dev/hda: 255 heads, 63 sectors, 9964 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hda1   *         1        13    104391   83  Linux
/dev/hda2            14      1288  10241437+  83  Linux
/dev/hda3          1289      2563  10241437+  83  Linux
/dev/hda4          2564      9964  59448532+   f  Win95 Ext'd (LBA)
/dev/hda5          2564      3838  10241406   83  Linux
/dev/hda6          3839      3969   1052226   82  Linux swap
/dev/hda7          3970      9964  48154806   83  Linux

Disk /dev/hdb: 255 heads, 63 sectors, 9964 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hdb1             1      9964  80035798+  fd  Linux raid autodetect


成功后,我知道此时运行raidhotadd 命令是不会成功的,于是我运行了,
[root@appfs /]# raidstart /dev/md0
/dev/md0: Invalid argument

[root@appfs /]# raidhotadd /dev/md0 /dev/hdb1
/dev/md0: can not hot-add disk: array not running!


证明了sfdisk不是太可行,不过我的linux没有重启,不知道是否要重启电脑,
我真的不是太肯定mkraid能否真能同步三个盘的superblock,谁能给我信心啊 :(

论坛徽章:
0
47 [报告]
发表于 2006-02-09 15:23 |只看该作者
原帖由 Boson 于 2006-2-9 15:21 发表
证明了sfdisk不是太可行

晕,到现在你还没有明白 sfdisk 的功能是什么,我前面早就告诉过你了。。。
sfdisk 和 RAID 一点关系都没有,只是省去了你手工 fdisk 的步骤

论坛徽章:
0
48 [报告]
发表于 2006-02-09 15:24 |只看该作者
原帖由 platinum 于 2006-2-9 15:01 发表
hdb 是新添加的硬盘,当然没有同步数据和 superblock
我认为应该先把 hdb 拿走,之后先让另外两块硬盘的 array 起来,最后再上这块新的硬盘再同步
我觉得如果你 mkraid 的话,有可能会破坏原有数据(重新做 RAI ...


另外,把新加的hdb拿走,和把坏hdb重新装回去的等等的不同形态的测试,我都试过了,也行不通,
raid还是跑不起来,

分区信息一样,只是系统要用,而RAID要用的是superblock,

论坛徽章:
0
49 [报告]
发表于 2006-02-09 15:37 |只看该作者
先抛开 superblock 吧,你现在概念模糊,superblock 和 software RAID 不在一个层面上。。。。


mdadm -R /dev/md0
试试这个

论坛徽章:
0
50 [报告]
发表于 2006-02-09 15:52 |只看该作者
原帖由 bingosek 于 2006-2-9 13:44 发表

raid5是会挑次序的

我看到官方有这样一段话,看完以后很是震惊,原来 q1208c 跟我说过,没有当回事,但还是按照他说的做了,现在想起来真是后怕,幸亏听了他的话。。。
  7.3.  Booting on RAID

  There are several ways to set up a system that mounts it's root
  filesystem on a RAID device. Some distributions allow for RAID setup
  in the installation process, and this is by far the easiest way to get
  a nicely set up RAID system.

  Newer LILO distributions can handle RAID-1 devices, and thus the
  kernel can be loaded at boot-time from a RAID device. LILO will
  correctly write boot-records on all disks in the array, to allow
  booting even if the primary disk fails.

  If you are using grub instead of LILO, then just start grub and
  configure it to use the second (or third, or fourth...) disk in the
  RAID-1 array you want to boot off as its root device and run setup.
  And that's all.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP