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    主分区 ?③

信息: 如果必要,不要忘记更新 /etc/fstab

[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...]

其中的RAID为dmraid 提供的磁盘阵列设备的设备文件名称,省略时代表所有的磁盘设备。以下是我使用dmraid -s 查看磁盘阵列设备状态的示范。

[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 ?③

信息: 如果必要,不要忘记更新 /etc/fstab

[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设备文件就消失了。

⑤ 再次停用硬件磁盘阵列设备,这次就没有产生任何错误信息了。

⑥ 成功地停用后,该磁盘设备的设备文件也跟着消失了。

dmraid 用法的更多相关文章

  1. EditText 基本用法

    title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...

  2. jquery插件的用法之cookie 插件

    一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...

  3. Java中的Socket的用法

                                   Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...

  4. [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法

    一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...

  5. python enumerate 用法

    A new built-in function, enumerate() , will make certain loops a bit clearer. enumerate(thing) , whe ...

  6. [转载]Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结

    本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数: ...

  7. 【JavaScript】innerHTML、innerText和outerHTML的用法区别

    用法: <div id="test">   <span style="color:red">test1</span> tes ...

  8. chattr用法

    [root@localhost tmp]# umask 0022 一.chattr用法 1.创建空文件attrtest,然后删除,提示无法删除,因为有隐藏文件 [root@localhost tmp] ...

  9. 萌新笔记——vim命令“=”、“d”、“y”的用法(结合光标移动命令,一些场合会非常方便)

    vim有许多命令,网上搜有一堆贴子.文章列举出各种功能的命令. 对于"="."d"."y",我在无意中发现了它们所具有的相同的一些用法,先举 ...

随机推荐

  1. Linux:进程通信之消息队列Message实例

    /*send.c*/ /*send.c*/ #include <stdio.h> #include <sys/types.h> #include <sys/ipc.h&g ...

  2. ExtJS:GridPanel之renderer:function()和itemdblclick : function()方法参数详解

    要使用GridPanel,首先要定义Store,而在创建Store的时候必须要有Model,因此我们首先来定义Model: Ext.define("Gpsdata", { exte ...

  3. 修改量更新API

    /* Update a Modifier header of type 'PRO' (Promotion) */ l_MODIFIER_LIST_rec.active_flag := 'N'; l_M ...

  4. 【Qt编程】基于Qt的词典开发系列<十二>调用讲述人

    我们知道,win7系统自带有讲述人,即可以机器读出当前内容,具体可以将电脑锁定,然后点击左下角的按钮即可.之前在用Matlab写扫雷游戏的时候,也曾经调用过讲述人来进行游戏的语音提示.具体的Matla ...

  5. objc写一个NSMutableArray不连续索引替换对象的方法

    NSMutableArray内置的方法-(void)replaceObjectsAtIndexes:(NSIndexSet*)set withObjects:(NSArray*)objs 只能替换一段 ...

  6. C语言之多线程机制(程序可以同时被执行而不会相互干扰)

    接触过linux的人或多或少知道,linux有多线程的机制,也就是说程序可以同时执行,不受干扰,关于这个在我以前的博文里有过类似模拟的时间片轮转程序,跟这个其实是类似的.其实在window上,线程的头 ...

  7. 面试之路(7)-BAT面试题之计算机的三大原则

    1.计算机是执行输入.运算.输出的机器 计 算 机 的 硬 件 由 大 量 的 IC(Integrated Circuit,集成电路)组成.每块 IC 上都带有许多引脚.这些引脚有的用于输入,有的用于 ...

  8. linux下利用ruby做系统备份与还原

    啥都不说了,都在代码里 :) #!/usr/bin/ruby BAK_PATH = "/media/backup.tar.xz" def to_backup exclude_fil ...

  9. ASP.NET Provider模式应用之SqlMembershipProvider类的剖析

    太多了,先给个流程图吧 Provider模式就是GOF中的两种设计模式的应用:策略模式和工厂模式,在程序中使用好这个模型能够解除模块与模块之间的耦合甚至是DIP,同时,不管是ASP.NET MVC还是 ...

  10. JVM学习--(四)垃圾回收算法

    我们都知道java语言与C语言最大的区别就是内存自动回收,那么JVM是怎么控制内存回收的,这篇文章将介绍JVM垃圾回收的几种算法,从而了解内存回收的基本原理. stop the world 在介绍垃圾 ...