RAID磁盘阵列介绍
是Redundant Array of Independent Disks的缩写,中文简称为独立冗余磁盘阵列
把多块独立的物理硬盘按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术
组成磁盘阵列的不同方式称为RAID级别(RAID Levels)
常用的RAID级别
RAID 0 , RAID 1 ,RAID 5 ,RAID 6,RAID 1+0等
RAID 磁盘阵列详解
RAID 0 (条带卷)(两块以上)
RAID 0连续以为位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但他没有数据冗余
RAID 0只是单纯地提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响1到所有数据
RAID 0不能应用于数据安全性要求高的场合
RAID 1 (镜像卷):必须是两块
通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据
当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取新能
RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不是需要重组失效的数据
RAID 5
N(N>=3)块盘组成阵列,一份数据产生N-1个条带,同时还有1份校验数据,共N份数据在N块盘上循环均衡存储
N块盘同时读写,读性能很高,但由于有校验机制的问题,写性能相对不高
(N-1)/N磁盘利用率
可靠性高,允许坏1块盘,不影响所有数据(但是换一块硬盘后数据恢复有过程)
RAID 6
N(N>=4)块盘组成阵列
(N-2)/N磁盘利用率
与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块
两个独立的奇偶系统使用不同的算法,即使两块磁盘同时失效也不会影响数据的使用
相对于RAID 5有更大的“写损失”,因此写性能较差
RAID 1+0
即先做RAID1,在做RAID0
N(偶数,N>=4)块盘两两镜像后,再组合成一个RAID 0
N/2磁盘利用率
N/2块盘同时写入,N块盘同时读取
性能高,可靠性高
(所有计费有关的业务用RAID 1+0)
RAID 10不适合计费有关的业务是因为一块硬盘挂了,只能读,不能写,对持续性业务不适合
RAID卷的比较
阵列卡介绍
阵列卡是用来实现RAID功能的板卡
RAID卡一般分为硬RAID卡和软RAID卡两种
通过硬件来实现RAID功能的就是硬RAID,通常是由I/O处理器、硬盘控制器、硬盘连接器和缓存等一系列组件构成的
不同的RAID卡支持的RAID功能不同
例如支持RAID0、RAID1、RAID5、RAID10等
RAID卡两个重要功能
可以达到单个磁盘驱动器的几倍,几十倍甚至上百倍速率;
可以提供容错能力
RAID卡的接口类型
IDE接口、SCSI接口、SATA接口和SAS接口(IDE和SCSI不常用)
常用接口类型介绍
SATA接口:SATA是“Serial ATA”的缩写,主要用在主板和大量存储设备之间传输数据。拥有这种接口的硬盘又叫串口硬盘,以采用串行方式传输数据;支持热拔热插的接口
SAS接口:SAS的英文全称为“Serial Attached SCSI”是新一代的SCSI技术,称为序列式SCSI,SAS可以看做是SATA与SCSI的结合体,是同时发挥两者的优势产生的,主要用在周边零件的数据传输上
和SATA硬盘相同,都是采用串行技术以获得更高的传输速度
SAS的接口技术可以向下兼容SATA设备
阵列卡的缓存
缓存(Cache)是RAID卡与外部总线交换数据的场所,RAID卡先将数据传送到缓存,再由缓存和外边数据总线
交换数据
缓存的大小与速度是直接关系到RAID卡的实际传输速度的重要因素
不同的RAID卡出厂时配备的内存容量不同,一般为几兆到数百兆容量不等
mdadm -C 创建磁盘
-n # 使用#块盘创建raid
-l # raid级别#
-a {
yes/no}:是否自动创建目标raid设备的设备文件
-x # 指明空磁盘的个数(备份)
例mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd{
b,c,d,e}1 用4块硬盘键raid5,三块使用,一块备份 (最后的1代表分区号)
删除raid信息:mdadm--zero-superblock /dev/sdb1
mdadm -D /dev/md0 显示raid 详细信息
mdadm -S /dev/md0 停止设备
mdadm -D -s /dev/md0 >> /etc/mdadm.conf 生成配置文件
mdadm -A -s /dev/md0 激活设备
mdadm -R /dev/md0 强制启动
mdadm /dev/md0 -f /dev/sdb1 设置sdb1为坏盘
madam /dev/md0 -r /dev/sdb1 移除坏盘
madam /dev/md0 -a /dev/sdb1 raid里添加硬盘
创建RAID卷
永久挂载RAID
1.获取该RAID的UUID
madam --detail /dev/md0 | grep -i uuid
UUID : 8a0dc71c:91c3baf3:00f998c9:b9d87aof(此uuid是设备向系统注册的uuid)
2.开始设置mdadm.conf
vim /etc/mdadm.conf
ARRAY /dev/md0 UUID=8a0dc71c:91c3baf3:00f998c9:b9d87a0f
3.获取测试信息
blkid /dev/md0(此uuid是全局uuid,用来唯一的代表这个设备)
/dev/md0: UUID=”6047a66b-4ceb-4322-8dc8-bcec29a81a09” TYPE=”ext4”
4.设置开机自启动
vi /etc/fstab
UUID=6047a66b-4ceb-4322-8dc8-bcec29a81a09 /data ext4 defaults 0 0
5.让/etc/fatab配置生效
mount -a
6.测试
df -Th
删除RAID
mdadm -S /dev/md5 停止raid
mdadm --zero-superblock /dev/sdb1 删除sdb1信息
mdadm --zero-superblock /dev/sdc1 删除sdc1信息
mdadm --zero-superblock /dev/sdd1 删除sdb1信息
mdadm --zero-superblock /dev/sde1 删除sdb1信息
RAID配置
raid0 配置
添加五块大小为20G的硬盘,并重启虚拟机,并查看
[root@server1 ~]# ls /dev/
或
[root@server1 ~]# fdisk -l
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
磁盘 /dev/sde:21.5 GB, 21474836480 字节,41943040 个扇区
磁盘 /dev/sdf:21.5 GB, 21474836480 字节,41943040 个扇区
[root@server1 ~]# fdisk /dev/sdb //fdisk /dev/sdc //过程一致,现只列出sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x5563d86e 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):L //查看分区内型ID号
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{
K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x5563d86e
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 fd Linux raid autodetect
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@server1 ~]# fdisk -l //分区结束并查看
/dev/sdb1 2048 41943039 20970496 fd Linux raid autodetect
/dev/sdc1 2048 41943039 20970496 fd Linux raid autodetect
查看是否安装mdadm软件(软raid工具)
[root@server1 ~]# rpm -q mdadm
mdadm-4.0-5.el7.x86_64
创建raid 0
[root@server1 ~]# mdadm -C -v /dev/md0 -l0 -n2 /dev/sd[b-c]1
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
-C:创建 -v:详细过程 /dev/mdo:定义在/dev下,命名为mdo -l0:级别
-n:数量(磁盘)
查看创建raid0的磁盘
[root@server1 ~]# mdadm -D /dev/md0 (查看磁盘阵列的详细信息)
/dev/md0:
Version : 1.2
Creation Time : Wed Dec 9 09:34:19 2020
Raid Level : raid0
Array Size : 41908224 (39.97 GiB 42.91 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Wed Dec 9 09:34:19 2020
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K
Consistency Policy : none
Name : server1:0 (local to host server1)
UUID : d46e1a08:d8e5c8be:e5bad811:bf46fded
Events : 0
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
另一种方式查看
[root@server1 ~]# cat /proc/mdstat //查看状态
Personalities : [raid0]
md0 : active raid0 sdc1[1] sdb1[0]
41908224 blocks super 1.2 512k chunks
unused devices: <none