利用Linux创建磁盘阵列

类别:Java 点击:0 评论:0 推荐:

磁盘阵列配置文件为/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倍。但实际上,由于必须耗费系统资源在计算同位校验码上,因此不会达到这么高的传输效率。

本文地址:http://com.8s8s.com/it/it15061.htm