Linux Software RAID实践
在Linux系统中目前以MD(Multiple Devices)虚拟块设备的方式实现软件RAID,利用多个底层的块设备虚拟出一个新的虚拟块设备,并且利用条带化(stripping)技术将数据块均匀分布到多个磁盘上来提高虚拟设备的读写性能,利用不同的数据冗余算法来保护用户数据不会因为某个块设备的故障而完全丢失,而且还能在设备被替换后将丢失的数据恢复到新的设备上.软RAID阵列实际上可以使用任何标准的块设备作为底层设备,如SCSI设备,IDE设备,RAM disk磁盘和NBD(Network Block Device)等,甚至是其他的MD设备.目前MD支持linear,multipath,raid0(stripping),raid1(mirror),raid4,raid5,raid6,raid10等不同的冗余级别和组成方式,当然也能支持多个RAID阵列的层叠组成raid1+0,raid5+1等类型的阵列.
RHEL5已经将MD驱动模块直接编译到内核中,我们可以在机器启动后通过cat /proc/mdstat看内核是否已经加载MD驱动或者cat /proc/devices是否有md块设备.
[root@server ~]# cat /proc/mdstat
Personalities :
unused devices: <none>
[root@server ~]# cat /proc/devices | grep md
1 ramdisk
9 md
254 mdp
在Linux系统中用户层以前使用raidtool工具集来管理MD设备,目前广泛使用mdadm软件来管理MD设备,而且该软件都会集成在Linux的发布版中.mdadm主要有7种使用模式,分别如下:
--assemble -A: 将原来属于一个阵列的每个块设备组装为阵列
--build -B: 构建没有元数据块的阵列
--create -C: 构建一个新阵列,与build的不同之处在于每个设备具有元数据块
--manage : 管理已经存储阵列中的设备,比如增加热备磁盘或者删除磁盘
--misc : 报告或者修改阵列中相关设备的信息,比如查询阵列或者设备的状态信息
--monitor -F: 监控一个或多个阵列,上报指定的事件
--grow -G: 改变阵列中每个设备被使用的容量或阵列中的设备的数目
在RHEL5中可以直接使用YUM来安装mdadm软件包,也可以从安装光盘上找到该软件包用RPM安装.
[root@server ~]# mdadm --version
mdadm - v2.6.4 - 19th October 2007
安装好后,就可以开始今天的试验了.