+ -
当前位置:首页 → 问答吧 → 用mdadm在現有slackware 11加 software Raid 1的作法?

用mdadm在現有slackware 11加 software Raid 1的作法?

时间:2007-08-23

来源:互联网

用mdadm安裝新的system就很方便, 但在已運行的 slackware 11加裝多一顆hd, 其實可以用甚麼辦法去做?

假設 slackware 11 已裝在 /dev/hda, partition為
/dev/hda1 /boot
/dev/hda2 /
/dev/hda3 swap

現考慮的有幾個問題:
1.) 如由現有的系統開機那麼 hda1,2,3 都會被mount起來, 會警告resource busy, 而不能直接加入mdX 作為成員, 那麼即是要由 cdroom 引導制作 mdX

2.) 假設制作md0時, 成員由 /dev/hda1, /dev/hdb1 (先設定 hda, hdb 的partition相同), hda1 一開始已經有system file的, 而 hdb1 則是空的, 是不是active md0的時候, 怎麼確定 md0 create 出來的data是正常的?

3.) 如果同樣情況制作 Raid 0, 步驟是不是跟 Raid 1 相同?


作者: slack36   发布时间: 2007-08-23

1) 是的。不能mount现有的文件系统。
2) Software RAID howto里讲到了一点。大致上是:
- 在新硬盘上分好区。比如你要给hda1做RAID, 就在新硬盘上建一个同样大的分区. e.g. hdb1
- 建一个RAID-1阵列。把现有的分区(hda1)当作failed disk加进去。
e.g.
mdadm --create /dev/md0 --level raid1 --raid-devices 2 missing /dev/hdb1
- 启动RAID阵列。建文件系统。把文件从hda1拷贝到/md0. 改配置让系统用md0做root。改fstab, mdadm.conf, boot loader config (grub, lilo, etc).
- 重启系统进入RAID.
- 加入hda1。具体命令不是很清楚。可以试一下mdadm --remove, mdadm --add.
建议你自己试一下。记得要先备份数据哦!

另外我不知道可不可以先做一个只有hda1的RAID-1阵列, 然后再加hdb1进去,让他自己同步数据。我没有办法试。

3) RAID-0用来做/更麻烦. 因为要让boot loader可以识别RAID-0的设备好像不容易。我的建议是/用RAID-1, 其他比如/home, /tmp, /opt 可以用RAID-0.

作者: frenzy   发布时间: 2007-08-23

Freezy兄, 我有個想法, 不知可不可以實行, 方法如下:

先正常用 /dev/hda boot 起來,
1.) 利用 --force option 先將 /dev/hdb 做一個 mirror, 列表:
/dev/hdb1 /boot md0
/dev/hdb2 / md1
/dev/hdb3 /home/ md2

1a.) 修改 /etc/lilo.conf, 修改 /etc/fstab

2.) 建立2個目錄, 目的是將 /dev/hda 的資料 copy 到 /dev/mdX, 列表:
把 /dev/hda1,2,3 分別 mount 至以下3個地方
/tmp/md0-source
/tmp/md1-source
/tmp/md2-source

3.) 在 /home/ 同樣 create 3 個 mount point,
把 md0,1,2 mount 至
/home/mnt/md0 (空的)
/home/mnt/md1 (空的)
/home/mnt/md2 (空的)

4) 把 /tmp/md1,2,3-source 分別 copy 至 /home/mnt/md0,1,2
這時候 md0, 1, 2 應該擁有跟 /dev/hda1,2,3 相同的資料

5) 跟著重啟系統, 由md0,1,2 (當然裡面只包含成員 /dev/hdb1,2,3)

6) 再用 --add 把 /dev/hda1,2,3 加入/dev/md0,1,2, 完成後會變成
/dev/md0 -- hda1,hdb1
/dev/md1 -- hda2,hdb2
/dev/md2 -- hda3,hdb3

因為無錢購買硬體Raid controller, 而且 Driver 方面還未確定可以 support Slackware, 所以現致力學習 Software Raid, 有沒有兄弟談一談 Software Raid 比較 Hardware Raid 的效率怎麼樣?

作者: slack36   发布时间: 2007-08-24

對不起這個貼子我連續貼了2次 ><~~

作者: slack36   发布时间: 2007-08-24

你的方法和soft raide howto里的很象。可不可行我也不知道,我没有试过。最好的方法还是你自己试一下。
如果不是做IO量很大的服务器的话,软硬RAID的区别应该不会很大。

作者: frenzy   发布时间: 2007-08-24

create md0,1,2 (ok)
copy /dev/hda1,2,3 -> /dev/md0,md1,md2 (ok)
直到這裡都很正常地boot起來, 當加入 /dev/hda1,2,3 到 /dev/md0,1,2 後就不能正常啟動了, 每次在lilo畫面之前就顯示 Li 99 99 99 99 ........... 若干行後就停止, 是不是安裝 lilo 的地方出了問題?

可以用 boot 引導時加上 boot: hugesmp.s root=/dev/md0 rdinit= ro 就能正常進入, 可否有人給些提示?

作者: slack36   发布时间: 2007-08-27

有的地方建议加入raid-extra-boot = mbr。

# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
boot = /dev/md0
raid-extra-boot = mbr

我用grub,所以不知道有没有用

http://slacksite.com/slackware/raid.html

作者: frenzy   发布时间: 2007-08-27

Freezy 兄, 通過你耐心的指點, 戰鬥了整個星期, 終於成功了 ^^

除了安裝 Slackware 12 這一part之外, 基本上都在 SystemRescueCD 裡工作, 第一次完成的時候還是不能由 Lilo 引導開機, 再次進入 Rescue 模式, 將 lilo.conf 再寫一篇後, 才能正常開機.

這是一次很好的經驗, 經過了這次經驗, 略對Software Raid有較好的認識~ 而且有信心可以 Migration 我家裡的那部 Server 為 Raid 1了 ^^

ps. 最後還是在lilo.conf不需用上 raid-extra-boot = mbr 這頸option, 我的lilo是22.8
再次多謝幫忙~~

作者: slack36   发布时间: 2007-08-29

恭喜恭喜。互相分享。

作者: frenzy   发布时间: 2007-08-29