一、RAID的简述
RAID是英文(Redundant Array of Independent Disks)的缩写,翻译成中文是“独立磁盘冗余阵列”, 简称磁盘阵列(Disk Array)。
简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。
组成磁盘阵列的不同方式称为RAID级别(RAID Levels),现在已拥有了从 RAID 0 到 6 七种基本的RAID 级别。另外,还有一些基本RAID级别的组合形式,如RAID 10(RAID 0与RAID 1的组合)等等.
RAID技术的两大特点:一是速度、二是安全
二、标准RAID
最为常用的是下面的几种RAID形式: RAID 0、RAID 1、RAID 5、RAID 10
1)RAID 0 (称为带区卷,性能最佳)
RAID 0技术把多块物理硬盘设备(至少两块)通过硬件或软件的方式串联在一起,组成一个大的卷组,并将数据一次写入到各个物理硬盘中。这样硬盘设备的读写性能会提升数倍,但是若任意一块硬盘发生故障将导致整个系统的数据都受到破坏。
优点:使用 n 颗硬盘,即可拥有将近 n 倍的读写效能,读写性能是所有RAID级别中最高的。
缺点:不提供数据冗余,因此一旦用户数据损坏,损坏的数据将无法得到恢复,RAID0运行时只要其中任一块硬盘出现问题就会导致整个数据的故障。
硬盘数量:最少 2 个。
2)RAID 1 (称为镜像卷,完整备份)
RAID1是将一个两块硬盘所构成RAID磁盘阵列,其容量仅等于一块硬盘的容量,因为另一块只是当作数据“镜像”
优点:安全性依照数组里的实体硬盘数量倍数成长。
缺点:空间利用率是所有 RAID 中最没有效率的。
硬盘数量:最少 2 个,磁盘空间使用率:50%,故成本最高
3)RAID 5 (性能与数据备份的均衡考虑)
RAID 5技术把多块硬盘设备(至少三块)的数据奇偶校验信息保存到其他硬盘设备中。RAID 5磁盘阵列组中数据的奇偶校验信息并不是单独保存到某一块硬盘设备中,而是存储到除自身以外的其他每一块硬盘设备上,这样的好处是其中任何一设备损坏后不至于出现致命缺陷;
RAID5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
优点:兼顾空间利用率与安全性。
缺点:需要额外的运算资源,仅能忍受 1 个硬盘损毁。
硬盘数量:至少 3 个。
4)RAID 10
RAID 10技术是RAID1+RAID0技术的一个组合体。如下图,RAID 10技术需要至少四块硬盘来组建,其中先分别两两制作成RAID 1磁盘阵列,以保证数据的安全性;然后再对两个RAID 1磁盘阵列实施RAID 0技术,进一步提高硬盘设备的读写速度。这样子从理论上讲,只要坏的不是同一组中的所有硬盘,那么最多可以损坏50%的硬盘设备而不丢失数据。RAID 10技术继承了RAID 0的高读写速度和RAID 1的数据安全性。
磁盘阵列教程
RAID5
第一步:在虚拟机创建几个硬盘(至少三个)
第二步:给磁盘分区
第三步:创建RAID5磁盘阵列
[root@localhost ~]# mdadm -Cv /dev/md/my_raid5 -l5 -n2 /dev/sd[bc]1 -x1 /dev/sdd1
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20953088K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md/my_raid5 started. // /dev/md/my_raid5已启动.
-Cv: 用于创建RAID阵列并显示详细信息
/dev/md/my_raid5: 这是要创建的RAID阵列的设备文件名
-l5: 用于指定RAID级别。在这个例子中,RAID级别为5
-n2: 指定使用几块硬盘创建RAID,n2表示使用2块硬盘创建RAID
/dev/sd[bc]1: 这是要参与RAID阵列的硬盘设备文件名。/dev/sd[bc]1表示/dev/sdb和/dev/sdc两块硬盘的第一分区
-x1: 指定使用几块硬盘做RAID的热备硬盘,x1表示保留1块空闲的硬盘作备用
/dev/sdd1: 指定用于备用的磁盘
格式化
[root@localhost ~]# mkfs.xfs /dev/md/my_raid5
挂载
[root@localhost ~]# mount /dev/md/my_raid5 /mnt/disk/
[root@localhost ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/md127 xfs 20G 33M 20G 1% /mnt/disk
模拟一个盘发生故障
可以使用
[root@localhost ~]# watch -n 1 mdadm -D /dev/md/my_raid5
来监控RAID5
-n 更新间隔
mdadm /dev/md/my_raid5 -f /dev/sdb1 命令用于将 /dev/sdb1 硬盘加入到现有的 /dev/md/my_raid5 磁盘阵列中。-f 选项用于强制将硬盘加入到磁盘阵列中,即使它不是阵列中所有硬盘之一。(这会导致不是处于备份状态的sdb1处于备份状态)
RAID10
磁盘分区如上面RAID5一样
创建2个RAID1
[root@localhost ~]# mdadm -Cv /dev/md/my_raid1 -l1 -n2 /dev/sd[bc]1
[root@localhost ~]# mdadm -Cv /dev/md/my_raid1 -l1 -n2 /dev/sd[de]1
合并2个RAID1为RAID0
[root@localhost ~]# mdadm -Cv /dev/md/my_raid10 -l0 -n2 /dev/md/my_raid1 /dev/md/my_raid1_
[root@localhost ~]# mdadm -D /dev/md/my_raid10
/dev/md/my_raid10:
Version : 1.2
Creation Time : Fri Jun 23 15:31:26 2023
Raid Level : raid0
Array Size : 41871360 (39.93 GiB 42.88 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Fri Jun 23 15:31:26 2023
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K
Consistency Policy : none
Name : localhost.localdomain:my_raid10 (local to host localhost.localdomain)
UUID : ba69a1ed:71f56ffa:f3524207:ee32ed2b
Events : 0
Number Major Minor RaidDevice State
0 9 127 0 active sync /dev/md/my_raid1
1 9 126 1 active sync /dev/md/my_raid1_
查看磁盘状态
[root@localhost md]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md127 : active raid5 sdc1[3] sdd1[2](S) sdb1[0]
20953088 blocks super 1.2 level 5, 512k chunk, algorithm 2 [2/2] [UU]
unused devices: <none>
/proc/mdstat 文件提供了关于正在运行的 RAID 设备的状态信息。下面是各个字段的含义:
Personalities:列出支持的 RAID 级别和算法。在这个例子中,支持 raid6、raid5 和 raid4。
md127:RAID 设备的名称。在这个例子中,设备名为 md127。
active:表示 RAID 设备处于活动状态。
raid5:表示 RAID 级别为 5。
sdc1[3]:表示 RAID 设备中参与条带的硬盘,其中 sdc1 是硬盘设备文件名,3 是该硬盘在条带中的位置。
sdd1[2](S):表示 RAID 设备中处于同步状态的硬盘,其中 sdd1 是硬盘设备文件名,2 是该硬盘在条带中的位置,S 表示该硬盘处于同步状态。
sdb1[0]:表示 RAID 设备中的其他硬盘,其中 sdb1 是硬盘设备文件名,0 是该硬盘在条带中的位置。
20953088 blocks:表示 RAID 设备的总块数。
super:表示 RAID 设备的超级块信息。在这个例子中,超级块版本号为 1.2。
level:表示 RAID 设备的级别。在这个例子中,级别为 5。
512k chunk:表示 RAID 设备使用的块大小为 512KB。
algorithm:表示 RAID 设备使用的条带化算法。在这个例子中,算法为 2(RAID-5 (tears and fences))。
[2/2]:表示 RAID 设备使用的硬盘数量。在这个例子中,使用了 2 块硬盘。
[UU]:表示 RAID 设备的状态。在这个例子中,所有硬盘都处于 Up 状态,表示 RAID 设备正常工作。
unused devices:列出没有使用的硬盘设备。在这个例子中,没有未使用的设备。
[root@localhost md]# mdadm -D /dev/md/my_raid5
/dev/md/my_raid5:
Version : 1.2
Creation Time : Fri Jun 23 14:25:00 2023
Raid Level : raid5
Array Size : 20953088 (19.98 GiB 21.46 GB)
Used Dev Size : 20953088 (19.98 GiB 21.46 GB)
Raid Devices : 2 //使用的硬盘数量
Total Devices : 3 //总共可以使用的硬盘数量
Persistence : Superblock is persistent //存储方式
Update Time : Fri Jun 23 14:25:30 2023
State : clean
Active Devices : 2 //活动状态的硬盘数量
Working Devices : 3 //工作状态的硬盘数量
Failed Devices : 0 //故障的硬盘数量
Spare Devices : 1 //处于备用状态的硬盘数量
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : localhost.localdomain:my_raid5 (local to host localhost.localdomain)
UUID : a323774b:d03c7f73:8de7c00e:ed2e0eb5
Events : 18
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
3 8 33 1 active sync /dev/sdc1
2 8 49 - spare /dev/sdd1
删除磁盘阵列
[root@localhost ~]# mdadm --stop /dev/md/my_raid5
mdadm: stopped /dev/md/my_raid5
标签:md,RAID,dev,raid5,my,硬盘,磁盘阵列 From: https://www.cnblogs.com/xiaoying23/p/18088220