一.RAID基本概念
RAID(Redundant Arrays of Independent Drives,磁盘阵列),有“独立磁盘构成得具有冗余能力的阵列”之意
磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。
二.RAID的发展
RAID技术的出现的初衷是把多个小容量的硬盘组合起来,以获得更大的存储。
当下,我们常说的RAID技术更多的是与数据保护相关,换言之,当物理设备失效时,RAID能够用来放置数据丢失
三.RAID的主要功能
·通过对硬盘上的数据进行条带化,实现对数据成块存取,减少硬盘的机械寻道时间,提高了数据存取速度
·通过对一阵列中的几块硬盘同时存取(并行访问),减少了硬盘的机械寻道时间,提高了数据存取速度
·通过镜像或者存储奇偶检验消息的方式,实现了对数据的冗余保护
·把多个硬盘组合成一个逻辑盘组,以提供更大容量的存储
四.RAID的数据组织形式
RAID通过对磁盘阵列进行条带化,从而实现对数据的高效存取
·条带:硬盘中单个或者多个连续的扇区构成一个条带,它是一块硬盘上进行一次数据读写的最小单元,它是组成分条的元素
·分条:同一硬盘阵列中的多个硬盘驱动器上的所处位置相同(相同编号)的条带
分条宽带:指在一个分条中数据成员盘的个数
分条深度:指一个条带的容量的大小
五.RAID数据保护方式
方法1:在另一块冗余的硬盘上保存数据的副本
方法2:奇偶校验算法(XOR),相同为假,相异为真
六.RAID的状态
RAID技术将多个物理硬盘组合在一起,组成一个RAID组,该RAID组会维护自身的状态
·当RAID组所有硬盘都正常工作时,RAID组的状态为正常
·当有一定数量的硬盘失效时,但整个RAID组能够防止数据丢失,且数据恢复进程尚未启动时,这个状态被称为降级
·故障的硬盘进行了更换或者系统中有热备盘,将数据恢复刀更换的硬盘或热备盘的过程,但尚未完成的状态叫做重建(或重构)
·重构成功后,RAID组的状态就会恢复正常
·当硬盘故障的数量较多,且超过该RAID类型支持的冗余硬盘数时,将导致无法完成数据恢复功能时,这种状态被称为RAID组失效
创建----》创建成功(正常)----》磁盘失效(降级)----》磁盘恢复(重构)----》正常工作
创建----》创建成功(正常)----》磁盘失效(降级)----》磁盘失效过多,没有冗余盘(RAID组失效)
降级的RAID能否完成数据重构,取决于使用的RAID类型,硬盘故障的数量和替换硬盘的可用性
热备盘是系统中被指定用于替代RAID组中故障成员的硬盘,所完成的任务是承载被替代硬盘中的数据
七.RAID的实现方式
1.硬件实现
硬件RAID使用专用的RAID适配器,硬盘控制器或者存储处理器。RAID控制器有自己的处理器。I/O处理芯片和内存用来提高资源利用率和数据传输速度。RAID控制器管理路由,缓存区,控制主机与RAID之间数据流。硬件RAID通常在服务器中使用
2.软件实现:软件实现的RAID没有自己的处理器或I/O处理芯片,而是完全依赖于主机处理器。因此低速CPU不能满足RAID的实施要求。软件RAID通常在企业级存储设备上使用
八.RAID和LVM的比较
1.LVM(Logic Volume Management ,逻辑卷管理),他的最大用途是可以灵活的管理磁盘的容量,让磁盘分区可以随意放大或缩小,便于更好的应用磁盘的剩余空间
简单讲,LVM就是讲物理分区或磁盘通过软件组合在一起,
2.RAID,更侧重实现性能的提高和数据的安全性
九.RAID各种级别的比较和分析
根据不同的组合方式,可以分为不同的RAID级别
1.RAID0
(1)RAID0描述
RAID0又称为Stripe(条带化)或Striping(条带模式),他在所有的RAID中具有最高的存储性能,读写性能最好,但是没有容错功能,即任何一个磁盘的损坏都会导致RAID组的全部数据丢失
(2)RAID0原理
RAID0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样系统进行数据读写请求时就可以在多个磁盘间并行的执行数据的存取。RAID0最少需要一块物理磁盘
存取数据过程:
系统向磁盘组成的逻辑磁盘组(RAID组)发出的I/O请求被转换为四种操作,其中的每一项操作都对应一块物理磁盘,如上图,原本应该顺序操作的数据,被分散到四个磁盘上,这四个操作是并行完成的,即理论上,RAID0的存取效率是磁盘数的N倍,但事实到不了这么快
(3)RAID0的生产应用场景
RAID0因为其高效的存储效率,但其无法容错的特性,它适合做一些性能需求较大,但是对数据的安全性要求不是特别大的应用
·负载均衡集群下面的多个相同的RS节点服务器
·分布式文件存储下面的主节点
·MySQL主从复制的多个Slave服务器
·对性能要求很高,对冗余要求很低的相关业务
(4)RAID0综合描述
指标 | 描述 |
---|---|
容量 | 是多块硬盘加在一起的容量,在RAID中拥有最高的存储性能,原理是把连续的数据分散的存储到不同的硬盘上,实现数据的并行存取 |
性能 | RAID0的性能是RAID中性能最好的,存取效率最高的 |
冗余 | RAID0没有冗余能力,一块硬盘故障,整个RAID组就不可用了 |
场合 | 适用于大规模并发读写,但对数据冗余性要求不高的场景 |
优点 | 速度快,容量无损失 |
缺点 | 无冗余 |
2.RAID1
(1)RAID1描述
RAID1又称为Mirror或Mirroring(镜像),它的宗旨是最大限度的保证用户的数据的可用性和可修复性。实现数据的百分百复制,但降低了写的性能,读的性能影响不大
(2)RAID1原理
RAID1的操作方法是把用户写入一个磁盘的数据百分之百的复制到另外一个磁盘上,从而实现存储双份的数据
RAID1必须由两块磁盘组成,磁盘大小由最小的那块磁盘决定
存取数据过程:
存数据时因为要将相同的数据写入两块不同的磁盘,所以磁盘的写效率比较低
写数据时,优先选择主用盘,如果数据读取成功,则系统不会去处理备份盘上的数据。如果数据读取失败,就回去读取备份盘上的数据
(3)RAID1应用场景
RAID1其可靠性高,性能低的特点,使得他适合以下应用场景
·没有大量外来用户访问但是特别重要的数据,一般政府等机构存储重要数据时可以选取RAID1
(4)RAID1综合描述
指标 | 描述 |
---|---|
容量 | 有一半的容量拿去做备份,损失百分之五十 |
性能 | RAID1不能提高存储性能,理论上写性能和单盘相差不大 |
冗余 | 在所有RAID级别中,RAID1提供最高的数据安全保障 |
场合 | 适用于对数据冗余性要求高,性能要求不高的企业 |
优点 | 冗余性好 |
缺点 | 性能低,容量损失大,成本高 |
3.RAID5
(1)RAID5描述
RAID是一种存储性能,数据安全和存储成本兼顾的存储方案
(2)RAID5原理
RAID5需要三块以上的物理磁盘,可以提供热备盘实现故障的恢复,采用奇偶校验,可靠性强,只有同时损坏两块硬盘时才会完全损坏,因为一块硬盘失效时利用校验可以重构出数据,作临时服务,两块硬盘失效无法进行校验
存取数据过程:
存数据,类似于RAID0,实现数据的并行存入,写入效率较高(要写入校验位,效率比RAID0低,比RAID1高)。会有一个硬盘的空间来进行校验码的存放,所以会损失一块硬盘的容量
读数据:具有较高的读取效率
(3)RAID5适用场景
RAID5可以作为RAID0和RAID1的折衷方案,适合对性能和冗余都有一定要求但又不是很高的情况RAID5是适用领域最多的RAID级别
·文件与应用服务器
·数据库服务器
(4)RAID5综合描述
容量 | 会损失一块盘的容量来进行校验位的存放 |
---|---|
性能 | RAID5具有相近似RAID0的读取速度,只是多了一个奇偶校验信息,写入数据的速度 |
冗余 | 损失一块盘,RAID5数据安全保证程度低,但是比RAID1低而磁盘利用率却高 |
场合 | 适用于对性能和冗余都有要求但又不是特别高的情况 |
优点 | 很高的读取效率(比RAID0略低),中等写入效率 |
缺点 | 硬盘的故障会对吞吐量造成一定的影响,控制器的设计较为复杂,重构体系较为复杂 |
4.RAID10
(1)RAID10描述
RAID10是集RAID0和RAID1的优点,具有很高的性能同时兼备冗余性,但是成本较高
(2)RAID10原理
RAID10最少需要4块盘,且必须是偶数个硬盘,不管硬盘多少,都损失一半的容量
具体存取数据过程讨论较不一致,有兴趣可自行从别处学习
5.常见的RAID比较
RAID级别 | RAID0 | RAID1 | RAID5 | RAID10 |
---|---|---|---|---|
别名 | 带区 | 镜像 | 分布奇偶校验 | 镜像阵列带区 |
容错性 | 无 | 有 | 有 | 有 |
冗余类型 | 无 | 复制 | 奇偶校验 | 复制 |
热备盘选项 | 无 | 有 | 有 | 有 |
读性能 | 高 | 低 | 低 | 一般 |
随机写性能 | 高 | 低 | 低 | 一般 |
可用容量(均一般不大于16) | N*单块硬盘容量 | (N/2)*单块硬盘容量 | (N-1)*单块硬盘容量 | (N/2)*单块硬盘容量 |
典型应用环境 | 迅速读写,安全性要求不高 ,如图形工作站 | 随机写入数据,安全性要求高,服务器,数据库等存储领域 | 随机数据传输,安全性要求高,数据库,存储等 | 数据量大,安全性高,银行金融等 |
从上图中可以看出的是
RAID0兼顾成本和性能
RAID1可靠性最好
RAID10兼顾可靠性和性能
RAID5三者兼顾
十.不太常用的几种RAID
1.RAID3
单独的一个盘作校验盘,容量为N-1个硬盘的容量
2.RAID50
RAID50是将RAID5和RAID0进行两级组合的RAID级别,第一级为RAID5,第二级为RAID0
RAID50至少需要六个硬盘,因为一个RAID5就需要三个硬盘