Linux创建磁盘阵列

        磁盘阵列(Disk Array)是由一个硬盘控制器来控制多个硬盘的相互连接,使多个硬盘的读写同步,减少错误,增加效率和可靠度的技术。RAID是Redundant Array of Inexpensive Disk的缩写,意为廉价冗余磁盘阵列,是磁盘阵列在技术上实现的理论标准,其目的在于减少错误、提高存储系统的性能与可靠度。常用的等级有1、3、5级等。

       创建磁盘阵列的好处:1、整合多个硬盘,将多个容量较小的硬盘组合成一个容量较大的虚拟硬盘;2、数据具有较高的安全性,具有自动修正错误的功能;3、提高存取效率,当写入数据时,会先切割为多个区块并同时写到不同硬盘中,读取数据时分别从不同的硬盘同时读取数据,因此可以提高读写速度。

       磁盘阵列的分类

依硬件设备区分。可分为硬件控制和软件控制两种方式。硬件控制需购买硬盘阵列控制卡再加上几个硬盘以组成磁盘阵列,软件控制方式只需准备多个硬盘再利用软件辅助即可创建磁盘阵列。

依数据存储位置区分。Linear,数据会先放在第一硬盘,放满后,再依次存放于第2、3……硬盘,此种方式不具自动修正能力;RAID-0,数据会分为多个小区快并平均分配到每个硬盘中,此种方式不具错误修正能力;RAID-1,数据会在每个硬盘中保存一份;RAID-2,数据以为(bit)为单位切割,并分别保存到各个硬盘中,但会额外保留若干数量的硬盘不用,当写入数据时,磁盘阵列程序会同步计算保存到各个硬盘数据的校验码,然后将此校验码存储在保留的硬盘上,当有硬盘损坏时,就可利用此校验码恢复正确的数据,以达到数据容错的效果。RAID-3,数据会以字节(byte)为单位切割,校验码会保留在固定的一个硬盘中存储;RAID-4,此种方式与RAID-3方式仅数据切割单位不同;RAID-5,此种方式与RAID-4只有校验码存放位置方式不同,RAID-5会将校验码分散存储在所有的硬盘中。RAID-7,RAID-10等又是RAID-5以后的衍生。

Linux创建磁盘阵列_第1张图片

 创建Linear磁盘阵列

1、创建磁盘阵列,至少需要2个硬盘,但不必具有相同的硬盘空间。

磁盘阵列的配置文件为/etc/raidtab接下来以hdb1和hdc1等2个硬盘分区为例,创建Linear磁盘阵列,添加配置文件(请自行编辑):

raiddev /dev/md0 ←指定磁盘阵列的设备名称

raid-level linear    ←指定采用的是linear模式

nr-raid-disks 2     ←此磁盘阵列由2个硬盘组成

chunk-size  32     ←设置每个写入区块的大小,单位为kb,且必须为2的整数次方,此处设置值并无实际意义。

persistent-superblock 1 ←设置是否写入磁盘的superblock,1表示写入,0表示不写入

device /dev/hdb1  ←指定第1块硬盘分区名称

raid-disk 0            ←设置上述分区是此磁盘阵列所使用的第1块硬盘(编号由0开始)

device  /dev/hdc1  ←指定第2块硬盘分区名称

raid-disk 1            ←设置上述分区是此磁盘阵列所使用的第2块硬盘

创建好配置文件后,请执行以下命令,初始化刚刚创建的/dev/md0磁盘阵列

[root@free etc]# mkraid /dev/md0  ←指定刚刚设置磁盘阵列的设备名称,若创建磁盘阵列时,某个分区已经被linux加载,请务必先执行umount命令将其卸载,然后在mkraid,否则会出错。

[root@free etc]# mke2fs -j  /dev/md0  ←格式化此硬盘分区

[root@free etc]# mount -t ext3  /dev/md0  /mnt/raid   ←将/dev/md0分区加载成/mnt/raid目录(需自行创建此目录)

 加载完成后就可像访问一般目录一样访问。也可以修改/etc/fstab配置文件,使系统每次启动都自动加载此磁盘阵列。

如果执行mkraid命令时,出现错误信息,多是由于磁盘阵列中含有数据,若确定不要这些数据,可在执行mkraid命令时,加上“--really-force”参数,强制初始化磁盘阵列(即执行mkraid --really-force /dev/md0命令)。

 2、停止与启动磁盘阵列

停止已启动的磁盘阵列

[root@free root]# umount /dev/mdo  ←先卸载/dev/md0磁盘阵列

[root@free root]# raidstop /dev/md0 ←停止此磁盘阵列,当重启后,系统还是会自动启动磁盘阵列。

启动停止中的磁盘阵列

当执行mkraid命令初始化磁盘阵列时,默认会同时启动磁盘阵列,因此并不需要执行raidstart命令来启动,除非前面已用raidstop命令停止过磁盘阵列。

[root@free root]# raidsart  /dev/md0   ←启动此磁盘阵列

可以通过列出/proc/mdstat状态记录文件的内容查看磁盘阵列的状态。

3、变更磁盘阵列配置状况与删除磁盘阵列

如果已经建好磁盘阵列,但若想要更改创建磁盘的配置状况。请先执行raidstop,然后修改/etc/raidtab配置文件,在执行mkraid命令,重新初始化磁盘阵列即可。

如果不再使用磁盘阵列,可先执行raidstop,然后删除/etc/raidtab配置文件(或更改此文件的文件名),即可删除磁盘阵列。

创建RAID-0磁盘阵列

与创建Linear方式的磁盘阵列步骤完全相同,只需把配置文件中的raid-level linear更改为raid-level 0即可。(不支持备用硬盘)

创建RAID-1磁盘阵列

与创建Raid-0磁盘阵列步骤完全相同,只需把配置文件中的raid-level 0更改为raid-level 1,在nr-raid-disks 2后添加一行nr-spare-disks  0 即可。chunk-size 依系统而定如设置为4。

若使用备用硬盘,需设置nr-spare-disks  1,然后添加以下语句:

device  /dev/hdd1   ←指定备用硬盘的分区名称

spare-disk  0          ←指定上述备用硬盘是此磁盘阵列所使用的第1顺位备用硬盘

创建RAID-5磁盘阵列

 由于RAID-5需要保存同位校验码,因此至少需要3块硬盘。而且每个硬盘的大小最好一致。

创建步骤与前面几种一致,要对配置文件稍作修改:

-------------------------------------------------------------------------------------

raiddev /dev/md0

raid-level 5

nr-raid-disks 3

nr-spare-disks  0

chunk-size  32

persistent-superblock 1

parity-algorithm  left-symmetric ←指定用哪一种算法计算同位校验码,可使用的算法有left-symmetric、left-asymmetric、right-symmetric、及right-asymmetric等4种算法。一般采用left-symmetric算法能有最好的存取效率。  

device /dev/hdb1

raid-disk 0

device  /dev/hdc1

raid-disk 1

device  /dev/hdc1

raid-disk 2

---------------------------------------------------------------------------------------

然后可依次执行mkraid、mke2fs及mount命令分别初始化、格式化及加载已经设好的磁盘阵列。

你可能感兴趣的:(#,Linux_env)