linux raid测试,linux 软件RAID实验
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实验相关推荐
- linux 内核配置raid,在 Linux VM 上配置软件 RAID - Azure Virtual Machines | Microsoft Docs
在 Linux 上配置软件 RAID 02/02/2017 本文内容 一种比较常见的情况是,在 Azure 中的 Linux 虚拟机上使用软件 RAID 将多个附加的数据磁盘显示为单个 RAID 设备 ...
- linux下mdadm创建软件RAID
mdadm使用详解及RAID 5简单分析 下载.安装mdadm 到mdadm的官方网站(http://www.cse.unsw.edu.au/~neilb/source/mdadm/)下载最新的压缩 ...
- linux内核测试,Linux内核测试的生命周期
内核持续集成(CKI)项目旨在防止错误进入 Linux 内核. 在 Linux 内核的持续集成测试 一文中,我介绍了 内核持续集成Continuous Kernel Integration(CKI)项 ...
- linux rapidio测试,Linux 下RapidIO 子系统的分析与实现.pdf
Linux 下RapidIO 子系统的分析与实现.pdf 第36 卷 第9 期 计 算 机 工 程 2010 年5 月 V Computer Engineering May 2010 ol.36 No ...
- Linux内核tcp时间测量,linux内核 – 测试linux内核中函数的执行时间
我使用Linux安全模块挂钩来添加一些自定义功能到recv()系统调用.与原始的recv()相比,我想测量这个功能的开销.我写了一个简单的tcp服务器,我运行与没有我的模块.这个tcp服务器调用rec ...
- linux ntp测试,linux 查看ntp服务器是否可访问
弹性云服务器 ECS 弹性云服务器(Elastic Cloud Server)是一种可随时自助获取.可弹性伸缩的云服务器,帮助用户打造可靠.安全.灵活.高效的应用环境,确保服务持久稳定运行,提升运维效 ...
- linux节点测试,linux中speedtest-cli 选择测试节点(服务器)例子
在使用speedtest-cli进行测试的时候,有些时候speedtest识别错误.原本是国内的服务器反而选择了香港或者是美国等地区的节点,所以测试结果可能就不准确.所以我们可以通过以下的方法获取sp ...
- linux 权限测试,linux下检测root权限的shell脚本
个人心血来潮时写的一个脚本,比较粗糙,功能也很简单,大家有兴趣的可以拿去改改. 本脚本之争对系统中UID为0的用户 #!/bin/bash #大家都知道 echo tes ...
- linux bonding 测试,Linux 双网卡bonding测试
原文:http://www.cnblogs.com/killkill/archive/2009/02/15/1390717.html 先介绍一下情况,服务器A和服务器B都是CentOS 4.6的系统, ...
最新文章
- CF#190DIV.1
- python3 paramiko实现ssh客户端
- Deque - leetcode 【双端队列】
- adb push ,adb pull和adb install的区别
- 17 软件源_9成职场人支持“准点下班”,2020年度职场报告:工作是最大焦虑源
- 小玉在游泳(洛谷-P1423)
- vue路由,解决同一路由页面多次触发不刷新页面【vue开发】
- android u盘启动制作工具,多系统U盘启动盘制作工具(YUMI)
- 小程序毕设作品之微信小程序点餐系统毕业设计(8)毕业设计论文模板
- SIR模型 matlab模拟
- 计算机图形学-样条曲线Spline
- MATLAB 计算点到直线的距离
- 0X0000007B蓝屏
- 2018杭州·云栖大会:一文直击地表最强黑科技
- 百度apollo自动驾驶planning代码学习-Apollo\modules\planning\constraint_checker\CollisionChecker类代码详解
- K8S kube-proxy- iptable模式实现原理分析
- SaaS系统设计研发细节复盘
- 小米6怎样打开位置服务器,小米手环6gps定位功能在哪打开?经常无法定位怎么办...
- 数据分析6-数据可视化
- 牛客网在线编程专题《剑指offer-面试题39:题目二》判断是否是平衡二叉树
热门文章
- 华为新系统鸿蒙能用微信支付吗,华为支付干得过支付宝和微信支付吗?
- 全球及中国冻干宠物零食行业消费量调研及投资分析报告2022-2027年
- 一阶段P1~P96(PJavaScript基础语法-dom-bom-js-es6新语法-jQuery- 数据可视化echarts 黑马pink老师前端入门基础视频教程(持续更新)
- DataOps 标准体系能力框架及实践
- Xmind专业版使用方法以及使用教程
- 原来这些名言都有后半句!被坑了太多年!
- python语言的使用不需要付费_人生不值得,我在用python.1_关于python
- 真心相爱要做的21件事
- layui指定单元格变色
- 爬虫系列一:十天python爬虫基础学习实战第二天——python基础语法