dmraid 全名为设备对应器磁盘阵列(Device Mapper RAID),利用Linux内核提供的设备对应器(Device Mapper)机制 ,为多种磁盘阵列设备提供磁盘阵列的设备文件,让用户可以在 Red Hat Enterprise Linux系统中使用硬件磁盘阵列设备。
使用硬件磁盘阵列设备启动磁盘阵列设备后,你可以把该设备文件当做一个磁盘使用,例如对该磁盘阵列设备产生分区、制作文件系统等。
每一个由 dmraid 管理的磁盘阵列设备的分区,其设备文件名称为:
/dev/mapper/TYPE_UNIQUENAMEpNUMBER
其中的TYPE_UNIQUENAME 就是硬件磁盘阵列设备的名称,而 NUMBER 则是分区的编号。
不过,对硬件磁盘阵列设备执行管理分区动作时,我建议你使用 parted工具,而尽可能不要使用fdisk,这是因为根据我的测试结果 ,发现通过parted 新增或卸载分区后,Red Hat Enterprise Linux会自动产生正确的分区设备文件;但使用fdisk却无法正常地更新分区设备文件。
以下是我使用 parted 管理分区的示范。
[root@linux ~]# ls /dev/mapper/ control sil_aiadcdadagbj ?① [root@linux ~]# parted /dev/mapper/sil_aiadcdadagbj mkpart p ext3 0 1024 o② [root@linux ~]# parted /dev/mapper/sil_aiadcdadagbj print Model: Linux device-mapper(dm) Disk /dev/mapper/sil_aiadcdadagbj: 250GB Sector size(logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system 旗标 1 0.51kB 1024MB 1024MB 主分区 ?③ |
[root@linux ~]# ls /dev/mapper/ control sil_aiadcdadagbj sil_aiadcdadagbjp1 ④? [root@linux ~]# |
① 现在/dev/mapper/只有硬件磁盘阵列的设备文件。
② 我使用 parted 在sil_aiadcdadagbj设备中建立一个新的主要分区,作为ext3文件系统,其开始的位置为0 MB,结束的位置为 1024MB。
③ 完成后,利用parted查看 sil_aiadcdadagbj设备的磁盘分区数据表,此处可发现刚刚新增的磁盘分区数据。
④ 使用parted产生新的分区后,会自动产生该分区的设备文件。此处的sil_aiadcdadagbjp1就是刚刚新增的分区的设备文件。
管理硬件磁盘阵列建立完硬件磁盘阵列后,接着让我们来研究如何管理该磁盘阵列设备。
1.读取磁盘阵列设备
如果你想知道目前的某一个硬件磁盘阵列设备是由哪些磁盘驱动器组成的,你可以使用dmraid -r查看:
dmraid -r [DEVICE...] |
其中的DEVICE为磁盘驱动器设备的设备文件名称,省略时代表读取所有磁盘设备。
以下是我使用dmraid -r读取磁盘驱动器信息的范例。
[root@linux ~]# dmraid -r /dev/sda: sil, "sil_aiadcdadagbj", mirror, ok, 488395120 sectors, data@ 0 /dev/sdb: sil, "sil_aiadcdadagbj", mirror, ok, 488395120 sectors, data@ 0 [root@linux ~]# |
上述显示结果中,每一行代表一个磁盘设备与其硬件磁盘阵列的相关信息。以上述/dev/sda 磁盘驱动器为例。
属于sil硬件磁盘阵列设备。
设备文件名称为 sil_aiadcdadagbj。
操作为RAID-5等级,也就是镜像模式(Mirror Mode)。
目前的配置为良好(ok)。
共有 488395120 扇区。
数据位移(Offset)的大小为 0。
2.查看磁盘阵列配置
另外一种查看硬件磁盘阵列设备的方法,则是利用dmraid -s:
dmraid -s [RAID...] |
[root@linux ~]# dmraid -s *** Active Set name : sil_aiadcdadagbj size : 488395120 stride : 0 type : mirror status : ok subsets: 0 devs : 2 spares : 0 [root@linux ~]# |
3.停用磁盘阵列设备
最后,如果打算停用硬件磁盘阵列的话,你可以使用dmraid 命令:
dmraid -a n [RAID...] |
其中的RAID即是要停用的磁盘阵列设备的设备文件,如果没有指定RAID,则代表所有磁盘阵列设备。
不过,如果该硬件磁盘阵列上仍有分区的话,dmraid将会返回错误信息。因此,请在停用硬件磁盘阵列设备之前,先卸载该磁盘设备上所有的分区。
以下是我使用dmraid -a n停用磁盘阵列设备的示范。
[root@linux ~]# dmraid -a n RAID set "sil_aiadcdadagbj(null)1" is not active ?① [root@linux ~]# ls /dev/mapper/ control sil_aiadcdadagbj sil_aiadcdadagbjp1 ② [root@linux ~]# parted /dev/mapper/sil_aiadcdadagbj rm 1 ?③ |
[root@linux ~]# ls /dev/mapper/ control sil_aiadcdadagbj ?④ [root@linux ~]# dmraid -a n ?⑤ [root@linux ~]# ls /dev/mapper/ control ?⑥ [root@linux ~]# |
① 现在我使用dmraid停用硬件磁盘阵列,但dmraid却返回错误信息,代表执行失败。
② 这是因为我的sil_aiadcdadagbj硬件磁盘阵列设备上仍有其他分区。
③ 所以,接着使用parted删除sil_aiadcdadagbj的第一个分区。
④ 现在sil_aiadcdadagbjp1设备文件就消失了。
⑤ 再次停用硬件磁盘阵列设备,这次就没有产生任何错误信息了。
⑥ 成功地停用后,该磁盘设备的设备文件也跟着消失了。