1. 存储形态——什么是存储?(中篇) 1.1 集中式存储 集中式存储系统,即整个存储是集中在一个系统中的。 企业级的存储设备一般都是集中式存储。但集中式存储并不是一个单独的设备,是集中在一套系统当中的多个设备。以 华为公司的存储为例,整个存储系统可能需要几个机柜来存放。集中式存储按照技术架构可以划分为SAN和NAS,其中SAN又可以细分为FC-SAN、IP-SAN。 集中式存储最大的特点就是部署结构简单,无需考虑如何对服务进行多个节点的部署,也就不用考虑多个节点之间的分布式协作问题。 1.1.1 集中式存储的缺点: 孤立的存储资源,存储通过专用网络连接到有限数量的服务器; 集中式纵向扩容通过增加硬盘框实现,硬件控制器性能(单控制器带盘能力)成为瓶颈; 集中式存储横向扩容需要通过控制器全连接实现,硬件控制器性能成为扩容瓶颈; 集中式存储资源缺乏共享,存储设备和资源往往由不同厂家提供,设备之间无法进行资源共享,数据中心看到的是一个个孤立的存储池; 集中式存储采用集中式元数据管理方式,系统所能提供的并发操作能力将受限于元数据服务的性能,元数据服务也将会成为系统的性能瓶颈; 如何解决传统集中式存储扩容、性能瓶颈的问题?
1.2 分布式存储 分布式存储系统,是将数据分散存储在多台独立的服务器上。 分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。 随着分布式存储越来越普及,现在一些对性能要求比较高的应用也开始使用分布式存储,比如金融系统的数据库。 分布式存储利用软件重构存储服务形式,通过软件模拟原先硬件控制器实现功能的同时,规避硬件控制器的种种弊端。 资源池:类似于SAN的RAID组概念。 2. 存储业务类型 块存储 文件存储 对象存储 以对象为单位,通过软件提供存储空间,其核心思想是元数据(一般指的是数据的位置)和数据分离。 对象存储是一种新兴存储技术,对象存储系统综合了NAS和SAN的优点,同时具有SAN的高速直接访问和NAS的数据共享等优势,提供了高可靠性、跨平台性以及安全的数据共享的存储体系结构 。
对象存储与块存储、文件存储的对比如下:
块存储对存储层直接访问,开销最小,效率最高,速度最快。但成本最高,扩展困难。块存储采用iSCSI/FC协议 ,很难跨网络传输。适合的应用场景是企业数据库,如运行Oracle等; 文件存储是在块存储之上构建了文件系统,采用目录-目录-文件的方式组织数据,更容易管理。因为大多数应用程序都是对文件进行操作,因此文件存储更容易和应用系统对接。文件系统受目录树的限制,扩展性受限,一般最多扩展到几十PB 。文件系统适用于企业内部应用整合,文件共享场景; 对象存储是在块存储之上构建了对象管理层,与文件系统相比,对象系统层是扁平的,扩展限制少,因此拥有近乎无限的扩展性。对象由唯一的Key,文件,数据(文件),元数据,自定义元数据构成,由于包含了自管理信息,更加智能。对象存储采用兼容标准的互联网协议接口,可以跨地域传输 。对象存储适用于面向互联网服务的存储场景,以及企业内部的归档、备份场景。 3. RAID Redundant Array of Independent Disks,独立磁盘冗余阵列,RAID技术将多个单独的物理硬盘以不同的方式组合成一个逻辑硬盘,从而提高了硬盘的读写性能和数据安全性以及更大容量的逻辑磁盘。 3.1 数据组织形式 硬盘的条带化:将硬盘空间按照设定的大小分为多个条带,数据写入时也按照条带的大小来划分数据模块。 条带(strip):硬盘中单个或者多个连续的扇区构成一个条带,是组成分条的元素。 分条(stripe):同一硬盘阵列中的多个硬盘驱动器上的相同“位置”(或者说是相同编号)的条带。 分条宽度:
指一个磁盘组在进行分条时所使用的磁盘的个数,例如一个由3个成员盘组成的磁盘组,其分条宽度为“3”。
分条深度:
指一个分条的容量大小。
3.2 数据保护方式 镜像:在另一块冗余的硬盘上保存数据的副本。 奇偶校验算法:相同为假,相异为真 XOR运算广泛地使用在数字电子和计算机科学中。 XOR校验的算法—相同为假,相异为真:
0⊕0=0; 0⊕1=1; 1⊕0=1; 1⊕1=0; RAID技术通常有2种不同的方式进行数据保护:
在另一块冗余的硬盘上保存数据的副本,提高可靠性,并可以提高读性能。 使用奇偶校验算法。奇偶校验码是使用用户数据计算出的额外信息。对于使用奇偶校验的RAID类型,它意味着需要额外的校验硬盘。奇偶校验采用的是异或(XOR的计算符号⊕)算法。 3.3 热备(Hot Spare) 当冗余的RAID组中某个硬盘失效时,在不干扰当前RAID系统正常使用的情况下,用RAID系统中另外一个正常的备用硬盘自动顶替失效硬盘,及时保证RAID系统的冗余性。 类型 全局式:备用硬盘为系统中所有的冗余RAID组共享。 专用式:备用硬盘为系统中某一组冗余RAID组专用。 数据校验,利用冗余数据进行数据错误检测和修复,冗余数据通常采用海明码、异或操作等算法来计算获得。
利用校验功能,可以很大程度上提高磁盘阵列的可靠性、高性能和容错能力。
不过,数据校验需要从多处读取数据并进行计算和对比,会影响系统性能。
一般来说, RAID不可作为数据备份的替代方案,它对非磁盘故障等造成的数据丢失无能为力,比如病毒、人为破坏、意外删除等情形。
此时的数据丢失是相对操作系统、文件系统、卷管理器或者应用系统来说的,对于RAID而言,数据都是完好的,没有发生丢失。所以,数据备份、灾备等数据保护措施是非常必要的,与RAID相辅相成,保护数据在不同层次的安全性,防止发生数据丢失。 3.4 级别 RAID0 将单块或多块硬盘基于条带化的方式构建RAID组,通过并发的方式对RAID磁盘进行读写 缺点 RAID1 将两块硬盘构建成镜像盘,实现数据保护,写性能下降,读可以并发读 缺点 RAID5 将3块以上的硬盘,基于条带化的方式构建RAID,通过奇偶校验实现数据保护 缺点 RAID6 将4块以上的硬盘,基于条带化的方式构建RAID,通过奇偶校验实现数据保护 缺点 RAID 10 将镜像和条带进行两级组合的RAID级别, 第一级是RAID 1镜像对, 第二级为RAID 0。 RAID 10 也是一种应用比较广泛的RAID级别。 RAID2.0+ 在RAID 2.0的基础上提供了更细粒度(可以达几十KB粒度)的资源颗粒,形成存储资源的标准分配及回收单位,类似计算虚拟化中的虚拟机,我们称之为虚拟块技术 3.4.1 RAID 6 DP 工作原理 DP:Double Parity ,就是在RAID 4所使用的一个行XOR校验硬盘的基础上又增加了一个硬盘用于存放斜向的XOR校验信息。横向校验盘中P0-P3为各个数据盘中横向数据的校验信息。 例:P0=D0 XOR D1 XOR D2 XOR D3 斜向校验盘中DP0-DP3为各个数据盘及横向校验盘的斜向数据校验信息。 例:DP0=D0 XOR D5 XOR D10 XOR D15 RAID 6 DP也有两个独立的校验数据块。 第一个校验信息与RAID 6 P+Q的第一个校验值是相同的, 第二个不同于RAID 6 P+Q,采用的是斜向异或运算得到行对角奇偶校验数据块。 行奇偶校验值是同一分条的用户数据异或运算获得到,如图所示:P0是由分条0上的D0,D1,D2和D3异或运算得到,P1由分条1上的D4,D5,D6,D7异或运算得到。 所以,P0 = D0 ⊕D1⊕ D2⊕D3,P1 = D4⊕D5⊕D6⊕D7,如此类推。 第二个校验数据块是由阵列的对角线数据块进行异或运算。数据块的选择过程比较复杂。 DP0是由硬盘1的分条0上的D0,硬盘2的分条1上的D5,硬盘3上的分条2的D10,和硬盘上4 分条3上的D15异或操作得到。 DP1是对硬盘2的分条0上的D1,硬盘3的分条1上的D6,硬盘4上分条2的D11,和第一块校验硬盘分条3上的P3进行异或运算得到。 DP2是硬盘3分条0上的D2,硬盘4上的分条1的D7,奇偶硬盘分条2的P2,和硬盘1分条3上的D12进行异或运算得到。 所以,DP0 = D0⊕D5⊕D10⊕D15,DP1 = D1⊕D6⊕D11⊕P3,如此类推。 一个RAID 6阵列能够容忍双硬盘失效。 一个RAID 6组的性能,无论算法是DP还是P+Q,相对都比较慢。因此,RAID 6适用两种场景: 数据非常重要,需要尽可能长的时间处于在线和可使用的状态。 使用的硬盘容量非常大(通常超过2 T)。大容量硬盘的重建时间较长,两个硬盘都失效是会造成数据较长时间不能访问。在RAID 6中,可以实现一个硬盘重构时另一个硬盘失效。一些企业希望在使用大容量硬盘后,存储阵列的供应商使用一个双重保护的RAID组。 3.4.2 RAID 2.0 技术介绍 3.4.2.1 RAID 2.0 增强型RAID技术,有效解决了机械硬盘容量越来越大,重构一块机械硬盘所需时间越来越长,传统RAID组重构窗口越来越大而导致重构期间又故障一块硬盘而彻底丢失数据风险的问题。
3.4.2.2 RAID 2.0+ 在RAID 2.0的基础上提供了更细粒度(可以达几十KB粒度)的资源颗粒,形成存储资源的标准分配及回收单位,类似计算虚拟化中的虚拟机,我们称之为虚拟块技术。
存储的数据最终都会存储到SSD盘上,如果有些盘片上存放的数据不均匀,就可能导致某些压力大的SSD盘成为系统的瓶颈。
为应对该问题,华为存储系统采用新型的RAID 2.0+块虚拟化技术,通过更细粒度的划分,实现所有LUN的数据均衡的分布在每个SSD盘上,实现盘的负载均衡。
3.4.2.3 华为RAID 2.0+ 这是华为针对传统RAID的缺点,设计的一种满足存储技术虚拟化架构发展趋势的全新的RAID技术,其传统固定管理模式为两层虚拟化管理模式,在底层块级虚拟化(Virtual for Disk)硬盘管理的基础之上,通过一系列Smart效率提升软件,实现了上层虚拟化(Virtual for Pool)的高效资源管理。
块级虚拟化的含义是:将系统中的硬盘划分成若干个连续的固定大小的存储空间,称为存储块,即Chunk,或简称CK。
3.4.2.4 块级虚拟化技术 多块硬盘组成一个存储池。 存储系统将存储池中的每个SSD硬盘划分为固定大小的CK(通常大小为4MB)进行逻辑空间管理。 来自不同SSD硬盘的CHUNK按照用户在DeviceManager上设置的“RAID策略”组成CKG。 CKG再被划分为更细粒度的Grain(通常为8KB)。用户创建LUN时,存储系统以Grain为单位映射到LUN,实现对存储资源的精细化管理。 相比传统RAID机制,RAID2.0+具备如下优势: 业务负载均衡,避免热点
。 数据打散到资源池内所有硬盘上,没有热点,硬盘负荷平均,避免个别盘因为承担更多的写操作而提前达到寿命的上限。 快速重构,缩小风险窗口
。 当硬盘故障时,故障盘上的有效数据会被重构到资源池内除故障盘外的所有盘上,实现了多对多的重构,速度快,大幅缩短数据处于非冗余状态的时间。 全盘参与重构
。 资源池内所有硬盘都会参与重构,每个盘的重构负载很低,重构过程对上层应用无影响。 4. 缩略语 FC ———————————— Fiber Channel,光纤通道 FCIP ———————————— Fibre Channel over IP,基于IP的光纤通道 FCoE ———————————— Fibre Channel over Ethernet,以太网光纤通道 iFCP ———————————— Internet Fibre Channel Protocol,Internet光纤信道协议 iSCSI ———————————— Internet Small Computer System Interface,Internet小型计算机系统接口 IPFC —————————————— IP over Fiber Channel,在光纤通道上的IP IOPS —————————————— Input/Output Per Second,每秒的输入输出量或读写次数 MTBF —————————————— Mean Time Between Failure,平均无故障工作时间 NAS —————————————— Network Attached Storage,网络附加存储 RAID —————————————— Redundant Array of Independent Disks,独立磁盘冗余阵列 SAN —————————————— Storage Area Networks,存储区域网络 SCSI —————————————— Small Computer System Interface,小型计算机系统接口 5. ❤️HCIP专栏——前文链接