简介
我平时看的书比较杂,技术类、财经类、文学类偶尔都看看。最近在看了一本技术相关的书,我觉得写的不错。毕竟写书的很多,写得好的确实不多,写此文章,将电子书分享给大家,值得大家阅读。关注公众号 BigDataTechnology 后台回复 数据存储技术,领取电子书网盘链接。
阵列存储
为保证数据存取业务的可扩展性、高可靠性和高性能,各大存储厂商围绕存储阵列开发并使用了大量关键技术手段。
磁盘阵列(RAID)是由多个独立的高性能磁盘驱动器组成的磁盘子系统,可以提供比单个磁盘更好的存储性能和数据保护。RAID包括多个级别,如,RAID0、RAID1、RAID3、RAID5、RAID6、RAID10、RAID50等,如图所示,不同 RAID 级别在成本、性能和可靠性上有所区别。
磁盘阵列(RAID)相较于其他得存储技术,其优势主要集中在大容量、高性能、可靠性
可管理性等特点。根据业务不同得需求可以选择不同得RAID级别。
存储系统
存储系统是指计算机中由存放程序和数据的各种存储设备、控制部件及管理信息调度的设备(硬件)和算法(软件)所组成的系统。计算机的主存储器不能同时满足存取速度快、存储容量大和成本低的要求,在计算机中必须有速度由慢到快、容量由大到小的多级层次存储器,以最优的控制调度算法和合理的成本,构成具有性能可接受的存储系统,如图所示,是一个常见的存储层次结构。在计算机系统中存储层次可分为高速缓冲存储器、主存储器、辅助存储器三级。高速缓冲存储器用来改善主存储器与中央处理器的速度匹配问题;辅助存储器用于扩大存储空间。辅助存储器也称为外部存储本书围绕外部存储系统展开介绍:
I/O访问路径
设计和部署存储系统需要理解I/0访问路径,I/0访问路径是指指令和数据在存储系统中传递的通道。事实上,I/0访问路径包括物理过程和逻辑过程,前者是数据在硬件部件上实际流动的过程,而后者是软件对数据的处理过程。
如图所示为一个主机访问远程的存储设备的物理I/0路径。文件请求通过网络文件协议驱动程序发给网络接口卡,并通过网络连接设备(如交换机)发送给远程存储设备(如,NAS)。
如图所示为存储系统的逻辑/0路径。逻辑I/0路径包括系统调用接口、文件系统、设备驱动程序等。下面以写请求为例,分别介绍本地写和远程写的逻辑I/0路径。图所示左边为主机内部的存储1/0,大部分I/0开始于要访问数据的应用,应用通常不管存储的细节,而是直接调用由操作系统提供的系统调用接口,然后由文件系统为应用提供数据的逻辑地址和在磁盘上存储的物理地址的映射,再由设备驱动层通过SCSI协议的操作,将数据存储到硬盘上。
从上面描述可知,主机内部的I/0访问需要经历系统调用接口、文件系统访问接口、设备驱动层、驱动硬件、磁盘访问接口等环节,这些环节对数据存储的可靠性、安全性和性能都会产生重要影响,从独立主机的角度看,主机内部1/0流程各个环节共同构成了数据存储的内部应用环境。
阵列存储组成
存储阵列系统的硬件部分分为外置存储系统和存储连接设备。外置存储系统主要指实际应用中的存储设备,比如磁盘阵列、磁带库、光盘库等;存储连接设备包含常见的以太网交换机、光纤交换机以及存储设备与服务器或者客户端之间相连接的线缆。
存储阵列系统的软件组件部分主要包含存储管理软件(如LUN创建、文件系统共享性能监控等)、数据的镜像、快照及复制模块。这些软件组件的存在,不仅使存储阵列系统具备高可靠性,而且降低了存储管理难度。
存储阵列有两种内部构造
一种是硬件由控制框和硬盘框两部分组成。
一种是控制框中也包含硬盘的情况,即盘控一体。控制框用于处理各种存储业务,并管理级联在控制框下面的硬盘框,如图所示。一般来说,控制框里面的控制器采用的是双控的模式,即A控制器与B控制器实现冗余,提升性能以及可靠性。倘若双控制器中有一个控制器出现物理故障,则另外一个控制器可以通过设置在用户无感知的情况下接替损坏控制器运行的业务,保证业务的正常运行。
硬盘框主要用于容纳各种硬盘,为应用服务器提供充足的存储空问,其外观如图所示。
阵列存储高可靠技术
1.器件冗余
存储阵列系统实现了控制器模块、管理模块、BBU模块(电池备份单元模块)、接口模块、电源模块、风扇模块等部件的冗余,极大保障了存储系统的可靠性。同时,通过采用双控双活技术,大大提升了存储阵列系统的数据存取效率。
2.存储阵列的多控技术
阵列多控技术指一个阵列部署多个控制器,典型案例是双控制器。
3.多路径技术
多路径技术是指在主机和存储阵列之间使用多条路径连接,使主机到阵列的可见路径大于一条,其间可以跨过多个交换机,避免在交换机处形成单点故障。
4.数据保险箱盘技术
当系统掉电时,由电池备份单元(BBU)供电,主机如果有数据写进来,就将这些数据写入保险箱盘,当系统供电恢复时,将保存在保险箱盘的数据刷新到数据盘中。
5.RAID重构技术
RAID重构技术用于RAID组中的数据恢复,RAID重构技术是指当RAID组中某个磁盘发生故障时,根据RAID中的奇偶校验算法或镜像策略,利用其他正常成员盘的数据,重新生成故障磁盘数据的方法。重构内容包括用户数据和校验数据,最终将这些数据写到热备盘或者替换的新磁盘上。
6.硬盘预拷贝技术
利用硬盘自身的检测功能,预测正在工作的硬盘即将出现故障,在出现故障之前将数据拷贝到新的硬盘中。
RAIDO
RAID0是一种无数据校验的、简单的并且是所有RAID级别中有最高的存储性能的数据条带化技术。RAID0从原理上算不上真正的RAID,因为它并不支持数据冗余策略。如图所示,RAID0将所有磁盘条带化后组成大容量的存储空间。
RAID 1
RAID1又称为镜像(Mirroring),是具有全冗余的阵列模式。RAID1包括一个数据磁盘(数据盘),一个或者多个备用磁盘(镜像盘)。每次写数据时,数据盘上的数据将完全地备份到镜像盘中。当数据盘失效时,镜像盘会接管数据盘的业务,保证业务的连续性。
RAID3和RAID 4
RAID3和RAID4都采用一个专用的磁盘用于存放校验数据,即校验盘。下面主要描述 RAID3技术。RAID3可以被认为是RAID0的一种改进模式。相比RAID0,RAID3增加了一个专用的磁盘作为校验盘
RAID 5
RAID5是目前最常用的RAID等级,通过条带化形式将数据写入磁盘组中。与RAID3类似,RAID5每个条带上都有一份校验数据,不同之处在于RAID5不同条带上的校验数据不是单独存在一个固定的校验盘里的,而是按一定规律分散存放在阵列的各个磁盘里。
RAID 6
前面所述的RAID1、RAID3和RAID5都只能保护因单个磁盘失效而造成的数据丢失,如果两个磁盘同时发生故障,数据将无法恢复。RAID6引入双重校验的概念,常用的校验方式有两种:一种是P+Q校验、另一种是DP校验。
RAID6是在RAID5和RAID3的基础上为了进一步增强数据保护而设计的一种 RAID,可以看作是RAID5和RAID3的一种扩展。当阵列中同时出现两个磁盘失效时,阵列仍能够继续工作,丢失数据依然可以得到恢复。RAID6不仅要支持数据块的恢复,还要支持校验数据的恢复,因此实现代价很高,控制器的设计也比其他等级更复杂、更昂贵。RAID6的工作原理是磁盘组中每个条带上有两份校验数据。
RAID0和RAID10
RAID01是先做条带化再做镜像,实质是对条带化后的虚拟磁盘实现镜像。RAID01结构其实非常简单,如图所示,RAID组包括两个RAID0子组(即子组内做 RAID 0,子组间做RAID1)。
与RAID01不同,RAID10是先做镜像再做条带化,实质是对镜像后的虚拟磁盘实现条带化。如图所示,RAID10组包括两个RAID1子组(即子组内做RAID1,子组间做 RAID 0)。
RAID 50
RAID50是RAID5与RAID0的结合,即组内做RAID5,构成RAID5子组,组间做RAID0。由于每个RAID5子组要求最少有三个磁盘,所以RAID50中要求最少有6块盘。相比RAID5而言,RAID50具备更高的容错能力,其同时允许各个RAID5子组各坏一个磁盘,即,既允许某个RAID5子组内有一个磁盘数据失效,也允许两个RAID5子组中各坏一个磁盘。由于检验数据分布于在两个RAID5子组上,重构速度相比于单独的RAID5有很大提高:此外,RAID50读写性能也相当好。
表4-1列出上述常用RAID级别的技术特点,从表格的对比项可以看出,理想的RAID类型,或者是满足用户所有需求的RAID类型并不存在。用户选择RAID类型时,应根据实际应用需求,综合读写速度、安全性和成本进行考虑。值得注意的是,从理论上而言,磁盘阵列中(RAID1除外)成员盘越多性能越好。但在实际应用中,随着RAID组磁盘数变多,磁盘失效次数也会相应增加。因此,每个RAID组中不建议包含太多数量的物理磁盘。