分类: LINUX
2007-09-28 10:03:56
什么是RAID呢?全称是 “A Case for Redundant Arrays of Inexpensive Disks (RAID)”,在1987年,由加州大学伯克利大学发表的论文而来,其实就是这个标题的缩写就是RAID;中译为“磁盘阵列”;
RAID就是把几个物理磁盘组合在一起成为一个大的虚拟物理磁盘,主要目的和用途主要有:把若干小容量物理磁盘组成一个大容量虚拟存储设备(以前的物理磁盘的容量都比较小);提高物理存储效率(读、写),或提供冗余以提高数据存储的安全性。
根据应用方向的不同,RAID也分不不同级别 ,有LINEAR、RAID0、RAID1、RAID5、RAID10、RAID4、RAID6、MULTIPATH。常用的有RAID0、RAID1、RAID5、RAID10(其实就是0+1)、LINEAR
什么是硬件RAID和软RAID;
RAID 还分为硬件RAID 和软件RAID,硬件RAID是通过RAID 卡来实现的,而软件RAID是通过软件来实现的;在企业级应用领域,大部份都是硬件RAID。而软件RAID由于性价比高,大多被中小型企业所采用;
硬件RAID是通过RAID卡把若干同等容量大小的硬盘,根据使用方向的不同,聚合起来成为一个大的虚拟RAID设备(或RAID0,或RAID1,或者RAID5,或RAID10……),如果每个硬盘容量不一致,以最小容量的硬盘为基础;它的成员是整个硬盘;
软RAID是软把若干同等容量大小的硬盘或分区,根据使用方向的不同,聚合起来成为一个大的虚拟RAID设备(或RAID0,或RAID1,或者RAID5,或RAID10……),如果每个硬盘或分区容量不一致,以最小容量的硬盘或分区为基础。软RAID的成员是整个硬盘或分区;
RAID 总的来说还是应用在生产型项目领域中,一般在商用办公或个人娱乐应用并未被大规模采用。应有领域大多要求性价比级的低端服务器或PC-SERVER;
RAID 的级别及特点;
RAID 有几种级别,LINEAR,RAID0 (striping), RAID1 (mirroring), RAID4, RAID5, RAID6, RAID10, MULTIPATH, and FAULTY.其中我们常用有RAID0、RAID1、RAID5、RAID10。
关于RAID各个级别的具体描述以及各个RAID级别的特点就不在多说,下面以一个创建RAID5的过程来熟悉一下软RAID的实现方法。
试验环境:虚拟机上的CentOS4.4,创建4块虚拟硬盘。
[root@nfstest ~]# fdisk -l
Disk /dev/hda: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 505 4056381 83 Linux
/dev/hda2 506 521 128520 82 Linux swap
...
Disk /dev/sda: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sda doesn't contain a valid partition table
Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table
Disk /dev/sdc: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdc doesn't contain a valid partition table
Disk /dev/sdd: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdd doesn't contain a valid partition table
上面所看到的/dev/sda /dev/sdb /dev/sdc /dev/sdd就是我为创建RAID5所新虚拟添加的硬盘。下面我们就用这四块虚拟硬盘创建一个RAID5.
1 创建把RAID信息写入RAID每个成员的superblocks(超级块)中
mdadm -C -v /dev/md0 -l5 -n4 /dev/sd[abcd]
或者
mdadm -C -v /dev/md0 -l5 -n4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
创建完了以后,RAID也就立即启动了,看到如下信息表示我们已经成功创建:
mdadm: array /dev/md0 started
通过fdisk命令可以查看我们创建的RAID设备
[root@nfstest ~]# fdisk -l
Disk /dev/hda: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 505 4056381 83 Linux
/dev/hda2 506 521 128520 82 Linux swap
...
Disk /dev/md0: 3221 MB, 3221028864 bytes
2 heads, 4 sectors/track, 786384 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Disk /dev/md0 doesn't contain a valid partition table
上面的/dev/md0也就是我们刚才新建的设备。
2 RAID的管理
RAID的启动可以有两种方法,一种是没有配置mdadm.conf文件的启动,一种是配置了mdadm.conf文件的启动。
方法一、没有配置mdadm.conf文件的启动语法
mdadm -A RAID设备 RAID成员
例如:
mdadm -A /dev/md0 /dev/sd[abcd]
方法二、配置好了mdadm.conf文件的启动语法
mdadm -A RAID设备
或
mdadm -As
例如:
mdadm -A /dev/md0
mdadm -As
3 配置启动文件
RAID启动文件位于/etc目录下面,如果要是存在,在做本试验之前请保存好,以免破坏原有的RAID信息。如果不存在,可以手工建立(必须保证RAID已经运行):
mdadm -Ds >> /etc/mdadm.conf
查看/etc/mdadm.conf文件的信息:
[root@nfstest ~]# more /etc/mdadm.conf
ARRAY /dev/md0 level=raid5 num-devices=4 UUID=161d604a:9ca2b3f3:e70c155e:8952dde6
devices=/dev/sda,/dev/sdb,/dev/sdc,/dev/sdd
把上面的信息同我们创建的RAID信息是否一致:
[root@nfstest ~]# mdadm -Ds /dev/md0
/dev/md0:
Version : 00.90.01
Creation Time : Thu Sep 27 10:30:19 2007
Raid Level : raid5
Array Size : 3145536 (2.100 GiB 3.22 GB)
Device Size : 1048512 (1023.94 MiB 1073.68 MB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Thu Sep 27 10:33:05 2007
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
Number Major Minor RaidDevice State
0 8 0 0 active sync /dev/sda
1 8 16 1 active sync /dev/sdb
2 8 32 2 active sync /dev/sdc
3 8 48 3 active sync /dev/sdd
UUID : 161d604a:9ca2b3f3:e70c155e:8952dde6
Events : 0.2
创建好RAID以后,我们就可以把RAID当成普通的硬盘或分区来使用了。