一、RAID (独立冗余磁盘阵列)
RAID技术通过把多个硬盘设备组合成一个容量更大、安全性更好的磁盘阵列,并把数据切割成多个区段后分别存放在各个不同的物理硬盘设备上,然后利用分散读写技术来提升磁盘阵列整体的性能,同时把多个重要数据的副本同步到不同的物理硬盘设备上,从而起到了非常好的数据冗余备份效果。
主要有4种最常见的RAID方案:
RAID0级别,至少2个硬盘,可用容量为所有盘空间,读写性能快(可同时并发读写),但是完全性低,有一个盘坏了,数据全部异常。
RAID1级别,至少2个硬盘,可用容量减半,追求最大安全性,只要有一块硬盘可用,数据就不受影响。
RAID5级别,最少3个硬盘,可用容量减一块硬盘,这个硬盘作冗余检测,如果阵列中存放数据的硬盘损坏一个,数据不受影响。为防止冗余硬盘出现问题,短时间更换硬盘,实际应用是用2个硬盘作冗余检测盘,一块工作,一块闲置,如果出问题,第一时间更换冗余硬盘,防止影响数据。
RAID10级别,最少4块硬盘,两个做RAID1,在此基础上再做RAID0,容量为一半,综合了RAID0和RAID1的优点。
二、部署硬盘阵列
虚拟机里整四个相同大小的硬盘,选用同一类型硬盘。linux 里用来管理RAID硬盘阵列使用的是mdadm命令,英语全称“Multiple Devices Admin”,语法格式为“mdadm 参数 硬盘名称”
其常用参数及作用
参数 | 作用 |
-a | 检测设备名称 |
-n | 指定设备数量 |
-l | 指定RAID级别 |
-C | 创建阵列 |
-v | 显示过程 |
-f | 模拟设备损坏 |
-r | 移除设备 |
-Q | 查看摘要信息 |
-D | 查看详细信息 |
-S | 停止RAID磁盘阵列 |
实例一 创建RAID0磁盘阵列
创建由4个硬盘组成的RAID0的磁盘阵列,命令:mdadm -Cv /dev/md0 -n4 -l0 /dev/sdb /dev/sdc /dev/sdd /dev/sde。
[root@linuxprobe ~]# mdadm -Cv /dev/md0 -n4 -l0 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: chunk size defaults to 512K
mdadm: partition table exists on /dev/sdb
mdadm: partition table exists on /dev/sdb but will be lost or
meaningless after creating array
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
用lsblk查看下硬盘情况。
[root@linuxprobe ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 30G 0 disk
└─md0 9:0 0 120G 0 raid0
sdc 8:32 0 30G 0 disk
└─md0 9:0 0 120G 0 raid0
sdd 8:48 0 30G 0 disk
└─md0 9:0 0 120G 0 raid0
sde 8:64 0 30G 0 disk
└─md0 9:0 0 120G 0 raid0
sr0 11:0 1 4.4G 0 rom
mdadm -D 命令查看设备详细信息
[root@linuxprobe ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Feb 28 22:14:04 2023
Raid Level : raid0
Array Size : 125759488 (119.93 GiB 128.78 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Tue Feb 28 22:14:04 2023
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K
Consistency Policy : none
Name : linuxprobe.localdomain:0 (local to host linuxprobe.localdomain)
UUID : ca769e2b:7f9d12f0:79ad062e:589a666c
Events : 0
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
2 8 48 2 active sync /dev/sdd
3 8 64 3 active sync /dev/sde
利用mkfs.xfs /dev/md0 格式化硬盘就可以瓜挂载使用,或者用fdisk/gdisk 分区后,格式化再使用挂载使用。
实例二 创建RAID 5 磁盘阵列
三个盘创建创建RAID 5 阵列,一个盘做热备盘。把上面的停止RAID,mdadm -S /dev/md0
mdadm -Cv /dev/md5 -n3 -l5 -x1 /dev/sd{b,c,d,e} 三个硬盘创建RAID 5,一个做热备盘。
[root@linuxprobe ~]# mdadm -Cv /dev/md5 -n3 -l5 -x1 /dev/sd{b,c,d,e}
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: /dev/sdb appears to be part of a raid array:
level=raid0 devices=4 ctime=Tue Feb 28 22:14:04 2023
mdadm: partition table exists on /dev/sdb but will be lost or
meaningless after creating array
mdadm: /dev/sdc appears to be part of a raid array:
level=raid0 devices=4 ctime=Tue Feb 28 22:14:04 2023
mdadm: /dev/sdd appears to be part of a raid array:
level=raid0 devices=4 ctime=Tue Feb 28 22:14:04 2023
mdadm: /dev/sde appears to be part of a raid array:
level=raid0 devices=4 ctime=Tue Feb 28 22:14:04 2023
mdadm: size set to 31439872K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
然后对/dev/md5 利用gdisk/fdisk进行分区挂载使用。也可以用lvm逻辑卷进行分卷。