CentOS7 部署 RAID 磁盘阵列

CentOS7 部署 RAID 磁盘阵列RAID(RedundantArrayoflndependentDisk独立冗余磁盘阵列)就是把多块独立的物理磁盘按不同的方式组合起来形成一个磁盘组(逻辑硬盘)。从而提供比单个磁盘更高的存储性能和提供数据备份技术。

大家好,又见面了,我是你们的朋友全栈君。

一、RAID 磁盘阵列概述

RAID (Redundant Array of lndependent Disk 独立冗余磁盘阵列)就是把多块独立的物理磁盘按不同的方式组合起来形成一个磁盘组(逻辑硬盘)。从而提供比单个磁盘更高的存储性能和提供数据备份技术。

二、RAID 工作模式

RAID 0,RAID 1,RAID 5,RAID 10

1.RAID 0

  • RAID0 可以被称为带区卷。它将两个以上的磁盘并联起来,成为一个大容量的磁盘;
  • 在存放数据时,分段后分散存储在这些磁盘中,因为读写时都可以并行处理,所以在所有的级别中,RAID0 的速度是最快的;
  • 但是 RAID0 既没有冗余功能,也不具备容错能力,如果一个磁盘(物理)损坏,所有数据都会丢失。

在这里插入图片描述

容错性 冗余类型
热备盘 读性能
随机写性能 连续写性能
需要的磁盘数 1+N 可用容量 N*
  • 典型应用:对数据安全性要求不高,但对读写性能要求极高,如图形工作站等。

2.RAID 1

  • RAID1 把一个磁盘的数据镜像到另一个磁盘上,在不影响性能的情况下最大限度的保证系统的可靠性和可修复性上;
  • 具有很高的数据冗余能力,但磁盘利用率为 50%,因为成本最高,所以多用在保护关键性的重要数据的场合;
  • RAID1 的操作方式是把用户写入磁盘的数据百分百地复制到另外一个磁盘上。

在这里插入图片描述

容错性 冗余类型 镜像
热备盘 读性能 低(与单块磁盘一样)
随机写性能 连续写性能
需要的磁盘数 2*N(N 代表磁盘数量) 可用容量 N/2
  • 典型应用:对数据安全性要求极高,但是读写效率低,用于服务器或数据库存储等。

3.RAID 5

  • RAID5 可以理解为 RAID0 和 RAID1 的折中方案;
  • RAID5 可以为系统提供数据安全保障,但保障程度要比 RAID1 低,而磁盘空间利用率要比 Mirror 高;
  • RAID5 具有和 RAID0 相近似的数据读取速度,只是多了一个奇偶校验信息,RAID5 的磁盘空间利用率要比 RAID1 高,储存成本相对较低。

在这里插入图片描述

容错性 冗余类型 奇偶校验信息存储
热备盘 读性能 高(与RAID0 相近)
随机写性能 较低 连续写性能 较低
需要的磁盘数 大于等于 3 可用容量 N – 1
  • 典型应用:随机数据传输要求安全性高,如金融、数据库、存储等。

4.RAID 10

  • RAID10 是一个 RAID0 和 RAID1 的组合体,所以它继承了 RAID0 的快速和 RAID1 的安全;
  • RAID1 在这里就是一个冗余的备份阵列,而 RAID0 则负责数据的读写阵列;
  • 情况是从主通道分出两路,在 Striping 操作,即把数据分隔,而这分出来的每一路再分两路,做 Mirrorinig 操作,即互做镜像。

在这里插入图片描述

容错性 冗余类型 镜像
热备盘 读性能 高(与 RAID0 相近)
随机写性能 连续写性能
需要的磁盘数 N*2(N 需要大于等于 2) 可用容量 N/2
  • 典型应用:集成了 RAID0 和 RAID1 的优点。

三、部署 RAID 磁盘阵列

  • 准备四块 20G 的硬盘,每块硬盘分四个分区,每个分区 5G
[root@localhost ~]# fdisk /dev/sdb
n											# 创建分区
p											# 创建普通分区
回车
回车
+5G											# 分配 5G 内存
t											# 更改分区类型为 RAID 类型 (只是为了方便记住)
回车
fd											# fd 类型就是 RAID
以上步骤依次类推,配置其它分区也是如此

在这里插入图片描述
使用 partprobe 命令同步分区情况

[root@localhost ~]# partprobe

在这里插入图片描述

1.创建 RAID 0

[root@localhost ~]# yum -y install mdadm							# 安装 RAID 管理工具
[root@localhost ~]# mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb1 /dev/sdc1

注解:

选项 全称 作用
-C --create 创建阵列
-a --auto 同意创建设备
-l --level 阵列模式
-n --reid-devices 阵列中活动磁盘的数目
-x --spare-devices=N 表示当前阵列中热备盘有 N 块(自定义 N 数量即可)
-S --stop 关闭阵列(关闭前需先取消挂载)

1)查看 RAID0 状态

[root@localhost ~]# cat /proc/mdstat							# 查看概要信息
[root@localhost ~]# mdadm -D /dev/md0							# 查看更详细的信息

在这里插入图片描述
注解:

  • Raid Level:阵列级别。
  • Array Size:阵列容量大小。
  • Raid Devices:RAID 成员的个数。
  • Total Devices:RAID 中下属成员的总计个数,因为还有冗余硬盘或分区,也就是 spare。
  • State:包含三个状态(clean 表示正常,degraded 表示有问题,recovering 表示正在恢复或构建)
  • Active Devices:被激活的 RAID 成员个数。
  • Working Devices:正常工作的 RAID 成员个数。
  • Failed Devices:出问题的 RAID 成员。
  • Spare Devices:备用 RAID 成员个数(会自动替换出现问题的成员)。
  • UUID:RAID 的 UUID 值,在系统中是唯一的。

2)创建 mdadm 配置文件

  • 创建 mdadm 原因:因为每次系统重启时,RAID 的 UUID 都会变化,所以创建 mdadm 文件就是为了每次重启自动加载软 RAID。
[root@localhost ~]# echo "DEVICE /dev/sdb1 /dev/sdc1" > /etc/mdadm.conf 			# 指定软 RAID 设备
[root@localhost ~]# mdadm -Ds /dev/md0 >> /etc/mdadm.conf							#  RAID0  UUID 追加到该目录

在这里插入图片描述
3)格式化磁盘阵列

[root@localhost ~]# mkfs.xfs /dev/md0								# 格式化为 xfs 文件系统

4)建立挂载点并挂载

[root@localhost ~]# mkdir /raid0									# 创建挂载点
[root@localhost ~]# mount /dev/md0 /raid0/							# 挂载
[root@localhost ~]# df -hT											# 查看磁盘使用情况
[root@localhost ~]# echo "/dev/md0 /raid0 xfs defaults 0 0" >> /etc/fstab

在这里插入图片描述
5)验证 RAID0 是否开机自动挂载

[root@localhost ~]# reboot										# 重启
[root@localhost ~]# df -hT										# 查看磁盘使用情况

在这里插入图片描述

2.创建 RAID 1

[root@localhost ~]# mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdb2 /dev/sdc2

在这里插入图片描述
1)查看 RAID1 状态

[root@localhost ~]# mdadm -D /dev/md1							# 查看更详细的信息

在这里插入图片描述
注解:

  • Used Dev Size:RAID 成员容量大小。

2)修改 mdadm 配置文件

[root@localhost ~]# echo "DEVICE /dev/sdb2 /dev/sdc2" >> /etc/mdadm.conf 			# 指定软 RAID 设备
[root@localhost ~]# mdadm -Ds /dev/md1 >> /etc/mdadm.conf

在这里插入图片描述
3)格式化磁盘阵列

[root@localhost ~]# mkfs.xfs /dev/md1								# 格式化为 xfs 文件系统

4)建立挂载点并挂载

[root@localhost ~]# mkdir /raid1									# 创建挂载点
[root@localhost ~]# mount /dev/md1 /raid1/							# 挂载
[root@localhost ~]# df -hT											# 查看磁盘使用情况
[root@localhost ~]# echo "/dev/md1 /raid1 xfs defaults 0 0" >> /etc/fstab

在这里插入图片描述
5)验证 RAID0 是否开机自动挂载

[root@localhost ~]# reboot										# 重启
[root@localhost ~]# df -hT										# 查看磁盘使用情况

在这里插入图片描述

3.创建 RAID 5

  • 注意:RAID5 至少需要三块硬盘
[root@localhost ~]# mdadm -C /dev/md5 -a yes -l 5 -n 3 -x 1 /dev/sdb3 /dev/sdc3 /dev/sdd1 /dev/sde1

在这里插入图片描述
1)查看 RAID5 状态

[root@localhost ~]# mdadm -D /dev/md5

在这里插入图片描述
2)修改 mdadm 配置文件

[root@localhost ~]# echo "DEVICE /dev/sdb3 /dev/sdc3 /dev/sdd1 /dev/sde1" >> /etc/mdadm.conf 
[root@localhost ~]# mdadm -Ds /dev/md5 >> /etc/mdadm.conf

在这里插入图片描述
3)格式化磁盘阵列

[root@localhost ~]# mkfs.xfs /dev/md5

4)建立挂载点并挂载

[root@localhost ~]# mkdir /raid5									# 创建挂载点
[root@localhost ~]# mount /dev/md5 /raid5/							# 挂载
[root@localhost ~]# df -hT											# 查看磁盘使用情况
[root@localhost ~]# echo "/dev/md5 /raid5 xfs defaults 0 0" >> /etc/fstab

在这里插入图片描述
5)向 /raid5 里面写入测试数据

[root@localhost ~]# cd /raid5/
[root@localhost raid5]# touch zhangsan.txt
[root@localhost raid5]# touch wangwu.txt
[root@localhost raid5]# ls
wangwu.txt  zhangsan.txt

4.模拟磁盘损坏

  • 在实际中,当软 RAID 检测到某个硬盘有故障时,会自动标记该磁盘为故障磁盘,并停止对故障磁盘的读写操作。

1)对 RAID5 进行模拟故障操作

[root@localhost ~]# mdadm /dev/md5 -f /dev/sdd1

在这里插入图片描述
2)查看重建状态

  • 当一个设备出现故障或被标记故障时,相应设备的方括号后将被标以 (F)。
[root@localhost ~]# cat /proc/mdstat

在这里插入图片描述
3)查看之前写入的测试数据是否还在

[root@localhost ~]# ls /raid5/

在这里插入图片描述
4)重建完毕后查看阵列状态

[root@localhost ~]# cat /proc/mdstat

在这里插入图片描述
5)移除损坏的磁盘

[root@localhost ~]# mdadm /dev/md5 -r /dev/sdd1

在这里插入图片描述
6)再次查看 /dev/md5 状态

[root@localhost ~]# mdadm -D /dev/md5

在这里插入图片描述
7)新加热备磁盘

[root@localhost ~]# mdadm /dev/md5 -a /dev/sdd1

在这里插入图片描述
8)查看 /dev/md5 状态

[root@localhost ~]# mdadm -D /dev/md5

在这里插入图片描述

5.向 RAID 中增加存储硬盘

  • 如果现在已经做好的 RAID 空间还是不够用的话,那么我们可以向里面增加新的硬盘,来增加 RAID 的空间。

1)向 RAID 中新加一块硬盘

[root@localhost ~]# mdadm /dev/md5 -a /dev/sdd2

在这里插入图片描述
2)查看此时的 RAID 状态

[root@localhost ~]# mdadm -D /dev/md5

在这里插入图片描述

  • 默认情况下,我们向 RAID 中增加的磁盘,会被默认当作热备盘,我们把热备盘加入到 RAID 的活动盘中。

3)热备盘转换成活动盘

[root@localhost ~]# mdadm -G /dev/md5 -n 4

在这里插入图片描述
4)查看此时的 RAID 状态

[root@localhost ~]# mdadm -D /dev/md5

在这里插入图片描述
5)扩容文件系统

  • RAID 构建完毕后,阵列容量增加,但是文件系统还没有增加,这时我们还需要对文件系统进行扩容。
[root@localhost ~]# xfs_growfs /dev/md5

在这里插入图片描述
6)修改 RAID 配置文件

[root@localhost ~]# vim /etc/mdadm.conf
将原来的 RAID5 配置删除
[root@localhost ~]# echo "DEVICE /dev/sdb3 /dev/sdc3 /dev/sdd2 /dev/sde1" >> /etc/mdadm.conf 
[root@localhost ~]# mdadm -Ds /dev/md5 >> /etc/mdadm.conf

7)验证 RAID5 是否开机自动挂载

[root@localhost ~]# reboot
[root@localhost ~]# df -hT

在这里插入图片描述

6.创建 RAID 10

  • 注意:RAID10 至少需要四块硬盘
[root@localhost ~]# mdadm -C /dev/md10 -a yes -l 10 -n 4 /dev/sdb4 /dev/sdc4 /dev/sdd4 /dev/sde4

在这里插入图片描述
1)查看 RAID10 状态

[root@localhost ~]# mdadm -D /dev/md10

在这里插入图片描述
2)修改 mdadm 配置文件

[root@localhost ~]# echo "DEVICE /dev/sdb4 /dev/sdc4 /dev/sdd4 /dev/sde4" >> /etc/mdadm.conf 
[root@localhost ~]# mdadm -Ds /dev/md10 >> /etc/mdadm.conf

在这里插入图片描述
3)格式化磁盘阵列

[root@localhost ~]# mkfs.xfs /dev/md10								# 格式化为 xfs 文件格式

4)建立挂载点并挂载

[root@localhost ~]# mkdir /raid10									# 创建挂载目录
[root@localhost ~]# mount /dev/md10 /raid10/						# 挂载
[root@localhost ~]# df -hT											# 查看磁盘使用情况
[root@localhost ~]# echo "/dev/md10 /raid10 xfs defaults 0 0" >> /etc/fstab

在这里插入图片描述
7)验证 RAID10 是否开机自动挂载

[root@localhost ~]# reboot
[root@localhost ~]# df -hT

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/133514.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • RabbitMQ流控-FLow Control

    RabbitMQ流控-FLow Control当Connection发布消息的速度太快,队列无法跟上(消费速度低于生产速度),RabbitMQ会降低Connection的速度,无需配置。流控的Connection可以在rabbitmqctl、管理UI和HTTPAPI响应中显示flow状态。这意味着连接每秒要经历多次阻塞和解除阻塞,以便将消息传入的速度保持在服务器其他部分(例如,将这些消息路由到的队列)能够处理的速度。一般来说,处于流…

  • python快速排序法实现

    python快速排序法实现基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。一趟快速排序的算法是:1)设置两个变量i、j,排序开始的时候:i=0,j=N-1;2)以第一个数组元素作为关键数据,赋值给key,即key=A[0];3

    2022年10月31日
  • grep 命令详解_grep命令详解

    grep 命令详解_grep命令详解一:grep命令的基本概念和用途grep命令是linux中一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。在一个或多个文件中搜素字符串模式,如果字符串模式包括空格,也必须被引用,模式后的所有字符串被看作文件名。搜索的结果被送到标准输出(stdout),不影响原文件内容。grep也可以用于shell脚本,因为grep通过返回一个状态值来说明搜索的结果,如果模式搜索成功,则返回0;如果搜索不成功,则返回1;如果搜索的文件不存在,则返回2;我们利用这些返回值就可以进行一些自动化的文

  • 批处理文件for循环_windows批处理文件怎么打开

    批处理文件for循环_windows批处理文件怎么打开windows批处理for循环用法

    2022年10月12日
  • python贪吃蛇最简单代码_手机上c语言贪吃蛇代码

    python贪吃蛇最简单代码_手机上c语言贪吃蛇代码在自学Python的过程中在网上查询资料时发现了一些好玩的东西,python的游戏库模块,它可以自己弄一个小游戏来玩玩,然后我在网上找了一些游戏的代码,,自己改了一些,弄出了一个简单贪吃蛇,代码也是照着敲的只是稍微的改了一下importpygame,sys,random,timefrompygame.localsimport*#从pygame模块导入常用的函数和常量#定义…

  • 教你win10系统显卡驱动安装失败的解决方法

    教你win10系统显卡驱动安装失败的解决方法我们日常在对电脑的使用过程中,经常都会遇到这样或那样的问题。比如说win10系统显卡驱动安装失败该怎么办呢?别着急,还有小编在呢?接下来小编就来告诉大家win10电脑系统显卡驱动安装失败怎么解决。详细教你win10系统显卡驱动安装失败怎么办:方法一,删除之前的显卡驱动文件重新安装1,首先,右键点击“此电脑”,菜单栏选择“管理”。2,进入计算机管理界面后,点击“设备管理器”,然后在界面右侧展开“显示适配器”选项,并右键点击显卡驱动程序,菜单栏选择“属性”下一步。3,点击“卸载设备”。4,显卡

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号