RAID 10磁盘阵列实践
RAID概述
RAID技术通过把多个硬盘设备组合成一个容量更大、安全性更好的磁盘阵列,利用分散读写技术来提升磁盘阵列整体的性能,同时把多个重要数据的副本同步到不同的物理硬盘设备上,从而起到了非常好的数据冗余备份效果。
最常见的RAID磁盘阵列的方案是RAID 0、RAID 1、RAID 5与RAID 10这4种。
RAID 10技术是RAID 1+RAID 0技术的一个“组合体”,先分别两两制作成RAID 1磁盘阵列,以保证数据的安全性;再对两个RAID 1磁盘阵列实施RAID 0技术,进一步提高硬盘设备的读写速度。
RAID 10磁盘阵列至少4块硬盘来组建。

如下磁盘阵列部署实践基于RHEL8 + VMWare虚拟机进行操作。
使用mdadm命令创建、调整、监控和管理RAID设备。
部署磁盘阵列
第一步: 创建磁盘阵列。
[root@zhangsan ~]# mdadm -Cv /dev/md0 -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@zhangsan ~]#
参数解读:
- 由于是基于虚拟环境部署的磁盘阵列,所以并不真正存在硬件形式的磁盘阵列卡,故使用-C参数表示创建一个软件RAID阵列卡
- -v 参数显示创建的过程,/dev/md0为创建后的RAID磁盘阵列的名称
- -n 4 表示使用4块硬盘来部署这个RAID磁盘阵列
- -l 10 表示RAID 10方案
- /dev/sdb /dev/sdc /dev/sdd /dev/sde 为4块硬盘设备名
命令执行期间可以用-D参数进行查看进度,也可以用-Q参数查看简要信息:
[root@zhangsan ~]# mdadm -Q /dev/md0
/dev/md0: 39.97GiB raid10 4 devices, 0 spares. Use mdadm --detail for more detail.
[root@zhangsan ~]#
第二步: 把制作好的RAID磁盘阵列格式化为Ext4格式。
[root@zhangsan ~]# mkfs.ext4 /dev/md0
mke2fs 1.44.3 (10-July-2018)
Creating filesystem with 10477056 4k blocks and 2621440 inodes
Filesystem UUID: 7819e2ed-91c1-46b9-8cd4-d7c390970965
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624
Allocating group tables: done
Writing inode tables: done
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done
[root@zhangsan ~]#
第三步: 创建挂载点,挂载磁盘阵列。
[root@zhangsan ~]# mkdir /RAID
[root@zhangsan ~]# mount /dev/md0 /RAID
[root@zhangsan ~]# df -h
...省略其他信息...
/dev/md0 40G 49M 38G 1% /RAID
[root@zhangsan ~]#
最后,查看/dev/md0磁盘阵列设备的详细信息,确认RAID级别(Raid Level)、阵列大小(Array Size)和总硬盘数(Total Devices)都是否正确。
[root@zhangsan ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Dec 29 19:28:35 2022
Raid Level : raid10 # 磁盘阵列级别
Array Size : 41908224 (39.97 GiB 42.91 GB) # 磁盘阵列可用存储空间大小
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4 # 组成磁盘阵列的总硬盘数
Persistence : Superblock is persistent
Update Time : Thu Dec 29 19:32:29 2022
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : zhangsan.com:0 (local to host zhangsan.com)
UUID : 3c00cdbe:d9b5858c:862ad54c:061d0563
Events : 23
Number Major Minor RaidDevice State
0 8 16 0 active sync set-A /dev/sdb
1 8 32 1 active sync set-B /dev/sdc
2 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde
[root@zhangsan ~]#
如果想让创建好的RAID磁盘阵列能够一直提供服务,不会因每次的重启操作而取消,那么一定要记得将挂载信息添加到/etc/fstab文件中,这样可以确保在每次重启后RAID磁盘阵列都是有效的。
[root@zhangsan ~]# vim /etc/fstab
...省略其他信息...
/dev/md0 /RAID ext4 defaults 0 0
磁盘阵列损坏及修复
一旦硬盘发生故障,服务器上相应的指示灯也会变成红灯(或者变成一直闪烁的黄灯)。
在确认有一块物理硬盘设备出现损坏而不能再继续正常使用后,应该使用mdadm命令将其移除。
在虚拟机环境模拟硬盘设备故障:
# 使用mdadm命令的-f参数模拟硬盘损坏
[root@zhangsan ~]# mdadm /dev/md0 -f /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0
[root@zhangsan ~]#
查看磁盘阵列状态:
[root@zhangsan ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Dec 29 19:28:35 2022
Raid Level : raid10
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Thu Dec 29 19:37:40 2022
State : clean, degraded
Active Devices : 3
Working Devices : 3
Failed Devices : 1
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : zhangsan.com:0 (local to host zhangsan.com)
UUID : 3c00cdbe:d9b5858c:862ad54c:061d0563
Events : 25
Number Major Minor RaidDevice State
- 0 0 0 removed
1 8 32 1 active sync set-B /dev/sdc
2 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde
0 8 16 - faulty /dev/sdb
[root@zhangsan ~]#
显然,硬盘设备(/dev/sdb)损坏之后,查看RAID磁盘阵列的状态,可以发现状态已经改变。
此时可以使用mdadm命令的-r参数将故障盘移除。
# 使用mdadm命令的-r参数移除故障硬盘
[root@zhangsan ~]# mdadm /dev/md0 -r /dev/sdb
mdadm: hot removed /dev/sdb from /dev/md0
[root@zhangsan ~]#
再次查看磁盘阵列状态:
[root@zhangsan ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Dec 29 19:28:35 2022
Raid Level : raid10
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Thu Dec 29 19:40:37 2022
State : clean, degraded
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : zhangsan.com:0 (local to host zhangsan.com)
UUID : 3c00cdbe:d9b5858c:862ad54c:061d0563
Events : 26
Number Major Minor RaidDevice State
- 0 0 0 removed
1 8 32 1 active sync set-B /dev/sdc
2 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde
[root@zhangsan ~]#
在RAID 10级别的磁盘阵列中,当RAID 1磁盘阵列中存在一个故障盘时并不影响整体RAID 10磁盘阵列的使用。
当购买了新的硬盘设备后再使用mdadm命令予以替换即可,在此期间可以在磁盘阵列挂载目录/RAID中正常地创建或删除文件。
更换硬盘后再次使用-a参数进行添加操作,系统默认会自动开始数据的同步工作。
# 使用mdadm命令的-a参数添加新硬盘
[root@zhangsan ~]# mdadm /dev/md0 -a /dev/sdb
mdadm: added /dev/sdb
[root@zhangsan ~]#
使用-D参数即可看到整个过程和进度(用百分比表示):
[root@zhangsan ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Dec 29 19:28:35 2022
Raid Level : raid10
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Thu Dec 29 19:45:01 2022
State : clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Rebuild Status : 2% complete # 添加新硬盘设备之后数据同步的执行进度
Name : zhangsan.com:0 (local to host zhangsan.com)
UUID : 3c00cdbe:d9b5858c:862ad54c:061d0563
Events : 32
Number Major Minor RaidDevice State
4 8 16 0 spare rebuilding /dev/sdb
1 8 32 1 active sync set-B /dev/sdc
2 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde
[root@zhangsan ~]#
删除磁盘阵列
首先,umount磁盘阵列。
[root@zhangsan ~]# umount /RAID
[root@zhangsan ~]#
其次,停止磁盘阵列。
# 使用mdadm命令的-S参数或者--stop参数停止磁盘阵列
[root@zhangsan ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
[root@zhangsan ~]#
最后,卸载磁盘阵列中的磁盘。
[root@zhangsan ~]# mdadm --misc --zero-superblock /dev/sdb
[root@zhangsan ~]# mdadm --misc --zero-superblock /dev/sdc
[root@zhangsan ~]# mdadm --misc --zero-superblock /dev/sdd
[root@zhangsan ~]# mdadm --misc --zero-superblock /dev/sde
RAID 10磁盘阵列实践的更多相关文章
- 部署RAID 10
额外添加4块硬盘,用于搭建RAID 10 检查linux的磁盘 [root@local-pyyu ~]# fdisk -l |grep '/dev/sd[a-z]' 磁盘 /dev/sda:21.5 ...
- 图解RAID 0, RAID 1, RAID 5, RAID 10
RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失 ...
- SSD阵列卡方案优化:考虑使用RAID 50替代RAID 10
最近一直在研究RAID 50,因为牺牲一半的容量的RAID 10代价实在太大了,而且它提供的可用性也并不是百分百的,我们首先来看下RAID 10的可用性分析: 以同等容量的不同RAID方式作为案例分析 ...
- Dell R720上的系统安装问题的解决办法(关于RAID建立磁盘阵列的技术)
摘要:本篇是本人在搭建大数量存储.搜索环境时,对于使用Dell PowerEdge R720 and R720xd作为服务器所遇到的一些问题进行的总结. 开始时,我们使用Dell提供的安装光盘(蓝色) ...
- 模拟示例raid 5(5块磁盘 3块做raid 2块做备份 ) raid 10(5块磁盘) 修改版
RAID5:需要至少三块(含)硬盘,兼顾存储性能.数据安全和储存成本. RAID10:需要至少四块(含)硬盘,兼具速度和安全性,但成本很高. raid 10(5块磁盘) 1.添加硬盘设备(添加5块) ...
- 什么是RAID(磁盘阵列)
RAID全称Redundant Array of Independent Disk,即独立冗余磁盘阵列.RAID技术由加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同 ...
- RAID冗余磁盘阵列的创建
RAID 0 :条带化,数据被拆分到多个驱动中,写速度最快,但并没有数据镜像或校验信息. RAID 1 :镜像化,完全磁盘镜像,在独立磁盘上创建数据的两份拷贝,这个级别提供最好的数据安全,但写速度慢. ...
- Raid 10配置流程(五块磁盘)
Raid 10配置流程(五块磁盘) 1.在虚拟机中再添加5块硬盘. 2.使用mdadm命令创建raid10,名称为“/dev/md0” -C代表创建操作,-v显示创建过程,-a yes检查RAID名 ...
- 高效DevOps的10项实践
高效DevOps的10项实践 原文链接: http://www.drdobbs.com/architecture-and-design/top-10-practices-for-effective-d ...
- 如何在LSI MegaRAID BIOS里设定RAID 10与Hot Spare
1. 同时按下 ”Ctrl + H” 进入MegaRAID WebBIOS 画面,可以看到所有物理硬盘 (Physical Drives) 的信息.请在左边视窗点选“Configuration Wiz ...
随机推荐
- [转帖]一、Kafka Tool使用
一.Kafka Tool使用 1.添加cluster 2.开启SASL_PLAINTEXT 如果kafka 开启SASL_PLAINTEXT认证(用户名和密码认证) 3.高级设置 如果设置的是SASL ...
- [转帖]echo 输出不换行-e \c
http://www.my889.com/i/1952 在shell中,echo输出会自动换行.有时候在循环中不希望echo输出换行.代码实现如下: 1 echo -e " \c" ...
- [转帖]linux删除文本文件空白行
linux删除文本文件空白行https://www.zhihu.com/people/chen-kai-84-54-75 sed命令 在Linux中,可以使用sed命令批量删除文本中的空白行.以下是一 ...
- Vant中List列表下拉加载更多
van-list上只有一层父级元素div,多了可能下拉加载出不来:或者更多 <template> <div class="scholl-declarepage"& ...
- vim 从嫌弃到依赖(16)——宏
终于到了我第二喜欢的vim功能了(当然了,最喜欢的是.命令).我原本计划在介绍完.命令之后介绍宏,以便让各位小伙伴们能了解到vim对于重复操作进行的强大的优化.但是由于宏本身跟寄存器息息相关,所以还是 ...
- vim 从嫌弃到依赖(0)——概述
最近我想开一个新的系列,记录我使用vim的相关心得.初次接触vim是在大学操作系统实践课程中,跟着Linux一块进行学习的.当初我是百般嫌弃它的,想要进行编辑还要按下其他键,我想要移动光标居然还的切换 ...
- TienChin 开篇-运行 RuoYiVue
开篇 目的: 让大家随心所欲的 DIY 若依的脚手架 不会涉及到太多基础知识 踊跃提问(不懂得地方大家提问我会根据提问,后续一一解答疑惑) 下载 RuoYiVue Gitee: https://git ...
- BoostAsyncSocket 异步反弹通信案例
Boost 利用ASIO框架实现一个跨平台的反向远控程序,该远控支持保存套接字,当有套接字连入时,自动存储到map容器,当客户下线时自动从map容器中移除,当我们需要与特定客户端通信时,只需要指定客户 ...
- 教你用Java实现动态调色板
案例介绍 欢迎来到我的小院,我是霍大侠,恭喜你今天又要进步一点点了!我们来用Java编程实战案例,做一个动态调色板.案例界面会出现三个滑动组块以及对应的数值,通过移动滑块可以改变颜色区域的显示.通过实 ...
- Google_Book_20Things.前言以及前四项学习笔记
20 THINGS I LEARNED ABOUT BROWSERS AND THE WEB Illustrated by Christoph Niemann. Written by the Goog ...