MacroSAN CRAID3.0 技术白皮书
杭州宏杉科技股份有限公司
1.概述
RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)技术于1988年美国加州大学伯克利分校的D.A.Patterson 教授等首次在论文“A Case of Redundant Array of Inexpensive Disks”中提出,其基本原理是由多个独立的高性能硬盘驱动器组成的硬盘系统,从而提供比单个硬盘更高的存储性能和数据冗余的技术。
作为一种成熟、可靠的硬盘系统数据保护标准,RAID技术自诞生以来一直作为存储系统的基础技术而存在,但是近年整个社会信息化水平不断提高,数据呈现出爆炸式增长趋势,数据取代计算成为信息计算的中心。
这促使人们对数据愈加重视,不断追求海量存储容量、高性能、高安全性、高可用性、可扩展性、可管理性等等,因此传统RAID 逐渐暴露出越来越多的问题。
为了满足数据增长的需求,硬盘设备制造商不断地提升技术来增加硬盘单位存储密度,如今,高容量硬盘企业和消费市场已经非常普遍。
那么当这些高容量硬盘出现硬盘故障而需要进行数据重构时,传统RAID会有哪些缺点?
硬盘故障导致数据丢失时,RAID组通过异或算法,通过校验数据和其他数据盘数据得到丢失的数据的过程为数据重构。
在这里以7.2K RPM 4TB硬盘为例,在传统的RAID5(8D+1P)中,其重构时间在40个小时左右(无流量压力情况下)。
重构的进程会占用系统的资源,导致应用系统整体性能下降,而当用户为了保证应用的及时响应来降低重构的优先级时,重构的时间还将进一步延长。
此外,在漫长的数据重构过程中,繁重的读写操作可能引起RAID组中其他硬盘也出现故障或错误,导致故障概率大幅提升,极大地增加数据丢失的风险。
另一方面,传统RAID受限于硬盘数量,在数据容量剧增的年代无法满足企业对资源统一灵活调配的需求,同时数据重构时影响数据的读写性能,那么怎么来提供数据的读写性能呢?
针对传统RAID的以上问题,宏杉科技提出了全新的CRAID技术。
2.技术实现
CRAID技术是宏杉科技针对传统RAID的缺陷,在传统RAID技术之上的革新。
CRAID1.0技术提升了故障硬盘的重建效率,CRAID2.0技术允许RAID组中任意坏三块盘,数据不丢失,而CRAID3.0技术则提升了数据读写性能和缩短重建时间。
CRAID1.0技术,主要是将组建好的RAID组分割为数千甚至上万个小单元进行精细化管理(即Cell),提升了故障硬盘的重建效率,提高了系统可靠性。
在此基础上,宏杉科技又推出了CRAID2.0技术,采用全新的RAID算法和三重校验机制,可以在一个RAID组中任意坏三块盘的情况下保证数据的不丢失,业务不中断。
2015年,宏杉科技又独具匠心在CRAID1.0和CRAID2.0的基础上,推出了最新的RAID 概念——CRAID3.0技术。
将CRAID1.0和CRAID2.0一层虚拟化管理的模式变为两层虚拟化管理模式,在具备前二种CRAID技术优势的前提下,以数据块为单元管理数据,提升数据读写性能并缩短重建时间。
宏杉科技CRAID3.0技术采用底层硬盘管理和上层资源管理两层虚拟化进行管理的模式,每个硬盘空间被划分成一个个小粒度的数据块,在这些数据块的基础上来构建RAID组,使得数据均匀地分布到存储池的所有硬盘上,同时,以数据块为单元来进行资源管理,大大提高了资源管理的效率。
硬盘域:在硬盘域中硬盘可以选择SSD、SAS和SATA中的一种,在存储中可以创建多个硬盘域,每个硬盘域最多64块硬盘,不同的硬盘域之间实现数据的隔离,如果超过了64块磁盘,比如128块磁盘,就需要组建两个硬盘域。
硬盘域中的硬盘空间会被划分成若干大小的数据块(Chunk,也叫DC),从而实现底层块级虚拟化,每个DC大小为64MB或者更小,DC是硬盘损坏时重建和替换单元。
存储池:在硬盘域中可以创建多个存储池,存储池由硬盘域中的多个DC组成,DC 来自不同的硬盘。
各个存储池由来自相同类型硬盘的DC组成。
DCG:在存储池中,相同类型的DC按照RAID策略组合成DCG,根据需求DCG支持RAID 0、
1、3、5、6等RAID级别,但是必须是相同的RAID建立一个存储池。
DC和DCG均属系
统内部概念,对外不可见。
Cell:DCG按固定大小划分或者由多个 DCG组合成存储单元Cell,每个Cell的大小为:1GB或者更小,Cell是构成LUN的基本单位。
热备空间:不同于传统RAID以空闲的硬盘作为热备,CRAID3.0是预留一定的DC进行热备,预留的DC叫做热备空间。
预留空间系统会有一默认值,可根据实际情况进行相应的调整。
当磁盘出现故障重构启动后,系统会在存储池内有效硬盘中均匀选取热备空间,在存储池内有效硬盘间达到对重构的负载均衡。
CRAID 3.0的实现框架如下图所示:
存储系统层由同一类型硬盘组成,不同层级支持不同类型的硬盘:构成高性能层的SSD硬盘,构成性能层的SAS硬盘和构成容量层的SATA硬盘。
各存储层的硬盘被划分为如64MB等大小的DC。
每一个硬盘域的DC按照用户设置的“RAID策略”,可以是RAID0、1、10、5、6等形式来组成DCG,用户可以为存储池(Storage Pool)中的每一个存储层分别设置“RAID 策略”。
存储系统会将DCG组合或划分成Cell。
Cell作为数据迁移的最小粒度和构成LUN的基本单位,大小如1GB等。
若干Cell组成对外体现为主机访问的LUN。
在处理用户的读写请求以及进行数据迁移时,LUN向存储系统申请空间、释放空间、迁移数据都是以Cell为单位进行的。
3.用户价值
相比传统RAID技术,CRAID技术在数据安全、系统性能和空间利用率方面都有了明显提高,主要体现如下几方面:
允许任意三块盘故障:CRAID技术不拘泥于传统,采用全新的算法和三重数据校验机制,提供更高的数据安全机制,允许在同一个硬盘组中任意三块硬盘同时发生完全物理故障,数据不丢失,业务不中断。
在更换三块新硬盘后,支持并行重建。
性能负载分摊:CRAID技术采用独创的盘间耦合算法将数据块进行分散布局,前端主机上的逻辑卷来自于硬盘组中所有硬盘,数据的IO读写压力在硬盘组中实现了所有硬盘均衡分摊,不存在硬盘热点,大幅提升IO读写性能。
空间利用率高:传统的RAID5/6技术仅含1/2块校验盘。
RAID1/10技术通过镜像原理,可允许RAID组中一半硬盘发生故障,数据不丢失,但硬盘空间利用率只有50%。
CRAID 技术采用N+1/2/3模式,用户可自由指定校验盘的数量,在提升了数据安全的同时,也提高了硬盘空间利用率。
快速重建:针对小块数据的损坏,直接利用资源池中预留的空白DC进行快速重建,瞬间完成DC的替换,保障数据不丢失。
同时,基于分散数据块技术,当硬盘组中一块硬盘发生故障,硬盘组中所有硬盘参与并发重建,重建数据流的写带宽不再是性能瓶颈,重建速度进一步提升。
局部重建:不采用热备盘顶替,只对原盘发生变化的部分进行重建。
这适用于硬盘未损坏,但发生过闪断或人为误操作造成的短暂硬盘失效。
比如硬盘在短时间内被拔出又插回,可只重建硬盘不在位时所变化的数据,重建时间短。
这种方式,相比于传统RAID 机制,极大降低RAID组性能受影响程度。
优化重建:仅重建被LUN使用的Cell,未使用的Cell不重建。
重建调度时,优先重建存在介质错误的Cell,然后再使用拷贝的方式重建其他Cell,以尽可能的避免该Cell所处的其它硬盘发生故障导致的Cell损坏。
支持多重重建,可同时重建多个故障硬盘,提高重建总体效率。
自愈性:由于热备容量存在,当磁盘出现部分损害,不需要立即换盘,系统可以快速重建,实现自愈。