CentOS7 部署 RAID 磁盘阵列

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

CentOS7 部署 RAID 磁盘阵列



一、RAID 磁盘阵列概述


二、RAID 工作模式


1.RAID 0

2.RAID 1

3.RAID 5

4.RAID 10


三、部署 RAID 磁盘阵列


1.创建 RAID 0

2.创建 RAID 1

3.创建 RAID 5

4.模拟磁盘损坏

5.向 RAID 中增加存储硬盘

6.创建 RAID 10


一、RAID 磁盘阵列概述



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


二、RAID 工作模式



RAID 0,RAID 1,RAID 5,RAID 10


1.RAID 0


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


image.png


image.png


  • 典型应用:对数据安全性要求不高,但对读写性能要求极高,如图形工作站等。


2.RAID 1


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


image.png


image.png


  • 典型应用:对数据安全性要求极高,但是读写效率低,用于服务器或数据库存储等。


3.RAID 5


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


image.png


image.png


  • 典型应用:随机数据传输要求安全性高,如金融、数据库、存储等。


4.RAID 10


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


image.png

image.png


  • 典型应用:集成了 RAID0 和 RAID1 的优点。


三、部署 RAID 磁盘阵列



  • 准备四块 20G 的硬盘,每块硬盘分四个分区,每个分区 5G


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

image.png


使用 partprobe 命令同步分区情况


[root@localhost ~]# partprobe


image.png


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


注解:


image.png


image.png

1)查看 RAID0 状态


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

image.png


注解:


  • 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 追加到该目录

image.png


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

image.png


5)验证 RAID0 是否开机自动挂载


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


image.png


2.创建 RAID 1


 
         

image.png


1)查看 RAID1 状态


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

image.png


注解:


  • 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

image.png


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

image.png


5)验证 RAID0 是否开机自动挂载


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


image.png


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

image.png


1)查看 RAID5 状态


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

image.png


2)修改 mdadm 配置文件


 
         

image.png


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

image.png


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

image.png



2)查看重建状态


  • 当一个设备出现故障或被标记故障时,相应设备的方括号后将被标以 (F)。


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

image.png


3)查看之前写入的测试数据是否还在


image.png


[root@localhost ~]# ls /raid5/


4)重建完毕后查看阵列状态


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

image.png


5)移除损坏的磁盘


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

image.png


6)再次查看 /dev/md5 状态


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

image.png


7)新加热备磁盘


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

image.png


8)查看 /dev/md5 状态


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


image.png


5.向 RAID 中增加存储硬盘


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


1)向 RAID 中新加一块硬盘


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

image.png


2)查看此时的 RAID 状态


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


image.png


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


3)热备盘转换成活动盘


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

image.png


4)查看此时的 RAID 状态


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

image.png


5)扩容文件系统


  • RAID 构建完毕后,阵列容量增加,但是文件系统还没有增加,这时我们还需要对文件系统进行扩容。


[root@localhost ~]# xfs_growfs /dev/md5

image.png


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


image.png


6.创建 RAID 10


  • 注意:RAID10 至少需要四块硬盘


[root@localhost ~]# mdadm -C /dev/md10 -a yes -l 10 -n 4 /dev/sdb4 /dev/sdc4 /dev/sdd4 /dev/sde4

image.png


1)查看 RAID10 状态


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


image.png


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


image.png


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


image.png


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


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


image.png

相关文章
|
2月前
|
监控 前端开发 Linux
centos7系统安装部署zabbix5.0
【9月更文挑战第23天】在CentOS 7系统上部署Zabbix 5.0的步骤包括:安装MariaDB数据库及必要软件包,配置Zabbix仓库,设置数据库并导入Zabbix数据库架构,配置Zabbix服务器与前端参数,启动相关服务,并通过浏览器访问Web界面完成安装向导。
140 0
|
2月前
|
Oracle Java 关系型数据库
CentOS 7.6操作系统部署JDK实战案例
这篇文章介绍了在CentOS 7.6操作系统上通过多种方式部署JDK的详细步骤,包括使用yum安装openjdk、基于rpm包和二进制包安装Oracle JDK,并提供了配置环境变量的方法。
267 80
|
4月前
|
Linux 虚拟化 数据安全/隐私保护
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
|
1月前
|
存储 Linux 开发者
虚拟机centos7.9一键部署docker
本文介绍了如何在 CentOS 7.9 虚拟机上安装 Docker 社区版 (Docker-ce-20.10.20)。通过使用阿里云镜像源,利用 `wget` 下载并配置 Docker-ce 的 YUM 仓库文件,然后通过 `yum` 命令完成安装。安装后,通过 `systemctl` 设置 Docker 开机自启并启动 Docker 服务。最后,使用 `docker version` 验证安装成功,并展示了客户端与服务器的版本信息。文中还提供了列出所有可用 Docker-ce 版本的命令。
176 0
虚拟机centos7.9一键部署docker
|
2月前
|
存储 Kubernetes 负载均衡
CentOS 7.9二进制部署K8S 1.28.3+集群实战
本文详细介绍了在CentOS 7.9上通过二进制方式部署Kubernetes 1.28.3+集群的全过程,包括环境准备、组件安装、证书生成、高可用配置以及网络插件部署等关键步骤。
412 3
CentOS 7.9二进制部署K8S 1.28.3+集群实战
|
2月前
|
Linux pouch 容器
CentOS7部署阿里巴巴开源的pouch容器管理工具实战
关于如何在CentOS 7.6操作系统上安装和使用阿里巴巴开源的Pouch容器管理工具的实战教程。
121 2
CentOS7部署阿里巴巴开源的pouch容器管理工具实战
|
3月前
|
机器学习/深度学习 文字识别 Linux
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - CentOS 7)
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - CentOS 7)
85 1
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - CentOS 7)
|
2月前
|
Kubernetes Linux API
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
该博客文章详细介绍了在CentOS 7.6操作系统上使用kubeadm工具部署kubernetes 1.17.2版本的测试集群的过程,包括主机环境准备、安装Docker、配置kubelet、初始化集群、添加节点、部署网络插件以及配置k8s node节点管理api server服务器。
119 0
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
|
3月前
|
Linux 数据安全/隐私保护 网络虚拟化
centos7部署Pritunl
centos7部署Pritunl
|
3月前
|
Linux 数据安全/隐私保护 虚拟化
centos7部署openVPN
centos7部署openVPN