Linux之RAID(磁盘软件阵列)

news/2025/2/26 15:37:52

内容概要

    • 1、什么是RAID
    • 2、RAID的级别
        • RAID 0
        • RAID 1
        • RAID 1+0
        • RAID 5
        • RAID 6
    • 2、阵列卡的缓存
    • 3、创建软件RAID磁盘阵列步骤:

1、什么是RAID

RAID我们一般称为磁盘软件阵列,是Redundant Array of Independent Disks的缩写,中文的意思是独立冗余磁盘阵列。

RAID的作用就是可以将多个较小的磁盘整合成为一个较大的磁盘设备,它的功能不光有超大存储,还可以实现数据保护的功能。

2、RAID的级别

组成磁盘阵列的不同种方式称为RAID级别(level),我们常见的RAID级别有以下几种:RAID 0、RAID 1、RAID 1+0、RAID 5、RAID 6

RAID 0

RAID 0(等量模式,条带化存储):RAID 0的模式最好使用相同型号与容量的磁盘来组成,这样可以发挥最佳性能。RAID 0可以并行的读写数据,RAID 0磁盘会被割成小数据块,当有数据写入到RAID0磁盘里时,数据会先被分割成小数据块,再一块一块的分给不同的磁盘,如下图,比如有100M的数据写进磁盘,数据会被分割成50M和50M(左右各50M),再分别分给block1、block2、block3等等,照这样来说,越多块磁盘组成的RAID 0性能会更好,因为每块负责的数据就更低,它具有很高的读写性能,但是他的缺点就是没有数据冗余功能,因为它的数据是被分成一块一块的,如果任意一块磁盘出现问题,那么整个数据就会损坏,因此,RAID 0不能应用于数据安全性要求高的场所。
在这里插入图片描述

RAID 1

RAID 1(镜像模式):RAID 1也是最好用容量相同的磁盘,如果是不同容量的磁盘组成的RAID 1,那么容量将以最小的那一块磁盘为主。如图所示,假如我有100M数据写入RAID 1,那么RAID 1会将100M的数据同时写入到存储空间,左右各写100M数据是一模一样的,就像一面镜子一样,所以它的安全性就高,因为当你任意一个磁盘损坏时,你的数据还是能够完整的保存下来,RAID 1相比于RAID 0来说最大的优点就是数据的安全性,但是由于磁盘一半的空间用于备份,所以它的性能不如RAID 0。

在这里插入图片描述

RAID 1+0

RAID 1+0:上述说过RAID 0的性能佳但是安全性低,RAID 1的数据安全性高但是性能不佳,如果将两者的优点结合在一起,那不是美哉?所以就有了RAID 1+0和RAID 0+1,所谓的RAID 1+0就是先做RAID 1再做RAID 0。RAID 0+1就是倒过来嘛,不过RAID 0+1的安全性低于RAID 1+0,所以我们一般不用。如图,如果我有100M的数据要写入,由于RAID +0的关系,两组RAID 1都会写入50M的数据,但是又因为是RAID1,因此每块磁盘都会写入50M的数据,所以,不论哪一组RAID 1的磁盘损坏,因此不会有任何问题发生。
在这里插入图片描述

RAID 5

RAID 5:RAID 5需要至少三块以上(N≥3)的磁盘才能够组成,该磁盘写入有点像RAID 0,不过在每个写入过程中,每块磁盘会加上一个Parity(校验数据),这个数据会记录其他磁盘的备份数据,当有磁盘损坏时可以恢复。如图,每次写入数据的时候,都会有Parity被记录下来,并且每次都记录在不同的磁盘,因此,任何一个磁盘损坏都能借其他的磁盘的检查码来恢复数据。它的读性能很高,但是写的性能相对不高,它的磁盘利用率为(N-1)/N。
但是当磁盘损坏量大于等于两块时,RAID 5的数据就损坏了,因为RAID 5默认仅能支持一块磁盘的损坏。

在这里插入图片描述

RAID 6

RAID 6:由于RAID 5只能支持一块磁盘损坏,所以后来就有了RAID 6的出现,它需要至少四块(N≥4)以上的磁盘组成,RAID 6在RAID 5的基础上又多加了第二块奇偶校验,因此整体的磁盘容量就会少两块,它的利用率为(N-2)/N,所以使得即使两块磁盘同时失效也能够不影响数据的使用,但是RAID 6的写的性能相对于RAID 5来说就更差了。
在这里插入图片描述

2、阵列卡的缓存

缓存(Cache)是RAID卡于外部总线交换数据的场所,RAID卡先将数据传送到缓存,再由缓存和外边数据总线交换数据。

缓存的大小于速度是直接关系到RAID卡的实际传输速度的重要因素。

不同的RAID卡出场时配备的内存容量不同,一般为几兆到百兆容量不等。

3、创建软件RAID磁盘阵列步骤:

1、检查是否已安装mdadm 软件包:rpm -q mdadm
如果没有安装:yum install -y mdadm

2、使用fdisk工具将新磁盘设备/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde划分出主分区sdb1、sdc1、sdd1、sde1,并且把分区类型的ID标记改为“fd”:fdisk /dev/sdb
在这里插入图片描述
在这里插入图片描述
3、创建RAID设备:
#创建RAID 5:mdadm -Cv /dev/md0 -l5 -n3 /dev/sd[b-d]1 -x1 /dev/sde1

-C:表示新建;

-v:显示创建过程中的详细信息。

/dev/md0:创建RAID5 的名称。

-a yes: --auto,表示如果有什么设备文件没有存在的话就自动创建,可省略。

-l:指定RAID的级别,l5 表示创建RAID 5。

-n:指定使用几块硬盘创建 RAID,n3表示使用3块硬盘创建RAID。

/dev/sd [bcd]1:指定使用这3块磁盘分区去创建RAID。

-x:指定使用几块硬盘做RAID的热备用盘,表示保留1块空闲的硬盘作备用

/dev/sde1:指定用作于备用的磁盘

在这里插入图片描述
4、你可以通过cat /proc/mdstat来查看RAID创建进度。

在这里插入图片描述

但是每想看一次进度就要输入一次cat /proc/mdstat,太麻烦了,可以使用watch -n 5 ‘cat /proc/mdstat’,这个命令就是每隔几秒来刷新一次输出

在这里插入图片描述在这里插入图片描述

检查磁盘是否使用了RAID:mdadm -E /dev/sdb[b-e]1
在这里插入图片描述
5、创建并挂载文件系统:
mkfs -t xfs /dev/md0
mkdir /guazai
mount /dev/md0 /guazai/
df -Th
cp /etc/fstab /etc/fstab.bak
vim /etc/fstab
/dev/md0 /guazai xfs defaults 0 0

格式化文件系统
在这里插入图片描述

创建一个空目录进行挂载
在这里插入图片描述
备份以下fstab的内容去fstab.bak,以防出问题,再进入vim /etc/fstab写入自动挂载。
在这里插入图片描述
在这里插入图片描述
6、模拟故障恢复:mdadm /dev/md0 -f /dev/sdb1 //模拟/dev/sdb1故障
mdadm -D /dev/md0 //查看发现sde1已顶替sdb1

模拟sdc1故障在这里插入图片描述
mdadm -D /dev/md0查看到目前sde1处于rebuilding状态
在这里插入图片描述
7、创建RAID的配置文件,方便管理软RAID的配置,比如启动、停止:echo ‘DEVICE /dev/sdc1 /dev/sdb1 /dev/sdd1 /dev/sde1’ > /etc/mdadm.conf
mdadm - -detail - -scan >> /etc/mdadm.conf

**>**的意思是覆盖文件内容。
在这里插入图片描述

**>>**的意思是追加输入,不覆盖。
在这里插入图片描述
8、mdadm命令其它常用选项:
-r:移除设备

-a:添加设备

-S:停止RAID

-A:启动RAID

mdadm /dev/md0 -f /dev/sdb1 //-f是指定故障
mdadm /dev/md0 -r /dev/sdb1
mdadm /dev/md0 -a /dev/sde1

停止和启动RAID的前提是需要解挂载
umount /dev/md0
mdadm -S /dev/md0 //停止
mdadm -A /dev/md0 //启动
mdadm -As /dev/md0
-s:指查找 /etc/mdadm.conf 文件中的配置信息,如果配置信息没有产生,那就启动不了。


http://www.niftyadmin.cn/n/3652174.html

相关文章

JavaScript实际应用:innerHTMl和确认提示的使用

JavaScript实际应用:innerHTMl和确认提示的使用今天开发中涉及到对一个层的信息控制,就是控制一个层中显示什么信息,查找资料才知道使用innerHTML属性来控制层的值,这个innerHTML跟表单里面的value属性有点类似,能够控…

Linux修复MBR扇区故障实验

修复MBR扇区故障 故障原因: 1、病毒、木马造成的破坏。 2、不正确的分区操作、磁盘读写误操作。 故障现象: 1、找不到引导程序,启动中断。 2、无法加载操作系统,开机后黑屏。 解决思路: 1、提前准备好备份文件。 2、用…

Linux修复GRUB引导故障

修复GRUB引导故障 1、故障原因: MBR中的GRUB引导程序遭到破坏(GRUB为MBR的1-446字节) grub.conf文件丢失、引导配置有误(CentOS7为grub2.cfg) 2、故障现象: 系统引导停滞,显示“grub>”提示符 3、解决思…

PHP实现自动刷数/灌水程序

PHP实现自动刷数/灌水程序今天无意间搜索.htaccess的资料,看到一个网站,它的计数器能够在静态页里更新,我想,应该是使用js来做的,打开源代码一看,果然是: 作者:未知 文章来源&#…

Linux解决忘记root密码实验

忘记root密码 如果忘记root密码,关机重启,眼疾手快按ESC,进入急救模式。然后进入chroot /mnt/sysimage系统根环境,然后输入passwd root回车,设置完毕后,重启即可。 最后重启即可

PHP中几种删除目录的方法

呵呵,忽然一个朋友问我如何删除目录,比如下面有文件呢,我说用递规呀,他说太慢了。于是就总结出了下面几种办法。1。递规法: //我提供,好像有点不对,没测试deleteDir($dir){ if (rmdir($dir)fals…

Linux进程和服务管理

内容概要1、程序和进程1、查看进程信息1、ps aux2、ps -elf3、top4、pgrep5、pstree2、进程的启动方式3、终止进程kill、killall命令pkill命令计划任务管理at命令crontab命令总结1、程序和进程 什么是程序: 程序是保存在硬盘、光盘等介质中的可执行代码和数据 文件…

[转] 对Web服务进行压力测试

对Web服务进行压力测试作者:Chris WilkinsonWeb 服务处于分布式计算的核心位置,它们之间的交互通常很难测试。分布式开发、大型的开发者团队以及对代码日益组件化的期望都有可能使 Web 服务的开发变得越来越容易隐藏错误。这些类型的错误极难检测出来。压…