经典教程:实战Ubuntu RAID-1安装

英文标题:RAID-1 in My Ubuntu Installation
原文作者:Martti Kuparinen <martti.kuparinen@iki.fi>  更新日期:2006-12-14
来源:http://users.piuha.net/martti/comp/ubuntu/raid.html

翻译:chinakr(http://www.edu-map.com/chinakr)  日期:2007-05-06
来源:http://blog.sina.com.cn/u/551c238e010009im

摘要

这篇文档描述了作者在自己的PC上安装配置Ubuntu 6.06.1 LTS的过程。这台PC有两块一样的SATA硬盘,并被配置为RAID-1,这样做是为了减小使用单块硬盘时磁盘失效的风险。虽然作者使用了RAID-1,但是他仍然坚持定期备份,因为众所周知不应该用RAID来代替一个良好的备份系统。

目录

1. 安装
2. 验证
3. 在磁盘失效后重建

安装

用Ubuntu Alternate安装CD启动,确信安装程序正确发现了两块硬盘(图1)。接下来删除之前Windows使用的所有分区。

http://users.piuha.net/martti/comp/ubuntu/ubuntu1.png
图1  安装程序正确识别出两块硬盘

分别在两块硬盘上创建3个分区:给/分配10GB,给swqp分配500MB,剩下的空间分配给/home。需要注意的是在这一步分区类型应该设置为“RAID物理卷(0xFD)”而不是“Ext3日志文件系统”(图2)。同时还需要注意,两块硬盘的第一个分区都必须标记为可引导(图3,B标志),否则你的系统就必须通过CD才能引导了。

http://users.piuha.net/martti/comp/ubuntu/ubuntu1a.png
图2  设置分区类型和可引导标志

http://users.piuha.net/martti/comp/ubuntu/ubuntu2.png
图3  创建好的分区,其中的B是可引导标志

下一步选择“配置软RAID”,然后保存设置。

我创建了3个MD(multidisk)设备,均配置为2块磁盘和0 hostspace的RAID-1(图4、图5)。

http://users.piuha.net/martti/comp/ubuntu/ubuntu3.png
图4  创建MD设备

http://users.piuha.net/martti/comp/ubuntu/ubuntu4.png
图5  创建RAID-1

这一步需要为RAID-1选择所包含的分区(图6),必须选择两个尺寸完全一致的分区,在这里是:md0=sda1+sdb1,md1=sda2+sdb2,md2=sda3+sdb3。

http://users.piuha.net/martti/comp/ubuntu/ubuntu5.png
图6  设置MD组件(选择分区)

最后为每个MD设备选择文件系统和挂载点。在这里是md0设置为ext3挂载于/,md1设置为swap,md2设置为ext3挂载于/home。从这一步开始,Ubuntu的安装就和普通的安装过程一样了。

http://users.piuha.net/martti/comp/ubuntu/ubuntu6.png
图7  文件系统和挂载点

验证

安装完成后需要验证一下所有东西是不是都真的放在RAID-1磁盘上了(root文件系统、swap和/home)。

martti@ubuntu:~$ grep /dev/md /etc/fstab
/dev/md0        /               ext3    defaults,errors=remount-ro 0       1
/dev/md2        /home           ext3    defaults        0       2
/dev/md1        none            swap    sw              0       0

martti@ubuntu:~$ df -h / /home
Filesystem            Size  Used Avail Use% Mounted on
/dev/md0              9.2G  2.1G  6.7G  24% /
/dev/md2               11G  129M  9.5G   2% /home

下面检查每个RAID磁盘的当前状态。需要注意的是每个mdN包含了哪两个sdXN磁盘,以及每个mdN是怎么显示它的两个磁盘组建的并且是标记为U。更多的细节可以在mdadm工具中找到。

martti@ubuntu:~$ cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sda3[0] sdb3[1]
10707200 blocks [2/1] [UU]

md1 : active raid1 sda2[0] sdb2[1]
489856 blocks [2/2] [UU]

md0 : active raid1 sda1[0] sdb1[1]
9767424 blocks [2/2] [UU]

martti@ubuntu:~$ sudo mdadm –query –detail /dev/md0
/dev/md0:
Version : 00.90.03
Creation Time : Fri May 12 00:57:28 2006
Raid Level : raid1
Array Size : 9767424 (9.31 GiB 10.00 GB)
Device Size : 9767424 (9.31 GiB 10.00 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Fri May 12 04:38:19 2006
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

UUID : 754cd310:4f102bc3:b590c767:672a9c4e
Events : 0.11700

Number   Major   Minor   RaidDevice State
0       8        1        0      active sync   /dev/sda1
1       8       17        1      active sync   /dev/sdb1

在磁盘失效后重建

这一步我把/dev/sdb拔掉来模拟一次磁盘失效事故。系统依然能够引导,但会提示/dev/sdb1、/dev/sdb2和/dev/sdb3从系统中消失了,/dev/mdN的状态域被标记为“退化”(degraded)。

martti@ubuntu:~$ cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sda3[0]
10707200 blocks [2/1] [U_]

md1 : active raid1 sda2[0]
489856 blocks [2/1] [U_]

md0 : active raid1 sda1[0]
9767424 blocks [2/1] [U_]

unused devices:

martti@ubuntu:~$ sudo mdadm –query –detail /dev/md0
/dev/md0:
Version : 00.90.03
Creation Time : Fri May 12 00:57:28 2006
Raid Level : raid1
Array Size : 9767424 (9.31 GiB 10.00 GB)
Device Size : 9767424 (9.31 GiB 10.00 GB)
Raid Devices : 2
Total Devices : 1
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Fri May 12 04:45:52 2006
State : active, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0

UUID : 754cd310:4f102bc3:b590c767:672a9c4e
Events : 0.11812

Number   Major   Minor   RaidDevice State
0       8        1        0      active sync   /dev/sda1
1       0        0        –      removed

接下来我把磁盘重新连接上,并命令系统自动重建。重建以后一切再次恢复正常了。

martti@ubuntu:~$ sudo mdadm –add /dev/md0 /dev/sdb1
mdadm: hot added /dev/sdb1

martti@ubuntu:~$ sudo mdadm –add /dev/md1 /dev/sdb2
mdadm: hot added /dev/sdb2

martti@ubuntu:~$ sudo mdadm –add /dev/md2 /dev/sdb3
mdadm: hot added /dev/sdb3

martti@ubuntu:~$ cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sdb3[2] sda3[0]
10707200 blocks [2/1] [U_]
resync=DELAYED

md1 : active raid1 sda2[0] sdb2[1]
489856 blocks [2/2] [UU]

md0 : active raid1 sdb1[2] sda1[0]
9767424 blocks [2/1] [U_]
[>………………..]  recovery =  2.2% (215168/9767424) finish=16.2min speed=9780K/sec

unused devices:

最后我重新安装了引导程序(boot loader),这样即便以后主磁盘(sda)消失了系统也能够引导(即在sdb上安装了GRUB,这样用sdb也能引导系统了)。

martti@ubuntu:~$ sudo grub-install /dev/sda

martti@ubuntu:~$ sudo grub
grub> device (hd0) /dev/sdb
grub> root (hd0,0)
grub> setup (hd0)
grub> quit

就是这样。接下来回过头去看我的Ubuntu安装指南了,看看配置我新安装的系统有多么简单。

(欢迎转载, 转载请注明作者和出处)

1 thought on “经典教程:实战Ubuntu RAID-1安装”

Leave a Comment