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. 数据cube的schema与sql的对应的关系

    用schema workbench 设置cube的维度结构 saiku 使用的cube,会将不同维度的查询转化为sql语句. schema中, cube的事实表和dimension表进行自然连接,具体 ...

  2. 【Android 应用开发】AndroidUI设计之 布局管理器 - 详细解析布局实现

    写完博客的总结 : 以前没有弄清楚的概念清晰化 父容器与本容器属性 : android_layout...属性是本容器的属性, 定义在这个布局管理器的LayoutParams内部类中, 每个布局管理器 ...

  3. linux下64位汇编的系统调用(1)

    现在基本上系统都是64位了,而64位系统下的汇编和32位有了较大的变化,无论是系统调用的接口还是C标准库的接口都和32位汇编有所不同:下面简单谈一下在64位linux下如何利用汇编直接调用系统调用. ...

  4. Mac OS X 简单的方法知道何时来电了

    最近本猫所在的小区时常停电,往往半夜或是凌晨才来电啊!早上起来本猫在想如何知道确切的来电时间,但又不费事的方法呢. 方法一是用手机录音器录音,因为来电后门禁会发出"滴"的一声,所以 ...

  5. Spring Boot 2.0系列文章(七):SpringApplication 深入探索

    关注我 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/04/30/springboot_SpringApplication/ 前言 在 Spring B ...

  6. 《转》xcode创建一个工程的多个taget,便于测试和发布多个版本

    背景:很多时候,我们需要在一个工程中创立多个target,也就是说我们希望同一份代码可以创建两个应用,放到模拟器或者真机上,或者是,我们平时有N多人合作开发,当测试的时候,在A这里装了一遍测A写的那块 ...

  7. css3属性(1)

    text-transform语法: text-transform : none | capitalize| uppercase| lowercase 参数: none : 无转换发生 capitali ...

  8. 7. Selenium的基本使用

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 32.0px "PingFang SC" } span.s1 { font: 32.0p ...

  9. 【Web页面测试】测试点和测试用例

    1. 需求符合度测试 1. 各级菜单名称显示是否按照需求说明书规定的设计,并且没有遗漏和多余 2. 各级菜单所完成的功能是否按照需求说明书规定的设计,并且没有遗漏和多余 3. 各级菜单的操作顺序和操作 ...

  10. FFPLAY的原理(一)

    概要 电影文件有很多基本的组成部分.首先,文件本身被称为容器Container,容器的类型决定了信息被存放在文件中的位置.AVI和Quicktime就 是容器的例子.接着,你有一组流,例如,你经常有的 ...