一、RAID:磁盘冗余阵列
1、核心关注点
RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,通常简称为磁盘阵列。简单地说, RAID 是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术。
1、镜像( Mirroring ):镜像是一种冗余技术,为磁盘提供保护功能,防止磁盘发生故障而造成数据丢失。对于 RAID 而言,采用镜像技术 典型地 将会同时在阵列中产生两个完全相同的数据副本,分布在两个不同的磁盘驱动器组上。镜像提供了完全的数据冗余能力,当一个数据副本失效不可用时,外部系统仍可正常访问另一副本,不会对应用系统运行和性能产生影响。而且,镜像不需要额外的计算和校验,故障修复非常快,直接复制即可。镜像技术可以从多个副本进行并发读取数据,提供更高的读 I/O 性能,但不能并行写数据,写多个副本会会导致一定的 I/O 性能降低。 镜像技术提供了非常高的数据安全性,其代价也是非常昂贵的,需要至少双倍的存储空间。高成本限制了镜像的广泛应用,主要应用于至关重要的数据保护,这种场合下数据丢失会造成巨大的损失。另外,镜像通过“ 拆分 ”能获得特定时间点的上数据快照,从而可以实现一种备份窗口几乎为零的数据备份技术。
2、数据条带( Data Stripping ):磁盘存储的性能瓶颈在于磁头寻道定位,它是一种慢速机械运动,无法与高速的 CPU 匹配。再者,单个磁盘驱动器性能存在物理极限, I/O 性能非常有限。 RAID 由多块磁盘组成,数据条带技术将数据以块的方式分布存储在多个磁盘中,从而可以对数据进行并发处理。这样写入和读取数据就可以在多个磁盘上同时进行,并发产生非常高的聚合 I/O ,有效提高了整体 I/O 性能,而且具有良好的线性扩展性。这对大容量数据尤其显著,如果不分块,数据只能按顺序存储在磁盘阵列的磁盘上,需要时再按顺序读取。而通过条带技术,可获得数倍于顺序访问的性能提升。 数据条带技术的分块大小选择非常关键。条带粒度可以是一个字节至几 KB 大小,分块越小,并行处理能力就越强,数据存取速度就越高,但同时就会增加块存取的随机性和块寻址时间。实际应用中,要根据数据特征和需求来选择合适的分块大小,在数据存取随机性和并发处理能力之间进行平衡,以争取尽可能高的整体性能。 数据条带是基于提高 I/O 性能而提出的,也就是说它只关注性能, 而对数据可靠性、可用性没有任何改善。实际上,其中任何一个数据条带损坏都会导致整个数据不可用,采用数据条带技术反而增加了数据发生丢失的概念率。
3、数据校验( Data parity ):镜像具有高安全性、高读性能,但冗余开销太昂贵。数据条带通过并发性来大幅提高性能,然而对数据安全性、可靠性未作考虑。数据校验是一种冗余技术,它用校验数据来提供数据的安全,可以检测数据错误,并在能力允许的前提下进行数据重构。相对镜像,数据校验大幅缩减了冗余开销,用较小的代价换取了极佳的数据完整性和可靠性。数据条带技术提供高性能,数据校验提供数据安全性, RAID 不同等级往往同时结合使用这两种技术。 采用数据校验时, RAID 要在写入数据同时进行校验计算,并将得到的校验数据存储在 RAID 成员磁盘中。校验数据可以集中保存在某个磁盘或分散存储在多个不同磁盘中,甚至校验数据也可以分块,不同 RAID 等级实现各不相同。当其中一部分数据出错时,就可以对剩余数据和校验数据进行反校验计算重建丢失的数据。校验技术相对于镜像技术的优势在于节省大量开销,但由于每次数据读写都要进行大量的校验运算,对计算机的运算速度要求很高,必须使用硬件 RAID 控制器。在数据重建恢复方面,检验技术比镜像技术复杂得多且慢得多。 海明校验码和 异或校验是两种最为常用的 数据校验算法。海明校验码是由理查德.海明提出的,不仅能检测错误,还能给出错误位置并自动纠正。海明校验的基本思想是:将有效信息按照某种规律分成若干组,对每一个组作奇偶测试并安排一个校验位,从而能提供多位检错信息,以定位错误点并纠正。可见海明校验实质上是一种多重奇偶校验。异或校验通过异或逻辑运算产生,将一个有效信息与一个给定的初始值进行异或运算,会得到校验信息。如果有效信息出现错误,通过校验信息与初始值的异或运算能还原正确的有效信息。
可以加快数据读写速度
加强数据可靠性
2、RAID 0级别(条带)
优势
增加数据读写速度(底层至少两块硬盘,其读写速度是一块硬盘的两倍。如果有N块硬盘,那么读写速度就是一块硬盘的N倍,将一份数据分成多份,分别来存储到硬盘上,所以读写速度快)
劣势
没有数据冗余功能(即备份,坏掉一块硬盘,存在硬盘上的文件就能不能读取了,报废)
3、RAID 1级别(镜像)
底层最少两块真实的硬盘
优势
增加数据可靠性(将一份文件进行备份,1T中一半时真实数据,一半时备份)
劣势
保证的是硬盘的安全性,一块硬盘丢失,另一个硬盘上还存在数据,可以读写,
无法保证数据的安全性,假如我不小心把数据误删了,那么两块硬盘上的数据都会丢失
4、RAID 5级别()
优势
加快数据读写速度、增加可靠性(RAID 0)
存储数据、数据校验码
磁盘空间利用率高
至少3块硬盘
最多支持同时坏1块盘
实际存储容量n-1/n
5、RAID 6级别()
优势
加快数据读写速度、增强可靠性
有校验机制
与RAID 5 唯一不同的地方支持同时坏两块盘
因为同时存了两种校验码,
一种是针对原始数据生成
另一种是针对inode生成
6、RAID 10级别(0和1的组合)
优势
(1)RAID10的读性能将优于RAID01 (2)较高的IO性能 (3)有数据冗余 (4)无单点故障 (5)安全性能高
劣势
浪费1/2存储空间,成本高
至少四块盘
二、RAID使用建议
1、建议
同品牌、同型号、同容量创建RAID
不要用同一块用硬盘上的多个分区创建RAID
RAID实现方式
软RAID
所有功能通过软件模拟实现,性能太差
硬RAID
通过RAID卡(芯片)实现
三、parted分区工具
1、parted分区介绍
fidsk
只能来管理小于2T的磁盘
只能管理MBR的磁盘
主分区、扩展分区、逻辑分区
parted
管理大于2T的磁盘
管理GPT格式的磁盘
都叫主分区
主分区最大128个
2、parted分区工具使用
-
创建分区
<span style="background-color:#282c34"><span style="color:#282c34"> <span style="color:#abb2bf">[root@localhost ~]# parted /dev/sdb mkpart primary 1 5G</span>
<span style="color:#abb2bf"><span style="color:#abb2bf"></span></span></span></span>
四、总结
磁盘冗余阵列 | 优势 | 劣势 |
---|---|---|
RAID 0 | 数据读写速度快 | 没有数据冗余功能 |
RAID 1 | 增强数据可靠性 | 能保证硬盘安全性 不能保证数据的安全性 |
RAID 5 | 数据读写速度块 有校验机制 磁盘空间利用率高 | 磁盘越多 安全性能越差 |
RAID 6 | 有良好的随机读写性能 有校验机制 | 成本高 |
RAID 10 | RAID10的读性能将优于RAID01 较高的IO性能 有数据冗余 无单点故障 安全性能高 | 成本高 |