创建Linear磁盘阵列

Linear模式的磁盘阵列,是将多个磁盘组合成一个空间更大的硬盘。
一、硬件要求
理论上,磁盘阵列是由一个个硬盘所组成的。但时间上LINUX中实现磁盘阵列,是以硬盘分区作为组成磁盘阵列的单位。因此,必须先用fdisk或cfdisk命令,创建好每个硬盘的分区。
要创建Linear模式的磁盘阵列,至少需要准备2个准备。由于Linear磁盘阵列实际上只具有硬盘分区合并的效果,所以这2个硬盘分区并不需要有相同容量的硬盘空间。
二、创建磁盘阵列
磁盘阵列的配置文件为/etc/raidtab。接下来以hdb1及hdc1这2个硬盘分区为例,接受要创建Linear磁盘阵列时,其配置文件的写法(在LINUX中,默认并没有此配置文件,请自行编辑):
raiddev /dev/md0            <--指定磁盘阵列的设备名称
   raid-level       linear     <--指定采用的是Linear模式
   nr-raid-disks  2            <--此磁盘阵列由2个硬盘所组成
   chunk-size     32          <--当数据要写入磁盘阵列时,每个写入区块的大小(单位为KB,且必须是2的蔑次方)。由于在Linear模式中,数据写入时,实际上并不分块,而是循环写入到同一磁盘中(只要磁盘仍有足够的磁盘空间)。所以,此处设置值并无实际上的意义。
   persistent-superblock  1   <--设置是否要写入磁盘的superblock:设成“1”表示要写入,否则可设成“0”
   device           /dev/hdb1    <--按实际情况,指定第一个硬盘分区的名称
   raid-disk       0                   <--设置上述的分区是此磁盘阵列所使用的第一 个硬盘(编号有“0”开始)
   device           /dev/hdc1     <--按实际情况,指定第2个硬盘分区的名称
     raid-disk       1                   <--设置上述的分区是此磁盘阵列所使用的第2个硬盘
创建好配置文件后,执行以下命令,初始化刚刚创建的/dev/md0磁盘阵列:
# mkraid /dev/md0
执行完上个步骤,即已创建好磁盘阵列,然后启动,系统便会自动启动此磁盘阵列。接下来,就可以如同一般的硬盘分区一样,格式化并挂载此磁盘阵列:
# mke2fs -j /dev/md0  <--格式化此硬盘分区
# mount -t ext3 /dev/md0 /mnt/raid
挂载完成后,就可以象使用平常目录一样,访问这个利用磁盘阵列所创建好的目录。当然也可以修改/etc/fstab配置文件,使系统每次启动都自动挂载此磁盘阵列(/etc/fstab配置文件的修改方法就不具体介绍了。)
说明:
如果执行mkraid命令时出现类似如下的错误信息,则说明磁盘阵列中已含有数据:
handing MD device /dev/md0
analyzing super-block
disk 0: /dev/hdb1,1045600kB, raid superblock at 1465536kB
/dev/hdb1 appears to be already part of a raid array --use -f to force the destruction of the old superbloc
mkraid:aborted, see the syslog and /proc/mdstat for potential clues.
若确定不要这些数据,即可在执行mkraid命令时,加上“--really-force”参数,强行初始化磁盘阵列:
# mkraid --really-force /dev/md0
三、查看磁盘阵列状态记录文件,停止或启动磁盘阵列
在linux中,除了mke2fs命令以外,与磁盘阵列相关的命令还有raidstop及raidstart,这2个命令分别用来停止或启动磁盘阵列。此外,还可以查看/proc/mdstat磁盘阵列的状态记录文件,此记录文件中记录了磁盘阵列目前是否正处于启动中。
1.停止已启动的磁盘阵列
当创建好阵列后,若因为某些原因,要暂时停止使用磁盘阵列,需先卸载已挂载的目录,然后再执行raidstop命令停止指定的磁盘阵列:
# umount /dev/md0
# raidstop /dev/md0
有一点要特别注意的是:raidstop命令的作用仅到系统关机为止。这意味着,虽然执行了raidstop命令停止磁盘阵列,但重要重新启动,系统还是会自动启动磁盘阵列。
2.启动停止中的磁盘阵列
当执行mkraid命令初始化磁盘阵列时,默认便会同时启动磁盘阵列。因此,并不需要再执行一次raidstart命令来启动。除非前面曾用raidstop命令停止过磁盘阵列,此时才需要执行raidstart命令,重新启动磁盘阵列:
# raidstart /dev/md0
3.查看状态记录文件
如果要了解磁盘阵列是否在启动中,可列出/proc/mdstat专题记录文件的内容,此内容会显示磁盘阵列当前的状态。例如正在启动中的磁盘阵列,则此文件的内容会类似以下的这个样子:
Personalities: [linear]
read_ahead 1024 sectors
md0: active linear hdc1[1] hdb1[0]
                             3598336 blocks  32k rounding
unused devices:<none>
反之,如果磁盘阵列当前并不处于启动状态,则/proc/mdstat配置文件会呈现类似以下的内容:
Personalities: [linear]
read_ahead 1024 sectors
unused devices:<none>
四.变更磁盘阵列配置情况与删除磁盘阵列
如果已建好磁盘阵列,但经过一段时间后,想要更改磁盘的配置情况。可先执行raidstop命令来停止磁盘阵列,然后修改/etc/raidtab配置文件,再执行mkraid命令,重新初始化磁盘阵列即可。
如果不想继续事业磁盘阵列,则可先执行raidstop命令停止磁盘阵列,然后删除/etc/raidtab配置文件(或更改此文件的文件名),即可删除磁盘阵列。