RAID详细教程

一 :RAID介绍

RAID(独立冗余磁盘阵列),RAID技术通过把多个硬盘设备组合成一个容量更大的、安全性更好的磁盘阵列。把数据切割成许多区段后分别放在不同的物理磁盘上,然后利用分散读写技术来提升磁盘阵列整体的性能,同时把多个重要数据的副本同步到不同的物理设备上,从而起到了非常好的数据冗余备份效果。缺点就是磁盘利用率低。

RAID的分类至少有十几种在,这里简单介绍一下最常用的四种:
RAID0 ,ARID1, RAID0+1, RAID5,

RAID的优点:

1:提高传输速率
2:通过数据校验提供容错能力

1.1 RAID 0

在这里插入图片描述

RAID 0是最早出现的RAID模式,即Data Stripping数据分条技术。RAID 0是组建磁盘阵列中最简单的一种形式,只需要2块以上的硬盘即可,成本低,可以提高整个磁盘的性能和吞吐量。RAID 0没有提供冗余或错误修复能力,但实现成本是最低的。

1.2 RAID1

在这里插入图片描述

RAID 1称为磁盘镜像,原理是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,只要系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行,当一块硬盘失效时,系统会忽略该硬盘,转而使用剩余的镜像盘读写数据,具备很好的磁盘冗余能力。虽然这样对数据来讲绝对安全,但是成本也会明显增加,磁盘利用率为50%。

1.3 RAID0+1

在这里插入图片描述

RAID 0+1名称上便可以看出是RAID0与RAID1的结合体。在单独使用RAID 1也会出现类似单独使用RAID 0那样的问题,即在同一时间内只能向一块磁盘写入数据,不能充分利用所有的资源。为了解决这一问题,可以在磁盘镜像中建立带区集。因为这种配置方式综合了带区集和镜像的优势,所以被称为RAID 0+1。把RAID0和RAID1技术结合起来,数据除分布在多个盘上外,每个盘都有其物理镜像盘,提供全冗余能力,允许一个以下磁盘故障,而不影响数据可用性,并具有快速读/写能力。RAID0+1要在磁盘镜像中建立带区集至少4个硬盘。也有一种叫法叫RAID10。

1.4 RAID5

在这里插入图片描述
它的奇偶校验码存在于所有磁盘上。RAID5的读出效率很高,写入效率一般,块式的集体访问效率不错。因为奇偶校验码在不同的磁盘上,所以提高了可靠性。但是它对数据传输的并行性解决不好,而且控制器的设计也相当困难。RAID0大幅度提升了设备的读写性能,但不具备容错能力。RAID1虽然十分注重数据安全,但磁盘利用率太低。

在这里插入图片描述

1.5 RAID 的管理工具

mdadm 是 multiple devices admin 的简称,是 Linux 下的一款标准的软件RAID 管理工具。在 Linux 系统中,目前以虚拟块设备(Multiple Devices,MD)方式实现软件 RAID:
利用多个底层的块设备虚拟出一个新的虚拟设备,并且利用条带化(stripping)技术将数据
块均匀分布到多个磁盘上来提高虚拟设备的读写性能,利用不同的数据冗余算法来保护用户
数据不会因为某个块设备的故障而完全丢失,而且能在设备被替换后将丢失的数据恢复到新的设备上。

mdadm
语法:mdadm [模式] [参数]

常用模式:
-C --create  创建阵列模式;
● -a {yes|no}:自动创建对应的设备,yes表示会自动在/dev下创建RAID设备;
● -l #:指明要创建的RAID的级别(-l 5 表示创建RAID5);
● -n #:使用#个块设备来创建此RAID(-n 3 表示用3块硬盘来创建这个RAID);
● -x #:当前阵列中热备盘只有#块(-x 1 表示热备盘只有1块)
-D  --detail  查看raid设备的详细信息模式
● -f  使一块raid磁盘故障;
● -a  增加一块raid磁盘;
● -r  移除一块故障的raid磁盘;
● -s  --scan:扫描配置文件或 /proc/mdstat以搜寻丢失的信息;
● -S  停止raid磁盘阵列。
Raid level 阵列类型
Active Devices 活跃的硬盘数目
Workinf Devices 所有的硬盘数目
Failed Devices 出现故障的硬盘数目
Spare Devices 热备份的硬盘数目

在这里插入图片描述

然后重新启动系统,用“fdisk -l | grep sd”命令查看,发现四块硬盘被系统检测到说明硬盘安装成功,

在这里插入图片描述
由于RAID5要用到整块硬盘,用前面讲过的fdisk命令创建分区的方法,将整块硬盘创建成一个主分区,然后将分区类型改成fd最后存盘退出,如前图所示。
以此类推,将另外三块硬盘也都进行设置

在这里插入图片描述
在这里插入图片描述
下面使用“mdadm -C /dev/-a yes -l 5 -n 3 -x 1 /dev/sd[b,c,d,e]”命令直接对4块硬盘中的三块来创建raid5,其中1块硬盘为热备盘

在这里插入图片描述
使用“mkfs.xfs /dev/md0” 命令对硬盘阵列/dev/md0进行格式化

在这里插入图片描述
把硬盘阵列进行挂载后就可以使用了,也可以把挂载项写入到/etc/fstab文件中,这样下次系统重启后也可以使用了
在这里插入图片描述
在这里插入图片描述
在raid5阵列上建立两个文件来进行测试
在这里插入图片描述
这里使用“mdadm /dev/md0 -f /dev/sdb1”让硬盘/dev/sdb1产生坏道不能使用。然后查看raid阵列信息,发现热备份硬盘/dev/sde1已经自动替换了损坏的/dev/sdb1,并且文件并没有损失

在这里插入图片描述
在这里插入图片描述
移除损坏的硬盘,添加新硬盘作为热备份
这里先使用“mdadm /dev/md0 -r /dev/sdb1”命令移除损坏硬盘/dev/sdb1,然后进行查看发现损坏的硬盘已经不在了

在这里插入图片描述
在这里插入图片描述
再使用“mdadm /dev/md0 -a /dev/sdb1”命令添加一块新的硬盘/dev/sdb1做为阵列的热备份使用,这里的/dev/sdb1不是之前损坏的硬盘,而是另一块准备好的完好硬盘,添加完后进行查看

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

实验

1 实验环境:

系统 :centos7
工具 :mdadm 
利用磁盘分区新建4个磁盘分区,每个大小为10G,用这4个10G的分区来模拟4个1TB的硬盘
yum install mdadm -y

2. fdisk分区
使用fdisk 分区,这里的设备名称为/dev/sdb
首先用 fdisk -l 命令查看磁盘的情况

 fdisk -l | grep sd
 fdisk /dev/sdb  #分区
 n 
 p 
 回车
 +10G
 回车
 w

改磁盘类型

fdisk 加磁盘路径
进入分区按 t
后输入 fd
然后保存
w

raid0创建

madam -Cv /dev/sdb/md0 -L0 -n2 /dev/db[1-2]

命令解析:

-Cv :创建设备,并显示信息
-L0:RAID的等级为RAID0
-n2:创建RAID的设备为2块

查看系统中的RAID

cat /proc/mdstat

创建完之后进行删除操作

mdadm -s /dev/md0  #停止md0
mdadm --misc --zero-superblock /dev/sdb1 #移除/dev/sdb1
mdadm --misc --zero-superblock /dev/sdb2 #移除/dev/sdb2

创建RAID1

创建一个RAID1设备:这里采用/dev/sdb1 /dev/sdb2 两个分区做实验

madam -Cv /dev/md0 -L1 -n2 /dev/sdb[1-2]

查看组件RAID的进度

cat /proc/mdstat

使用fdisk-l 命令查看硬盘信息

fdisk -l

可以看到一块名为/dev/md0的设备,大小为10G

创建RAID5

创建一个RAID5设备:这里采用/dev/sdb1 /dev/sdb2和/dev/sdb3这三个分区做实验,按照刚才的方法,先停掉/dev/md0 设备,再移除/dev/sdb1和/dev/sdb2这两个分区

mdadm --stop /dev/md0  #停止

删除查看

mdadm --misc --zero-superblock /dev/sdb1 
mdadm --misc --zero-superblock /dev/sdb2 
cat /proc/mdstat

从结果来看创建的RAID设备不存在了
现在使用3个分区来创建1个RAID5设备

mdadm -Cv /dev/md0 -L5 -n3 /dev/sdb[1-3]

查看RAID5构建的进度

cat /proc/mdstat

RAID已经组件完毕
使用fdisk-l 命令查看系统的分区

fdisk -l

可以看到一块 /dev/md0 的设备,使用madam -D 命令查看RAID的详细信息

mdadm -D /de/md0

使用ext4分区格式化磁盘

mkfs.ext4 /dev/md0

挂载并验证

mount /dev/md0 /mnt
df -h

创建RAID10

创建一个RAID10设备:这里采用 /dev/sdb[1-4] 4个分区做实验
停止已经创建的RAID,并移除设备

umount /mnt/
mdadm --stop /dev/md0
mdadm --misc --zero-superblock /dev/sdb1
mdadm --misc --zero-superblock /dev/sdb2
mdadm --misc --zero-superblock /dev/sdb3
cat /proc/mdstat

创建RAID10

mdadm -Cv /dev/md0 -L10 -n4 /dev/sdb[1-4]

查看RAID10构建的进度

cat /proc/mdstat

这样RAID10就创建好了,关于RAID10 的使用,和前面的RAID5大同小异

RAID5的运维操作

接下来学习RAID5的运维
RAID的运维操作,首先创建一个RAID5,加上一个热备盘

mdadm -Cv /dev/md0 -L5 -n3 /dev/sdb[1-3] --spare-devices=1 /dev/sdb4  #创建一个热备盘是/dev/sdb4
# -xn创建空闲盘
#  --spare-devices=n +磁盘  (创建热备盘)
# mdadm -Cv /dev/md0 -L5 -n3 /dev/sdb[1,2,3] -x1 /dev/sdb5

查看构建的进度

cat /proc/mdstat

构建完成之后,查看RAID的详细信息

mdadm -D /dev/md0

可以看到除了3个active 的设备之外,还有一个备用盘/dev/sdb4
下一步模拟硬盘故障

mdadm -f /dev/md0 /dev/sdb1

再次查看构建的进度

cat /proc/mdstat

发现正在重建RAID,再查看RAID的详细信息

mdadm -D /dev/md0

从上面的结果来看,原来的热备盘/dev/sdb4 正在参与RAID的重建,而原来的/dev/sdb1变成了坏盘,
再查看以下RAID构建的信息

cat /proc/mdstat

这是,RAID已经构建完毕,完成后再次查看RAID的详细信息

mdadm -D /dev/md0

热备盘移除

mdadm -r /dev/md0 /dev/sdb1

查看RAID的详细信息

mdadm -D /dev/md0

格式化RAID并进行挂载

mkfs.ext4 /dev/md0
mount /dev/md0 /mnt
df -h

监视/动态(查看RAID能否正常运行)

watch -n1 
watch -n1 cat/proc/mdstat
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值