RAID概念
- 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。 磁盘阵列是由很多价格较便宜的磁盘,以硬件(RAID卡)或软件(MDADM)形式组合成一个容量巨大的磁盘组,利用多个磁盘组合在一起,提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。 磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中
- 为什么要用RAID
- RAID(Redundant Arrays of Independent Disks,磁盘阵列):把相同的数据存储在多个硬盘的不同的地方的方法
- 通过RAID可以提高磁盘I/O能力(磁盘并行读写)以及提高耐用性(磁盘冗余)。
- RAID级别:多种磁盘组织在一起的工作方式有所不同
软件 RAID 和硬件 RAID
- 软件 RAID 的性能较低,因为其使用主机的资源。 需要加载 RAID 软件以从软件 RAID 卷中读取数据。在加载 RAID 软件前,操作系统需要引导起来才能加载 RAID 软件。在软件 RAID 中无需物理硬件。零成本投资。
- 硬件 RAID 的性能较高。他们采用 PCI Express 卡物理地提供有专用的 RAID 控制器。它不会使用主机资源。他们有 NVRAM 用于缓存的读取和写入。缓存用于 RAID 重建时,即使出现电源故障,它会使用后备的电池电源保持缓存。对于大规模使用是非常昂贵的投资。
实现方式
- 外接式磁盘阵列:通过扩展卡提供适配能力
- 内接式磁盘阵列:主板集成RAID控制器
- Software RAID:在软件层面实现RAID
RAID级别
- RAID 0:Data Stripping数据分条技术
- RAID 1:磁盘镜像
- RAID 2:带海明码校验
- RAID 3:带奇偶校验码的并行传送
- RAID 4:带奇偶校验码的独立磁盘结构
- RAID 5:分布式奇偶校验的独立磁盘结构
- RAID 10:高可靠性与高效磁盘结构
- RAID 01:RAID0和RAID1技术结合起来
- RAID 的两个关键目标是提高数据可靠性和 I/O 性能。
RAID 中主要有三个关键概念和技术:镜像( Mirroring )、数据条带( Data Stripping )和数据校验( Data parity )。
- 1.镜像:
- 镜像是一种冗余技术,为磁盘提供保护功能,防止磁盘发生故障而造成数据丢失。
- 2.数据条带:
- 数据条带技术将数据以块的方式分布存储在多个磁盘中,从而可以对数据进行并发处理。这样写入和读取数据就可以在多个磁盘上同时进行,并发产生非常高的聚合 I/O ,有效提高了整体 I/O 性能,而且具有良好的线性扩展性。
- 3.数据校验
- 数据校验是一种冗余技术,它用校验数据来提供数据的安全,可以检测数据错误,并在能力允许的前提下进行数据重构。
RAID 主要优势有如下几点
- (1) 大容量
- 这是 RAID 的一个显然优势,它扩大了磁盘的容量,由多个磁盘组成的 RAID 系统具有海量的存储空间。现在单个磁盘的容量就可以到 1TB 以上,这样 RAID 的存储容量就可以达到 PB 级,大多数的存储需求都可以满足。一般来说, RAID 可用容量要小于所有成员磁盘的总容量。不同等级的 RAID 算法需要一定的冗余开销,具体容量开销与采用算法相关。如果已知 RAID 算法和容量,可以计算出 RAID 的可用容量。通常, RAID 容量利用率在 50% ~ 90% 之间。
- (2) 高性能
- RAID 的高性能受益于数据条带化技术。单个磁盘的 I/O 性能受到接口、带宽等计算机技术的限制,性能往往很有 限,容易成为系统性能的瓶颈。通过数据条带化, RAID 将数据 I/O 分散到各个成员磁盘上,从而获得比单个磁盘成倍增长的聚合 I/O 性能。
- (3) 可靠性
- 可用性和可靠性是 RAID 的另一个重要特征。从理论上讲,由多个磁盘组成的 RAID 系统在可靠性方面应该比单个磁盘要差。这里有个隐含假定:单个磁盘故障将导致整个 RAID 不可用。 RAID 采用镜像和数据校验等数据冗余技术,打破了这个假定。 镜像是最为原始的冗余技术,把某组磁盘驱动器上的数据完全复制到另一组磁盘驱动器上,保证总有数据副本可用。 比起镜像 50% 的冗余开销 ,数据校验要小很多,它利用校验冗余信息对数据进行校验和纠错。 RAID 冗余技术大幅提升数据可用性和可靠性,保证了若干磁盘出错时,不 会导致数据的丢失,不影响系统的连续运行。
- (4) 可管理性
- 实际上, RAID 是一种虚拟化技术,它对多个物理磁盘驱动器虚拟成一个大容量的逻辑驱动器。对于外部主机系统来说, RAID 是一个单一的、快速可靠的大容量磁盘驱动器。这样,用户就可以在这个虚拟驱动器上来组织和存储应用系统数据。 从用户应用角度看,可使存储系统简单易用,管理也很便利。 由于 RAID 内部完成了大量的存储管理工作,管理员只需要管理单个虚拟驱动器,可以节省大量的管理工作。 RAID 可以动态增减磁盘驱动器,可自动进行数据校验和数据重建,这些都可以 大大简化管理工作。
RAID几种常见的类型RAID几种常见的类型
RAID-0 (条带化)
- 条带 (strping),也是我们最早出现的RAID模式
- 需磁盘数量:2块以上(大小最好相同),是组建磁盘阵列中最简单的一种形式,只需要2块以上的硬盘即可.
- 特点:成本低,可以提高整个磁盘的性能和吞吐量。RAID 0没有提供冗余或错误修复能力,速度快.
- 任何一个磁盘的损坏将损坏全部数据;磁盘利用率为100%
RAID-1 (镜像化)
- mirroring(镜像卷),需要磁盘两块以上
- 原理:是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件,(同步)
- RAID 1 mirroring(镜像卷),至少需要两块硬盘,raid大小等于两个raid分区中最小的容量(最好将分区大小分为一样),数据有冗余,在存储时同时写入两块硬盘,实现了数据备份;
- 磁盘利用率为50%,即2块100G的磁盘构成RAID1只能提供100G的可用空间。
RAID-5 (分布式奇偶校验)
- 需要三块或以上硬盘,可以提供热备盘实现故障的恢复;只损坏一块,没有问题。但如果同时损坏两块磁盘,则数据将都会损坏。
- 空间利用率: (n-1)/n
- RAID-6( 双分布式奇偶校验磁盘)
- RAID 6 和 RAID 5 相似但它有两个分布式奇偶校验。大多用在大数量的阵列中。我们最少需要4个驱动器,即使有2个驱动器发生故障,我们依然可以更换新的驱动器后重建数据。
RAID-10 (镜像+条带)
- RAID 10是将镜像和条带进行两级组合的RAID级别,第一级是RAID1镜像对,第二级为RAID 0。
创建软raid(基于V10-server-GFB-x86)
1、查看并确定需要配置的磁盘(如图所示,有3块1G的盘做测试)
- 使用系统自带mdadm创建raid1并有一个热备
[root@localhost ~]# mdadm -Cv /dev/md1 -a yes -l1 -n2 /dev/sdb /dev/sdc -x1 /dev/sdd
- 查看状态 cat /proc/mdstat
#相关信息,chunk大小及RAID等级说明,后面的两个U代表正常,若不是U则代表有误
- 使用工具查看状态 mdadm -D /dev/md1
[root@localhost 桌面]# mdadm -D /dev/md1
/dev/md1: #RAID的设备文件名
Version : 1.2
Creation Time : Wed Dec 1 11:53:21 2021 #创建RAID的时间
Raid Level : raid1 #RAID的等级
Array Size : 1046528 (1022.00 MiB 1071.64 MB) #整组RAID的可用量
Used Dev Size : 1046528 (1022.00 MiB 1071.64 MB) #每颗磁盘的可用容量
Raid Devices : 2 #组成RAID的磁盘数量
Total Devices : 3 #包括spare的总磁盘数
Persistence : Superblock is persistent
Update Time : Wed Dec 1 11:53:27 2021
State : clean #目前这个RAID的使用状态
Active Devices : 2 #启动的设备数量
Working Devices : 3 #目前使用于此RAID的设备数量
Failed Devices : 0 #损坏的设备数量
Spare Devices : 1 #预备磁盘的数量
Consistency Policy : resync
Name : localhost.localdomain:1 (local to host localhost.localdomain)
UUID : b30b8efc:5567d7d9:08a3b0b4:7ac8eccc
Events : 17
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
2 8 48 - spare /dev/sdd
- 格式化并挂载使用
# mkfs.xfs /dev/md1 #格式化刚刚创建的RAID 1
# mkdir /test #创建挂载点
# mount /dev/md1 /test #挂载
# df -hT /test #确认挂载,使用起来和普通文件系统没有区别
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/md1 xfs 1016M 40M 977M 4% /test
#将挂载信息写入/etc/fstab中进行开机自动挂载了,设备名可以是/dev/md1,也可以是设备的UUID。
# blkid /dev/md1 #查询该RAID 5的UUID
/dev/md1: UUID="34f71cfc-cf64-406e-bee6-fe364e15c2cb" BLOCK_SIZE="512" TYPE="xfs"
vim /etc/fstab #打开/etc/fstab,写入下面内容
UUID=34f71cfc-cf64-406e-bee6-fe364e15c2cb /test xfs defaults 0 0
#mount -a
常见问题
1、配置时报错
如提示:报错,md设备只能用md命名,正确的命名
2、更换坏盘(这里用命令模拟坏盘)
可以看到热备盘已经自动顶替故障盘
- 删除坏盘
- 添加新盘
- 删除raid
- 取消挂载
- 停止raid设备
- 清除磁盘中的raid标识
- 常用参数介绍
mdadm命令常见参数解释:
-A 激活磁盘阵列
-C 建立一个新阵列
-D 打印阵列设备的信息
-G 改变阵列大小或形态
-S 停止阵列 -r 移除设备
-l 设定磁盘阵列的级别
-n 指定阵列磁盘的数量
-x 指定阵列中备用盘的数量
-f 将设备状态定为故障
-a 添加设备到阵列
-v 显示详细信息软RAID