15.2.3软件磁盘阵列的设置

mdadm命令语法

mdadm --detail /dev/md0

mdadm --create --auto=yes /dev/md[0-9] --raid-devices=N --level=[015] --spare-devices=N /dev/sdx /dev/hdx

参数

--create:新建RAID的参数

--auto=yes:决定新建后面接的软件磁盘阵列设备,即/dev/md0,dev/md1等。

--raid-devices=N:使用几个磁盘作为磁盘阵列的设备

--spare-devices=N:使用几个磁盘作为备用spare设备

--level=[015]:设置这组磁盘阵列的等级。

--detail:后面接的那个磁盘阵列设备的详细信息。

面的语法中,最后会接许多的设备文件名(/dev/sdx

/dev/hdx),这些设备文件名可以是整块磁盘,例如/dev/sdb也可以是分区,例如/dev/sdb1之类,不过,这些设备名的总数必须要等于

--raid-devices与--spare--devices的个数总和才行

基本语法 : mdadm [mode] [options]

mode  有7种:

Assemble:将以前定义的某个阵列加入当前在用阵列。(如果umount /dev/mdx 则可能需要使用此命令恢复阵列)

Build:Build a legacy array ,每个device 没有 superblocks

Create:创建一个新的阵列,每个device 具有 superblocks

Manage: 管理阵列,比如 add 或 remove

Misc:允许单独对阵列中的某个 device 做操作,比如抹去superblocks 或 终止在用的阵列。

Follow or Monitor:监控 raid 1,4,5,6 和 multipath 的状态

Grow:改变raid 容量或 阵列中的 device 数目

可用的 [options]:

-A, --assemble:加入一个以前定义的阵列

-B, --build:Build a legacy array without superblocks.

-C, --create:创建一个新的阵列

-Q, --query:查看一个device,判断它为一个 md device 或是 一个 md 阵列的一部分

-D, --detail:打印一个或多个 md device 的详细信息

-E, --examine:打印 device 上的 md superblock 的内容

-F, --follow, --monitor:选择 Monitor 模式

-G, --grow:改变在用阵列的大小或形态

-h, --help:帮助信息,用在以上选项后,则显示该选项信息

--help-options

-V, --version

-v, --verbose:显示细节

-b, --brief:较少的细节。用于 --detail 和 --examine 选项

-f, --force

-c, --config= :指定配置文件,缺省为 /etc/mdadm.conf

-s, --scan:扫描配置文件或 /proc/mdstat以搜寻丢失的信息。配置文件/etc/mdadm.conf

mdadm.conf 格式:

DEVICE  所用到的设备分区列表(在mdadm扫描时,将扫描这些分区)

ARRAY   定义实际的磁盘阵列

简单实例:

DEVICE /dev/sda10 /dev/sda11 /dev/sdb10 /dev/sdb11

ARRAY /dev/md0 devices=/dev/sda11, /dev/sda10

[root@RHEL6 /]# mdadm  --create --auto=yes /dev/md0 --level=5 --raid-devices=4 --spare-devices=1 /dev/sd{c,d,e,f}

mdadm:

You haven't given enough devices (real or missing) to create this

array

#这报了一个错误,没有足够的设备,也就是,raid-devices+spare-devices>/devsd{c,d,e,f}

[root@RHEL6 /]# mdadm  --create --auto=yes /dev/md0 --level=5 --raid-devices=3 --spare-devices=1 /dev/sd{c,d,e,f}

mdadm: Defaulting to version 1.2 metadata

mdadm: array /dev/md0 started.

还有一种写法是

[root@RHEL6 /]# mdadm -C /dev/md0 -l 5 -n 3 /dev/sda{6,7,8} -x 1  /dev/sda9  #-l 5 做raid5,-n 3 需要3块磁盘, -x 1 需要一块热备

[root@RHEL6 /]# mdadm --detail /dev/md0

/dev/md0:                                                                                          #RAID设备文件名

Version : 1.2

Creation Time : Mon Jul  6 15:07:37 2015                        #RAID被创建的时间

Raid Level : raid5                               #RAID等级为RAID 5

Array Size : 2095104 (2046.34 MiB 2145.39 MB)        #此RAID的可用磁盘容量

Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)        #每个设备的可用容量

Raid Devices : 3                                                                        #作用RAID的设备数量

Total Devices : 4                                                                        #全部的设备数量

Persistence : Superblock is persistent

Update Time : Mon Jul  6 15:07:47 2015

State : clean

Active Devices : 3                                                                        #启动活动的(active)设备数量

Working Devices : 4                                                                        #工作的设备数量

Failed Devices : 0                                                                        #出现错误的设备数量

Spare Devices : 1                                                                        #预备磁盘的数量

Layout : left-symmetric

Chunk Size : 512K

Name : RHEL6.4x64:0  (local to host RHEL6.4x64)

UUID : 04fb4194:c2f800ce:ca084fe9:6aa014aa #此设备(RAID)标识符

Events : 18

Number   Major   Minor   RaidDevice State   #最后4行就是这五个设备目前的情况,包括四个active sync一个spare,RaidDevice指的是此RAID内的磁盘顺序

0       8       32        0      active sync   /dev/sdc

1       8       48        1      active sync   /dev/sdd

4       8       64        2      active sync   /dev/sde

3       8       80        -      spare   /dev/sdf

[root@RHEL6 /]#

[root@RHEL6 /]# cat /proc/mdstat   #除了mdadm --detail命令之外,也可以查阅如下文件看系统软件磁盘阵列的情况;

Personalities : [raid6] [raid5] [raid4]

md0

: active raid5 sde[4] sdf[3](S) sdd[1] sdc[0]

#md0为raid5,且使用了sdc、sdd、sde、sdf四块磁盘设备,每个设备后面的[]内的数字为此磁盘在RAID中的number,(S)表

示sdf[3]为spare之意。

2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]

#每个block单位为1KB,所以容量约为2GB,使用RAID5等级,写入磁盘的小区块(chunk)大小为512KB,使用aigorithm2磁

盘阵列算法。[m/n]也就是[3/3],代表此数组需要m个设备,且n个设备正常运行。[UUU]代表3个所需的启动设备正常运行,若为_则代表不正

常。

unused devices:

[root@RHEL6 /]#

格式化与挂载使用RAID

[root@RHEL6 /]# mkfs -t ext4 /dev/md0  #格式化md0设备

[root@RHEL6 /]# mkdir /media/raid

[root@RHEL6 /]# mount /dev/md0 /media/raid/  #挂载

[root@RHEL6 /]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda3              16G  1.7G   14G  11% /

tmpfs                 937M     0  937M   0% /dev/shm

/dev/sda1             194M   26M  159M  14% /boot

/dev/sdb5             2.3G  362M  1.8G  17% /home

/dev/sr0              3.5G  3.5G     0 100% /mnt

/dev/md0              2.0G   35M  1.9G   2% /media/raid

[root@RHEL6 /]#

15.2.4仿真RAID错误的救援模式

仿真RAID错误命令语法

mdadm --manage /dev/md[0-9] [--add 设备] [--remove 设备] [--fail 设备]

参数

--add:会将后面的设备加入到这个md中;

--remove:会将后面的设备从这个md中删除。

--fail:会将后面的设备设置成为出错的状态。

设置磁盘为错误(fault)

让一个磁盘变成错误,然后让spare disk自动开始重建系统

[root@RHEL6 /]# cp -a /etc /var/log/ /media/raid/   #复制一点东西给RAID,假设RAID已经使用

[root@RHEL6 /]# df /media/raid/; du -sm /media/raid/*

Filesystem           1K-blocks      Used Available Use% Mounted on

/dev/md0               2062160     70212   1887196   4% /media/raid

25      /media/raid/etc   #确实有数据在里面

5       /media/raid/log

1       /media/raid/lost+found

[root@RHEL6 /]#

[root@RHEL6 /]# mdadm --manage /dev/md0 --fail /dev/sde #假设/dev/sde这个设备出错

mdadm: set /dev/sde faulty in /dev/md0

[root@RHEL6 /]# mdadm --detail /dev/md0 #查看RAID情况

/dev/md0:

Version : 1.2

Creation Time : Mon Jul  6 15:07:37 2015

Raid Level : raid5

Array Size : 2095104 (2046.34 MiB 2145.39 MB)

Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)

Raid Devices : 3

Total Devices : 4

Persistence : Superblock is persistent

Update Time : Mon Jul  6 17:01:45 2015

State : clean

Active Devices : 3

Working Devices : 3

Failed Devices : 1     #有一个磁盘错误

Spare Devices : 0

Layout : left-symmetric

Chunk Size : 512K

Name : RHEL6.4x64:0  (local to host RHEL6.4x64)

UUID : 04fb4194:c2f800ce:ca084fe9:6aa014aa

Events : 37

Number   Major   Minor   RaidDevice State

0       8       32        0      active sync   /dev/sdc

1       8       48        1      active sync   /dev/sdd

3       8       80        2      active sync   /dev/sdf   #原有的spare磁盘,现在进入工作状态

4       8       64        -      faulty spare   /dev/sde  #出错的磁盘,进入错误spare状态

[root@RHEL6 /]#

[root@RHEL6 /]# cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4]

md0 : active raid5 sde[4](F)(这个磁盘错误了) sdf[3] sdd[1] sdc[0]

2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]

unused devices:

[root@RHEL6 /]#

将出错的磁盘删除并加入新磁盘

[root@RHEL6 raid]# mdadm --detail /dev/md127  #系统重启后(我要新加硬盘)md0变为md127了,而且原fail的磁盘没有了

/dev/md127:

Version : 1.2

Creation Time : Mon Jul  6 15:07:37 2015

Raid Level : raid5

Array Size : 2095104 (2046.34 MiB 2145.39 MB)

Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)

Raid Devices : 3

Total Devices : 3

Persistence : Superblock is persistent

Update Time : Mon Jul  6 17:19:31 2015

State : clean

Active Devices : 3

Working Devices : 3

Failed Devices : 0

Spare Devices : 0

Layout : left-symmetric

Chunk Size : 512K

Name : RHEL6.4x64:0  (local to host RHEL6.4x64)

UUID : 04fb4194:c2f800ce:ca084fe9:6aa014aa

Events : 37

Number   Major   Minor   RaidDevice State

0       8       32        0      active sync   /dev/sdc

1       8       48        1      active sync   /dev/sdd

3       8       80        2      active sync   /dev/sdf

[root@RHEL6 raid]#

[root@RHEL6 raid]# mdadm --manage /dev/md127 --remove /dev/sdf   #不能直接remove,也就是一个在用的磁盘,是不能直接remove的,必须有一个踢出的动作

mdadm: hot remove failed for /dev/sdf: Device or resource busy

系统只剩3块盘的情况下我,想在仿真RAID的一块磁盘问题

[root@RHEL6 raid]# mdadm --manage /dev/md127 --fail /dev/sdf

mdadm: set /dev/sdf faulty in /dev/md127

[root@RHEL6 raid]#

[root@RHEL6 raid]# mdadm --detail /dev/md127

/dev/md127:

Version : 1.2

Creation Time : Mon Jul  6 15:07:37 2015

Raid Level : raid5

Array Size : 2095104 (2046.34 MiB 2145.39 MB)

Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)

Raid Devices : 3

Total Devices : 3

Persistence : Superblock is persistent

Update Time : Mon Jul  6 17:25:31 2015

State : clean, degraded (这里多了一个degraded降级,还要看一下man mdadm关于state的部分)

Active Devices : 2

Working Devices : 2

Failed Devices : 1

Spare Devices : 0

Layout : left-symmetric

Chunk Size : 512K

Name : RHEL6.4x64:0  (local to host RHEL6.4x64)

UUID : 04fb4194:c2f800ce:ca084fe9:6aa014aa

Events : 38

Number   Major   Minor   RaidDevice State

0       8       32        0      active sync   /dev/sdc

1       8       48        1      active sync   /dev/sdd

2       0        0        2      removed                #状态为removed

3       8       80        -      faulty spare   /dev/sdf #出错的硬盘状态改为faulty spare

[root@RHEL6 raid]#

[root@RHEL6 raid]# ll -d /media/raid/*    #这个磁盘还是能够使用的,,RAID 5两块磁盘也能正常工作吗?

drwxr-xr-x. 76 root root  4096 Jul  6 16:42 /media/raid/etc

drwxr-xr-x.  6 root root  4096 Jul  6 14:43 /media/raid/log

drwx------.  2 root root 16384 Jul  6 16:41 /media/raid/lost+found

[root@RHEL6 raid]#

[root@RHEL6 ~]# cp -a /home /media/raid/

[root@RHEL6 ~]# ll -d /media/raid/*

drwxr-xr-x. 76 root root  4096 Jul  6 16:42 /media/raid/etc

drwxr-xr-x. 25 root root  4096 Jul  5 21:28 /media/raid/home

drwxr-xr-x.  6 root root  4096 Jul  6 14:43 /media/raid/log

drwx------.  2 root root 16384 Jul  6 16:41 /media/raid/lost+found

[root@RHEL6 ~]#

[root@RHEL6 ~]# mdadm --manage /dev/md127 --add /dev/sdg  #添加一块好盘

mdadm: added /dev/sdg

[root@RHEL6 ~]# mdadm --manage /dev/md127 --remove /dev/sdf  #移除一个坏盘

mdadm: hot removed /dev/sdf from /dev/md127

[root@RHEL6 ~]# mdadm --manage /dev/md127 --remove /dev/sdf  #在添加一块好盘

mdadm: hot removed /dev/sdf from /dev/md127

[root@RHEL6 ~]# mdadm --manage /dev/md127 --add /dev/sdh   #提示都正常了

mdadm: added /dev/sdh

[root@RHEL6 ~]# mdadm --detail /dev/md127

/dev/md127:

Version : 1.2

Creation Time : Mon Jul  6 15:07:37 2015

Raid Level : raid5

Array Size : 2095104 (2046.34 MiB 2145.39 MB)

Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)

Raid Devices : 3

Total Devices : 4

Persistence : Superblock is persistent

Update Time : Mon Jul  6 17:32:21 2015

State : clean

Active Devices : 3

Working Devices : 4

Failed Devices : 0

Spare Devices : 1

Layout : left-symmetric

Chunk Size : 512K

Name : RHEL6.4x64:0  (local to host RHEL6.4x64)

UUID : 04fb4194:c2f800ce:ca084fe9:6aa014aa

Events : 83

Number   Major   Minor   RaidDevice State

0       8       32        0      active sync   /dev/sdc

1       8       48        1      active sync   /dev/sdd

4       8       96        2      active sync   /dev/sdg

3       8      112        -      spare   /dev/sdh

[root@RHEL6 ~]#

15.2.5开机自动启动RAID并自动挂载

mdadm --detail /dev/md0 | group -i uuid

列出的UUID : XXXXX,是这个设备箱系统注册的UUID表示符

开始设置mdadm.conf

vi /etc/mdadm.conf

ARRAY /dev/md0 UUID=XXXX

设置开机自动挂载并测试

vi /etc/fstab

/dev/md0        /media/raid     ext4    defaults 0 0

umount /dev/md0; mount -a  #需要确定可以顺利挂载,并且没有发生任何错误!

df /media/raid

15.2.6关闭RAID

umount /dev/md0

删除/etc/fstab中关于md0的那一行

mdadm --stop /dev/md0  #关闭md0

cat /proc/mdstat  #可以使用cat mdstat检查

删除/etc/mdadm.conf中关于ARRAY的配置

Softraid命令汇总

mdadm  --create --auto=yes /dev/md0 --level=5 --raid-devices=4 --spare-devices=1 /dev/sd{c,d,e,f}

mdadm -C /dev/md0 -l 5 -n 3 /dev/sda{6,7,8} -x 1  /dev/sda9  #-l 5 做raid5,-n 3 需要3块磁盘, -x 1 需要一块热备

mdadm参数

--create:新建RAID的参数

--auto=yes:决定新建后面接的软件磁盘阵列设备,即/dev/md0,dev/md1等。

--raid-devices=N:使用几个磁盘作为磁盘阵列的设备

--spare-devices=N:使用几个磁盘作为备用spare设备

--level=[015]:设置这组磁盘阵列的等级。

--detail:后面接的那个磁盘阵列设备的详细信息。

mdadm --manage /dev/md127 --add /dev/sdg          #添加一块好盘

mdadm --manage /dev/md0 --fail /dev/sde             #仿真/dev/sde这个设备出错

mdadm --manage /dev/md127 --remove /dev/sdf      #移除一个坏盘

mdadm --manage /dev/md127 --add /dev/sdh           #提示都正常了

mdadm --detail /dev/md0                                             #查看RAID情况

cat /proc/mdstat

mdadm --stop /dev/md127                                                #关闭md127

linux raid测试,linux 软件RAID实验相关推荐

  1. linux 内核配置raid,在 Linux VM 上配置软件 RAID - Azure Virtual Machines | Microsoft Docs

    在 Linux 上配置软件 RAID 02/02/2017 本文内容 一种比较常见的情况是,在 Azure 中的 Linux 虚拟机上使用软件 RAID 将多个附加的数据磁盘显示为单个 RAID 设备 ...

  2. linux下mdadm创建软件RAID

    mdadm使用详解及RAID 5简单分析  下载.安装mdadm 到mdadm的官方网站(http://www.cse.unsw.edu.au/~neilb/source/mdadm/)下载最新的压缩 ...

  3. linux内核测试,Linux内核测试的生命周期

    内核持续集成(CKI)项目旨在防止错误进入 Linux 内核. 在 Linux 内核的持续集成测试 一文中,我介绍了 内核持续集成Continuous Kernel Integration(CKI)项 ...

  4. linux rapidio测试,Linux 下RapidIO 子系统的分析与实现.pdf

    Linux 下RapidIO 子系统的分析与实现.pdf 第36 卷 第9 期 计 算 机 工 程 2010 年5 月 V Computer Engineering May 2010 ol.36 No ...

  5. Linux内核tcp时间测量,linux内核 – 测试linux内核中函数的执行时间

    我使用Linux安全模块挂钩来添加一些自定义功能到recv()系统调用.与原始的recv()相比,我想测量这个功能的开销.我写了一个简单的tcp服务器,我运行与没有我的模块.这个tcp服务器调用rec ...

  6. linux ntp测试,linux 查看ntp服务器是否可访问

    弹性云服务器 ECS 弹性云服务器(Elastic Cloud Server)是一种可随时自助获取.可弹性伸缩的云服务器,帮助用户打造可靠.安全.灵活.高效的应用环境,确保服务持久稳定运行,提升运维效 ...

  7. linux节点测试,linux中speedtest-cli 选择测试节点(服务器)例子

    在使用speedtest-cli进行测试的时候,有些时候speedtest识别错误.原本是国内的服务器反而选择了香港或者是美国等地区的节点,所以测试结果可能就不准确.所以我们可以通过以下的方法获取sp ...

  8. linux 权限测试,linux下检测root权限的shell脚本

    个人心血来潮时写的一个脚本,比较粗糙,功能也很简单,大家有兴趣的可以拿去改改. 本脚本之争对系统中UID为0的用户 #!/bin/bash                #大家都知道 echo tes ...

  9. linux bonding 测试,Linux 双网卡bonding测试

    原文:http://www.cnblogs.com/killkill/archive/2009/02/15/1390717.html 先介绍一下情况,服务器A和服务器B都是CentOS 4.6的系统, ...

最新文章

  1. CF#190DIV.1
  2. python3 paramiko实现ssh客户端
  3. Deque - leetcode 【双端队列】
  4. adb push ,adb pull和adb install的区别
  5. 17 软件源_9成职场人支持“准点下班”,2020年度职场报告:工作是最大焦虑源
  6. 小玉在游泳(洛谷-P1423)
  7. vue路由,解决同一路由页面多次触发不刷新页面【vue开发】
  8. android u盘启动制作工具,多系统U盘启动盘制作工具(YUMI)
  9. 小程序毕设作品之微信小程序点餐系统毕业设计(8)毕业设计论文模板
  10. SIR模型 matlab模拟
  11. 计算机图形学-样条曲线Spline
  12. MATLAB 计算点到直线的距离
  13. 0X0000007B蓝屏
  14. 2018杭州·云栖大会:一文直击地表最强黑科技
  15. 百度apollo自动驾驶planning代码学习-Apollo\modules\planning\constraint_checker\CollisionChecker类代码详解
  16. K8S kube-proxy- iptable模式实现原理分析
  17. SaaS系统设计研发细节复盘
  18. 小米6怎样打开位置服务器,小米手环6gps定位功能在哪打开?经常无法定位怎么办...
  19. 数据分析6-数据可视化
  20. 牛客网在线编程专题《剑指offer-面试题39:题目二》判断是否是平衡二叉树

热门文章

  1. 华为新系统鸿蒙能用微信支付吗,华为支付干得过支付宝和微信支付吗?
  2. 全球及中国冻干宠物零食行业消费量调研及投资分析报告2022-2027年
  3. 一阶段P1~P96(PJavaScript基础语法-dom-bom-js-es6新语法-jQuery- 数据可视化echarts 黑马pink老师前端入门基础视频教程(持续更新)
  4. DataOps 标准体系能力框架及实践
  5. Xmind专业版使用方法以及使用教程
  6. 原来这些名言都有后半句!被坑了太多年!
  7. python语言的使用不需要付费_人生不值得,我在用python.1_关于python
  8. 真心相爱要做的21件事
  9. layui指定单元格变色
  10. 爬虫系列一:十天python爬虫基础学习实战第二天——python基础语法