利用Linux创建磁盘阵列

RAID(Redundant Array of Independent Disks) Redundant Array of Independent Disks 的首字母缩略词(以前称做 redundant array of inexpensive disks)。为提高性能和可靠性将数据和用于纠错的信息分别存放于两个或多个硬盘驱动器的一种数据存储方式。磁盘阵列由阵列管理软件和控制纠错的磁盘控制器管理。RAID 通常用于网络服务器。

磁盘阵列配置文件为/etc/raidtab

raiddev /dev/md0 //指定磁盘阵列的设备名称
raid-level linear //指定采用的是Linear模式
nr-raid-disks 2 //此阵列由2个硬盘组成
chunk-size 32 //数据写入时,每个写入区块的大小
persistent-superblock 1 //设置是否写入磁盘的superblock
device /dev/hdb1 //按实际情况,指定第1个硬盘分区名称
raid-disk 0 //设置上述分区是此阵列所使用的第1 //个硬盘(编号由"0"开始)
device /dev/hdc1 //按实际情况,指定第2个硬盘分区名称
raid-disk 1 //设置上述分区是此阵列所使用的第1 //个硬盘(编号由"0"开始)
创建好配置文件后,执行以下命令
#mkraid /dev/md0
执行完以个步骤,已经创建好磁盘阵列,然后启动,系统会自动启动此阵列.接下来,就可以如同一般硬盘分区一样,格式化并挂载此阵列.
#mke2fs -j /dev/md0 //格式化此硬盘分区
#mount -t ext3 /dev/md0 /mnt/raid
强行初始化磁盘阵列
#mkraid -really-force /dev/md0

挂载完成后,就可以像平常目录一样,访问这个利用磁盘阵列建设好的目录.当然也可以修改/etc/fstab配置文件,使系统每次启动都自动挂载此磁盘阵列.
除了mke2fs命令以外,相关命令还有raidstop(需先卸载已经挂载的目录)及raidstart.还可以查看/proc/mdstat阵列的状态记录文件.

创建RAID-5磁盘阵列

raiddev /dev/md0 //指定磁盘阵列的设备名称
raid-level 5 //指定采用的是Linear模式
nr-raid-disks 3 //此阵列由2个硬盘组成
nr-spare-disks 1 //此阵列的备用硬盘数目
chunk-size 32 //数据写入时,每个写入区块的大小
persistent-superblock 1 //设置是否写入磁盘的superblock
parity-algorithm left-symmetric //指定哪种算法计算同位校验码
device /dev/hdb1 //按实际情况,指定第1个硬盘分区名称
raid-disk 0 //设置上述分区是此阵列所使用的第1 //个硬盘(编号由"0"开始)
device /dev/hdc1 //按实际情况,指定第2个硬盘分区名称
raid-disk 1 //设置上述分区是此阵列所使用的第1 //个硬盘(编号由"0"开始)
device /dev/hdd1
raid-disk 2

device /dev/hda6 //备用硬盘的分区名称
spare-disk 0 //指定备用硬盘是此阵列所使用的第1位备用硬盘(编号从“0”开始)

1、 容错能力测试

关机,将hdc硬盘连线断开,重新启动,这时仍然可以启用RAID-5阵列,且一切正常。查看/proc/mdstat状态记录文件,便可以发现只启用的2个硬盘。
如果两个以上硬盘出现故障,可就无法启动阵列了,数据也无法恢复。

2、 支持备用硬盘

修改配置文件,依次执行raidstop及mkraid命令,停止执行中的阵列,并重新初始化阵列。当初始化时,系统会在后台同步所有硬盘的数据,此时不要重新启动。设置好备用硬盘后,如果其中之一的硬盘发生故障,系统就会自动启用备用硬盘,并利用他正常运行的数据,重建此备用硬盘数据,以确保数据安全。

3、 空间利用率分析

此方式会使用一个硬盘的容量来存储同位校验码,因此数据浪费率少于Linear及RAID-0。在不使用备用硬盘的情况下,如果RAID-5阵列是由N台硬盘所组成,且每台硬盘的容量为S,则此阵列的容量为(N-1)xS

4、 读写性能分析

此方式由于读写数据时是将一个文件夹切割成小区块,由于可同步从N-1台硬盘读写数据,因此理想上存取速率可变成N-1倍。但实际上,由于必须耗费系统资源在计算同位校验码上,因此不会达到这么高的传输效率。

你可能感兴趣的:(服务器)