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. 【一天一道LeetCode】#22. Generate Parentheses

    一天一道LeetCode (一)题目 Given n pairs of parentheses, write a function to generate all combinations of we ...

  2. Windows环境下搭建React Native

    随着移动开发越来越火热,前端开发也是有之前11年一直火热到现在,不过我发现从去年年底开发,Android和ios基本已经饱和了,特别是随着广大开源社区的中很多人贡献代码,开发已经不是什么问题了,所以现 ...

  3. C++中不能被重载的运算符介绍

    C/C++ 里大多数运算符都可以在 C++ 中被重载. C 的运算符中只有 . 和 ?:(以及 sizeof,技术上可以看作一个运算符)不可以被重载.C++ 增加了一些自己的运算符,除了 :: 和 . ...

  4. 如何搭建modem编译环境

    [DESCRIPTION] (1)MT6577以及之前的chip平台(如MT6575,73等) 的modem编译环境和MTK的Feature Phone的编译环境一样,即Windows+RVCT (2 ...

  5. android JNI调用机制

    JNI的出现使得开发者既可以利用Java语言跨平台.类库丰 富.开发便捷等特点,又可以利用Native语言的高效. JNI是JVM实现中的一部分,因此Native语言和Java代码都运行在JVM的宿主 ...

  6. 如何在shell脚本中判断文件或者文件夹是否存在?

    1:查找文件夹 如果文件夹存在,则打印一句存在,否则打印不存在 这里的话可以自由加一些指令. if [ test -d 文件夹名称 ] ; then echo "文件夹存在!" e ...

  7. 给大家推荐一个python的学习网站 http://www.codecademy.com

    注册之后,可以跟着指导,自己编码学习,比较方面: 再推荐一个在线编译的代码网站,c/c++ python  都可以: http://codepad.org

  8. 恶补web之一:html学习(1)

    发现以前欠下的web知识太多鸟,只有重头开始好好学吧,恶补第一站就是html知识啦! html指的是超文本标记语言,它不是编程语言,而是一种标记语言;标记语言是一套标记标签(markup tag),h ...

  9. MATLAB三点确定圆

    function [circleCenter,radius] = ThreePointCircle(obj,x,y,z) A=[x(1)-y(1),x(2)-y(2);z(1)-y(1),z(2)-y ...

  10. WebService学习--(三)使用JDK开发WebService

    一.WebService的开发手段 使用Java开发WebService时可以使用以下两种开发手段 1. 使用JDK开发(1.6及以上版本) 2.使用CXF框架开发(工作中) 二.使用JDK开发Web ...