RAID概述

RAID技术通过把多个硬盘设备组合成一个容量更大、安全性更好的磁盘阵列,利用分散读写技术来提升磁盘阵列整体的性能,同时把多个重要数据的副本同步到不同的物理硬盘设备上,从而起到了非常好的数据冗余备份效果。

最常见的RAID磁盘阵列的方案是RAID 0RAID 1RAID 5RAID 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磁盘阵列实践的更多相关文章

  1. 部署RAID 10

    额外添加4块硬盘,用于搭建RAID 10 检查linux的磁盘 [root@local-pyyu ~]# fdisk -l |grep '/dev/sd[a-z]' 磁盘 /dev/sda:21.5 ...

  2. 图解RAID 0, RAID 1, RAID 5, RAID 10

    RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失 ...

  3. SSD阵列卡方案优化:考虑使用RAID 50替代RAID 10

    最近一直在研究RAID 50,因为牺牲一半的容量的RAID 10代价实在太大了,而且它提供的可用性也并不是百分百的,我们首先来看下RAID 10的可用性分析: 以同等容量的不同RAID方式作为案例分析 ...

  4. Dell R720上的系统安装问题的解决办法(关于RAID建立磁盘阵列的技术)

    摘要:本篇是本人在搭建大数量存储.搜索环境时,对于使用Dell PowerEdge R720 and R720xd作为服务器所遇到的一些问题进行的总结. 开始时,我们使用Dell提供的安装光盘(蓝色) ...

  5. 模拟示例raid 5(5块磁盘 3块做raid 2块做备份 ) raid 10(5块磁盘) 修改版

    RAID5:需要至少三块(含)硬盘,兼顾存储性能.数据安全和储存成本. RAID10:需要至少四块(含)硬盘,兼具速度和安全性,但成本很高. raid 10(5块磁盘) 1.添加硬盘设备(添加5块) ...

  6. 什么是RAID(磁盘阵列)

    RAID全称Redundant Array of Independent Disk,即独立冗余磁盘阵列.RAID技术由加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同 ...

  7. RAID冗余磁盘阵列的创建

    RAID 0 :条带化,数据被拆分到多个驱动中,写速度最快,但并没有数据镜像或校验信息. RAID 1 :镜像化,完全磁盘镜像,在独立磁盘上创建数据的两份拷贝,这个级别提供最好的数据安全,但写速度慢. ...

  8. Raid 10配置流程(五块磁盘)

    Raid 10配置流程(五块磁盘) 1.在虚拟机中再添加5块硬盘.  2.使用mdadm命令创建raid10,名称为“/dev/md0” -C代表创建操作,-v显示创建过程,-a yes检查RAID名 ...

  9. 高效DevOps的10项实践

    高效DevOps的10项实践 原文链接: http://www.drdobbs.com/architecture-and-design/top-10-practices-for-effective-d ...

  10. 如何在LSI MegaRAID BIOS里设定RAID 10与Hot Spare

    1. 同时按下 ”Ctrl + H” 进入MegaRAID WebBIOS 画面,可以看到所有物理硬盘 (Physical Drives) 的信息.请在左边视窗点选“Configuration Wiz ...

随机推荐

  1. [转帖]rsar - Extract data from plain-text sar files

    sar -A -t -f /tmp/sa11 >/tmp/sar11 https://github.com/ryran/rsar When dealing with sysstat sar da ...

  2. [转帖]VLAN与三层交换机

    目录 一.VLAN概述与优势 二.Trunk的作用 三.IEEE 802.1q 四.VLAN转发 五.Trunk的配置 六.单臂路由概述 七.三层交换机实现VLAN之间通信的原理 八.实验一 九.实验 ...

  3. [转帖]PyCharm无法安装第三方模块,一直提示 updating list:time out 解决办法

    Pycharm无法安装第三方模块解决办法: 1.打开pycharm的项目的venv文件夹 2.打开文件夹目录中的pyvenv文件 3.将文件中的include-system-site-packages ...

  4. [转帖]一张图搞定redis内存优化及配置

    https://www.jianshu.com/p/3195663af83e   Redis内存优化及配置.png Redis优化及配置 Redis所有的数据都在内存中,而内存又是非常宝贵的资源.常用 ...

  5. [转帖]ChatGPT发展历程、原理、技术架构详解和产业未来 (收录于先进AI技术深度解读)

    https://zhuanlan.zhihu.com/p/590655677 陈巍谈芯::本文将介绍ChatGPT的特点.功能.技术架构.局限.产业应用.投资机会和未来.作者本人曾担任华为系自然语言处 ...

  6. [转帖]jar启动指定JDK/JRE 安装路径教程

    https://blog.csdn.net/weixin_40986713/article/details/128136777 前言 因为疫情在家办公的缘故,有个老项目,需要改个接口,然后需要前端联调 ...

  7. linux中如何统计千万个文件总和

    很简单.很简单.很简单.重要事情说三遍 命令:ls | grep '匹配信息' | wc -l ls查看该目录下的所有文件,果然隐藏文件也要匹配上的话,需要:ls -a grep匹配,如查看文件中有. ...

  8. 用户 'NT Service\SSISScaleOutMaster140' 登录失败

    用户 'NT Service\SSISScaleOutMaster140' 登录失败. 原因: 找不到与提供的名称匹配的登录名. 项目情况: 用户 'NT Service\SSISScaleOutMa ...

  9. 如何通过gRPC传输文件

    在gRPC中,可以通过将文件分割成多个小块,然后使用流式RPC将这些小块发送到服务器来传输文件.以下是一个简单的示例,展示了如何在gRPC中实现文件传输. 首先,我们需要定义一个服务来处理文件传输.在 ...

  10. P9779_[HUSTFC 2023] 不定项选择题_题解

    rt 题目 有一道共 n 个选项的不定项选择题,它的答案至少包含一个选项,由于题目与选项的内容晦涩难懂,你打算通过尝试每一种可能的答案来通过这道题. 初始时所有选项都没有被勾选,你可以执行任意次下述操 ...