Linux
软
RAID
实现心得
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
一、软
RAID
类型:
1
、
RAID 0
:条带,无冗余,容易出故障,两个或者两个以上的磁盘创建的一个阵列,阵列的大小为阵列中所有磁盘大小的和。如果有
2
个
1G
的磁盘做成
RAID0
阵列,则阵列的大小就是
2G
。
2
、
RAID 1
:镜像,能
最大限度的保证用户数据的可用性和可修复性。 两个磁盘含有同时更新的相同数据,提供非常好的冗余保护,防止磁盘出错。写入性能低,
是唯一可以挂在/boot分区的RAID类型
。Mirror的磁盘空间利用率低,阵列大小等于阵列中最小的磁盘的容量。
3
、
RAID 5
:由三个或者三个以上的磁盘组成,带零或者多个热交换磁盘。能很好的在性能和可靠性之间找到平衡,可以分离所有磁盘间的成对性一获得冗余,某个磁盘的损坏不会影响到真个阵列,读、写性能都有提高。
二、
Linux
下的
mdadm
命令:
1
、创建
RAID
设备:
1
)
RAID0
:
madm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb5 /dev/sdb6
————————————————————————————————————
[root@station1 proc]# mdadm -C /dev/md0 -l 0 -n 2 /dev/sdb5 /dev/sdb6
mdadm: /dev/sdb5 appears to contain an ext2fs file system
size=987964K mtime=Thu Jan 1 08:00:00 1970
mdadm: /dev/sdb5 appears to be part of a raid array:
level=raid1 devices=2 ctime=Fri Aug 14 15:16:24 2009
mdadm: /dev/sdb6 appears to contain an ext2fs file system
size=987964K mtime=Thu Jan 1 08:00:00 1970
mdadm: /dev/sdb6 appears to be part of a raid array:
level=raid1 devices=2 ctime=Fri Aug 14 15:16:24 2009
Continue creating array? (y/n) y
mdadm: array /dev/md0 started.
—————————————————————————————
-C
:创建
RAID
设备;
/dev/md0
:新建
RAID
设备的名字;
- a yes
:创建设备文件;
-l 0
:创建的
RAID
设备的级别,后面的
0
可以是
1
,
5
;
-n 2
:新
RAID
设备使用的磁盘数量是
2
个;
/dev/sdb5 /dev/sdb6
:新
RAID
就是由这两个设备构成的。
2
)
RAID1
:
mdadm -C /dev/md1 -l 1 -n 2 /dev/sdb7 /dev/sdb8
3
)
RAID5
:
mdadm -C /dev/md3 -l 5 -n 3 /dev/sdb1 /dev/sdb2 /dev/sdb3
2
、查看
RAID
设备情况:
mdm --detail /dev/md0
—————————————————————————————
[root@station1 proc]# mdadm --detail /dev/md0
/dev/md0:
Version : 00.90.03
Creation Time : Fri Aug 14 15:23:42 2009
Raid Level : raid0
Array Size : 1975680 (1929.70 MiB 2023.10 MB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Fri Aug 14 15:23:42 2009
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 64K
UUID : 271f853e:bf021179:1391832c:c53ea858
Events : 0.1
Number Major Minor RaidDevice State
0 8 21 0 active sync /dev/sdb5
1 8 22 1 active sync /dev/sdb6
—————————————————————————————
3
、删除
RAID
设备:
mdadm -S /dev/md0
-------------------------------------------------------------------------------
[root@station1 ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
-------------------------------------------------------------------------------
4
、格式化
RAID
设备:
mkfs.ext3 /dev/md0
mke2fs -j /dev/md0
5
、模拟磁盘故障:
mdadm /dev/md3 -f /dev/sda1
-------------------------------------------------------------------------------
[root@station1 ~]# mdadm /dev/md3 -f /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md3
[root@station1 ~]# mdadm --detail /dev/md3
/dev/md3:
Version : 00.90.03
Creation Time : Fri Aug 14 15:21:26 2009
Raid Level : raid5
Array Size : 1975680 (1929.70 MiB 2023.10 MB)
Used Dev Size : 987840 (964.85 MiB 1011.55 MB)
Raid Devices : 3
Total Devices : 3
Preferred Minor : 3
Persistence : Superblock is persistent
Update Time : Fri Aug 14 15:34:19 2009
State : clean, degraded
Active Devices : 2
Working Devices : 2
Failed Devices : 1
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
UUID : 5cb4d436:48c9041b:da36683d:589cd18d
Events : 0.4
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 18 1 active sync /dev/sdb2
2 8 19 2 active sync /dev/sdb3
3 8 17 - faulty spare /dev/sdb1
-------------------------------------------------------------------------------
6
、将故障磁盘从
RAID
设备中移走:
mdadm /dev/md3 -r /dev/sdb1
-------------------------------------------------------------------------------
[root@station1 ~]# mdadm /dev/md3 -r /dev/sdb1
mdadm: hot removed /dev/sdb1
[root@station1 ~]# mdadm --detail /dev/md3
……中间部分省略……
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 18 1 active sync /dev/sdb2
2 8 19 2 active sync /dev/sdb3
-------------------------------------------------------------------------------
7
、添加新的磁盘到
RAID
设备中:
mdadm /dev/md3 -a /dev/sdb5
-------------------------------------------------------------------------------
[root@station1 ~]# mdadm /dev/md3 -a /dev/sdb5
mdadm: added /dev/sdb5
[root@station1 ~]# mdadm --detail /dev/md3
/dev/md3:
...
中间部分省略
...
Number Major Minor RaidDevice State
0 8 21 0 active sync /dev/sdb5
1 8 18 1 active sync /dev/sdb2
2 8 19 2 active sync /dev/sdb3
-------------------------------------------------------------------------------
8
、
RAID
系统信息:
cat /proc/mdstat
-------------------------------------------------------------------------------
[root@station1 ~]# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4]
md3 : active raid5 sdb1[0] sdb3[2] sdb2[1]
1975680 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]
md1 : active raid1 sdb8[1] sdb7[0]
987840 blocks [2/2] [UU]
md0 : active raid0 sdb6[1] sdb5[0]
1975680 blocks 64k chunks
-unused devices: <none>
-------------------------------------------------------------------------------
三、
RAID
设备用于
LVM
逻辑卷:
1
、把
RAID
设备处理成物理卷:
pvcreate /dev/md0 pvcreate /dev/md1
-------------------------------------------------------------------------------
[root@station1 ~]# pvcreate /dev/md0
Physical volume "/dev/md0" successfully created
[root@station1 ~]# pvcreate /dev/md1
Physical volume "/dev/md1" successfully created
-------------------------------------------------------------------------------
2
、把
RAID
设备生成的物理卷处理成卷组:
vgcreate vg0 /dev/md0 /dev/md1
---------------------------------------------------------------------------------------------------------------
[root@station1 ~]# vgcreate vg0 /dev/md0 /dev/md1
Volume group "vg0" successfully created
-------------------------------------------------------------------------------
3
、生成逻辑卷:
lvcreate -L 1000M -n test vg0
-------------------------------------------------------------------------------
[root@station1 ~]# lvcreate -L 1000M -n test vg0
Logical volume "test" created
-------------------------------------------------------------------------------
四、总结:
RAID
的使用是非常灵活的,全靠
mdadm
命令;另外生成
RAID
以后还可以结合逻辑卷管理更好的对
RAID
设备进行使用和管理,详细的逻辑卷操作请看我的另一篇文章《
Linux
逻辑卷管理》。
转载于:https://blog.51cto.com/iminmin/191426