高效存储技术研究
1 引言
物质、能量和信息是自然科学研究的三个基本对象,处理、传输和存储是信息计算的三大基本任务。随着信息化技术水平的不断提高,数据已经取代计算成为了信息计算的中心,数据将成为企业最终有价值的财富。 1998 年图灵奖获得者 Jim Gray 曾断言:现在每 18 个月新增的存储量等于有史以来存储量之和。根据预测, 2020 年数据宇宙将达到 35.2 ZB ( 1 ZB = 1 百万 PB ),比 2009 的 0.8ZB 增加 44 倍。在如此强大的实际需求推动下,人们不断追求海量存储容量、高性能、高安全性、高可用性、可扩展性、可管理性等特性,对存储的需求不断提高。信息量呈现爆炸式增长趋势,使得存储已经成为急需提高的瓶颈。
面对数据量的急剧膨胀,企业需要不断购置大量的存储设备来应对不断增长的存储需求。权威调查机构的研究表明,目前世界大公司的年度存储需求增长率为 100% 。然而,这似乎并不能从根本解决问题。首先,存储设备的采购预算越来越高,大多数企业难以承受如此巨大的开支。其次,随着数据中心的扩大,存储管理成本、占用空间、制冷能力、能耗等也都变得越来越严重,其中能耗尤为突出。在美国,数据中心大约消耗掉 2% 总电量,每年电费开销高达 40 亿美元。 Gartner 曾预测, 2009 年全世界将会有一半以上的数据中心电力供应不足。 Emerson 的调研则显示 2011 年 96% 的数据中心将缺乏电力,美国许多企业的数据中心被迫迁至其它电力供应充足的地方。再者,大量的异构物理存储资源大大增加了存储管理的复杂性,容易造成存储资源浪费和利用效率不高。研究发现,企业的存储利用率往往不足 50% ,存储投资回报率水平较低。
因此,我们需要另辟蹊径来解决信息的急剧增长问题。高效存储理念正是为此而提出的,它旨在缓解存储系统的空间增长问题,缩减数据占用空间,简化存储管理,最大程度地利用已有资源,降低成本。
2 何谓高效存储?
高效存储目前还没有统一的定义,各个存储厂商分别有各自的定义和诠释,但目标是基本一致的,即提高存储利用效率、简化存储管理、降低存储能耗,从而获得较低的总持有成本和运营成本。高效存储的关键是平衡,需要在存储成本、商业价值以及运营风险之间作好平衡。
从现有的高效存储技术和存储产品来看,高效存储的基本策略主要有存储资源整合、动态存储容量配置、缩减存储容量、信息生命周期管理和降低能耗,高效存储技术基于这五种基本策略来实现高效的存储。 SNIA GSI ( Green Storage Initiative )针对绿色存储给出了四种基本策略:提高设备能耗效率、使用更少的冗余、提供更少的空间、存储更多的数据,相应的高效存储技术和管理策略概览如表 1 所示。
表 1 高效存储技术和管理策略概览
NO. |
高效存储技术 |
简要说明 |
1 |
Mange Your Data |
减少冗余数据副本,减缓数据增长率;根据数据价值和 SLA 定制数据管理和保护策略,降低总成本 |
2 |
Select the Appropriate Storage RAID Level |
根据数据价值和 SLA 选择合适的 RAID 级别,结合其他高效存储技术来减少存储量和能耗 |
3 |
Leverage Storage Virtualization |
将分散物理存储资源整合成虚拟的存储资源池,最大化存储利用率,减缓存储需求 |
4 |
Use Data Compression |
有效减小数据通信量和存储量,同是产生一定的性能负载,有些数据压缩有限,操作顺序影响压缩效果 |
5 |
Incorporate Data Deduplication |
删除块级冗余数据,减小存储量 |
6 |
File Deduplication |
删除文件级冗余数据,减小存储量 |
7 |
Thin Provisioning of Storage to Servers |
自动精减配置在满足存储需求的同时按需分配存储,最小化存储需求 |
8 |
Leverage Resizeable Volumes |
根据需要动态调整数据卷大小,提高存储利用率,减小存储需求 |
9 |
Writeable Snapshot |
减少测试、仿真、建模等应用的存储空间需求 |
10 |
Deploy Tired Storage |
根据数据价值和访问频度自动在不同存储层次之间流动,降低成本 |
11 |
Solid State Storage |
SSD 具有高性能、低能耗的特点,但成本高、写抖动、使用寿命短等问题 |
12 |
MAID and Slow-Spin Disk Technology |
将空闲磁盘转换成非活动或低速旋转模式,可有效节省能耗 |
13 |
Tape Subsystem |
容量大、存储有效期长、无能耗,磁带仍是数据长期归档的最佳选择 |
14 |
Fabric Design |
网络设计影响能耗和冷却系统 |
15 |
File System Virtualization |
管理物理分布的数据,提高存储效率、安全性、访问性能和数据保护,降低能耗 |
16 |
Server, Fabric and Storage Virtualization |
综合多种虚拟化技术减缓存储需求、提高存储利用率、降低能耗 |
17 |
Flywheel UPS Technology |
针对不同价值的存储采用不同的电源保护策略 |
18 |
Data Center Air Conditioning Improvement |
改进空调系统帮助节省能耗 |
19 |
Increased Data Center temperatures |
保证数据中心正常运行的前提下,提高 温度以节省大量能耗 |
20 |
Work with Your Regional Utilities |
寻求本地电力提供机构帮助节省能耗 |
表 1 中所罗列的高效存储技术和管理策略均是最佳实践,但是单一技术往往难以显著地提高存储利用效率、降低能耗、降低成本,实际中通常综合运用其中多种技术以获得更佳的整体效果。另外,一定要根据实际的数据特征和应用环境来选择合适的技术和策略,不可照搬乱套,否则可能效果甚微,甚至得不偿失。
3 高效存储技术
目前业界公认的五项高效存储技术分别是数据压缩、重复数据删除、自动精简配置、自动分层存储和存储虚拟化,已经在存储产品得到广泛推广和应用, IBM 最新推出的 Storwize V7000 存储阵列甚至同时集这五项技术与一身。其他的相关技术还包括固态硬盘 SSD 、 MAID 技术、动态卷、 RAID 级别等,它们分别利用自身的特点提高存储效率、简化存储管理和节约成本。
3.1 数据压缩
数据压缩是一种对数据进行编码以减小数据量的处理方法和过程。在有些应用中,采用有损压缩压缩过程中会丢失一部分的原始信息对某些格式的数据如数字图像进行压缩;但是对大多数的 IT 应用,需要的是无损压缩压缩过程能够保存完整的原始信息,并且能够从压缩数据精确地重构原始数据。存储技术中使用无损数据压缩技术来减小数据量,根据目前的技术水平,无损压缩算法一般可以把普通数据压缩到原来的 1/2 ~ 1/4 ,常用的无损压缩算法有霍夫曼 (Huffman) 、 Lempel-Ziv ( LZ )、 LZW(Lempel-Ziv & Welch) 、 LZR (LZ-Renau) 等压缩算法。其中, LZ 算法应用广泛, PKZIP 、 gzip 、 PNG 、 CAB 格式均使用该算法或变体; GIF 图像格式使用 LZW 算法, LZR 是 ZIP 方法的基础。
数据压缩要求在写入数据前进行编码,在读取数据前进行解码,因此会对存储系统性能产生一定的影响。然而,数据压缩技术可以有效缩减数据存储容量以及存储硬件需求,在存储技术中应用非常广泛,尤其是近线和离线存储。数据压缩并非对任何数据都会效果显著,诸如 JPEG 、 MPEG 、 MP3 等文件格式,这类数据已经由应用层作过压缩处理,存储系统对它的再次压缩几乎没有效果,而且会产生额外的性能损失。另外,数据压缩和加密机制往往同时被应用,压缩和加密操作需要按照合适的顺序执行。加密会对数据进行转置和变换,通常会增加字节冗余数据发现的难度以及降低数据压缩率,所以数据压缩应当先于数据加密执行,而解压缩则以相反次序执行,以获得更高的压缩率。
数据压缩可以有效缩减数据存储容量,缓解数据增长压力,不足之处是相应产生一定性能损失。因此在存储系统中实际运用时,需要根据存储的性能、容量、成本等因素综合考虑,不能由于采用数据压缩而导致性能指标不能达标,为了提高性能而又增加总成本。通常来看,性能要求高的实时在线数据存储不适合采用数据压缩;而以数据备份、容灾、归档、复制为主的近线和离线存储,存储容量需求大但性能要求较低,非常适合采用数据压缩技术。然而,如果有方法可以解决压缩和解压所产生的性能损失问题(如专用芯片、高效算法),在线存储采用数据压缩也是可行的。
3.2 重复数据删除
重复数据删除( Deduplication )是一种数据缩减技术,可对存储容量进行有效优化。它通过删除数据集中重复的数据,只保留其中一份,从而消除冗余数据。 Dedupe 技术可以有效提高存储效率和利用率,数据可以缩减到原来的 1/20 ~ 1/50 。这种技术可以很大程度上减少对物理存储空间的需求,减少传输过程中的网络带宽,有效节约设备采购与维护成本。同时它也是一种绿色存储技术,能有效降低能耗。
图 1 重复数据删除技术原理
Dedupe 按照消重的粒度可以分为文件级和数据块级。文件级的 dedupe 技术也称为单一实例存储( SIS, Single Instance Store ),数据块级的重复数据删除,其消重粒度更小,可以达到 4-24KB 之间。显而易见,数据块级可以提供更高的数据消重率,因此目前主流的 dedupe 产品都是数据块级的。 Dedupe 将文件分割成定长或变长的数据块,采用 MD5/SHA1 等 Hash 算法为数据块计算指纹( FP, Fingerprint )。可以同时使用两种及以上 hash 算法计算数据指纹,以获得非常小的数据碰撞发生概率。具有相同指纹的数据块即可认为是相同的数据块,存储系统中仅需要保留一份。这样,一个物理文件在存储系统就对应一个逻辑表示,由一组 FP 组成的元数据。当进行读取文件时,先读取逻辑文件,然后根据 FP 序列,从存储系统中取出相应数据块,还原物理文件副本。
Dedupe 技术可以帮助众多应用降低数据存储量,节省网络带宽,提高存储效率,减小备份窗口,有效节省成本。 Dedupe 技术目前最成功的应用领域是数据备份、容灾和归档系统,然而事实上 dedupe 技术可以用于很多场合,包括在线数据、近线数据、离线数据存储系统,可以在文件系统、卷管理器、 NAS 、 SAN 中实施。 Dedupe 也可以用数据传输与同步,作为一种数据压缩技术可用于数据打包。为什么 dedupe 技术最成功的应用是数据备份领域,而其他领域应用很少呢?这主要由两方面的原因决定的,一是数据备份应用对数据进行多次备份后,存在大量重复数据,非常适合这种技术。二是 dedupe 技术的缺陷,主要是数据安全、性能。 Dedupe 使用 hash 指纹来识别相同数据,存在产生数据碰撞并导致数据不一致性的可能性。 Dedupe 需要进行数据块切分、数据块指纹计算和数据块检索,消耗可观的系统资源,对存储系统性能产生影响。
信息呈现的指数级增长方式给存储容量带来巨大的压力,而 dedupe 是最为行之有效的解决方案,因此固然其在性能和安全方面有一定的不足,它大行其道的技术趋势无法改变。更低碰撞概率的 hash 函数、多核、 GPU 、 SSD 等,这些技术推动 dedupe 走向成熟,由作为一种产品而转向作为一种功能,逐渐应用到近线和在线存储系统。 ZFS 已经原生地支持 dedupe 技术,我们相信将会不断有更多的文件系统、存储系统支持这一功能。此外,数据压缩可以与 dedupe 技术结合应用以获得更大的数据缩减比率,写入数据时去重得先于压缩执行,读取数据的执行顺序则相反,如此可以达到最佳效果。
Dedupe 的衡量维度主要有两个,即重复数据删除率( Deduplication ratios )和性能。 Dedupe 性能取决于具体实现技术,而重复数据删除率则由数据自身的特征和应用模式所决定,目前各存储厂商公布的重复数据删除率从 20:1 到 500:1 不等。对何种数据进行消重,时间数据还是空间数据,全局数据还是局部数据?何时进行消重,在线还是离线?在何处进行消重,源端还是目标端?如何进行消重?实际应用 Dedupe 技术时应该考虑各种因素,因为这些因素会直接影响其性能和效果。另外值得一得的是, hash 碰撞问题现在还没有根本的解决方法,因此对于关键业务数据应该慎重考虑应用 dedupe 技术。
3.3 自动精简配置
自动精简配置( Thin Provisioning )的概念最早由 3PAR 公司提出,是一种全新的存储空间管理技术,利用虚拟化方法减少物理存储部署,可最大限度提升存储空间利用率。它的核心原理是“欺骗”操作系统,让其认为存储系统中有很大的存储空间,而实际上的物理存储空间并没有那么大。自动精简配置减少已分配但未使用的存储容量的浪费,根据用户的实际所需自动分配和利用存储资源。目前, IBM 、 HDS 、 EMC 、 3PAR 的高端磁盘阵列均支持该项技术。
图 2 传统存储空间分配与自动精简配置比较
传统的存储系统中,为确保存储容量足够使用,用户往往会部署多于实际需求的充足物理存储空间。但在实际使用过程中,部署容量通常未受到充分利用。行业研究组织发现在某些项目中,实际使用容量仅占部署容量的 20% — 30% 。因此,“自动精简配置”技术应运而生,旨在实现更高的存储容量利用率,并带来更大的投资回报。
自动精简配置不会一次性的划分过大的空间给某项应用,而是根据该项应用实际所需要的容量,多次的少量的分配给应用程序,当该项应用所产生的数据增长,分配的容量空间已不够的时候,系统会再次从后端存储池中补充分配一部分存储空间。自动精简配置技术扩展了存储管理功能,虽然实际分配的物理容量小,但可以为操作系统提供超大容量的虚拟存储空间。随着应用写入的数据越来越多,实际存储空间也可以及时扩展,而无须手动扩展。换句话说,自动精简配置提供的是“运行时空间”,可以显著减少已分配但是未使用的存储空间。利用自动精简配置技术,能够帮助用户在不降低性能的情况下,大幅提高存储空间利用效率,降低初始投资成本;需求变化时,无需更改存储容量设置;通过虚拟化技术集成存储,降低运营成本;减少超量配置,降低总功耗。
毫无疑问,自动精简配置技术是一项非常有效的存储管理工具,但在实际应用过程中也会产生一些问题,需要根据所处的数据环境和存储需求来权衡。首先,当预先分配的存储空间不够时,系统会从存储资源池中补充存储空间。然而,如果已经分配的空间不再使用而空闲下来,空间回收相对困难,现在的产品支持较少。可见这种技术呈现只增不减的态势,弹性不足。其次,当存储空间超过预先设置的阈值,系统会触发存储空间分配。对于高负载的数据应用来说,面对突发的访问峰值,有可能在配置更多的物理存储空间之前系统就变得过载,导致磁盘和应用程序错误使得整个系统运行极其缓慢。再者,为了维持精简配置环境增加了存储系统复杂性,如果一旦发生故障,系统恢复可能比传统的存储系统更加缓慢。
3.4 自动分层存储
自动分层存储 (Automated Tiered Storage , ATS) 属于分层存储,而分层存储其实由来已久。分层存储( Tiered Storage ),也称为层级存储管理( Hierarchical Storage Management ),广义上讲,就是将数据存储在不同层级的介质中,并在不同的介质之间进行自动或者手动的数据迁移,复制等操作。同时,分层存储也是信息生命周期管理( ILM )的一个具体应用和实现。分层存储发展至自动分层存储,主要摈弃了甄别数据和迁移数据的人工操作,而实现了智能化和自动化。
图 3 自动分层存储结构
数据有生命周期,从创建到删除的时间内,信息的商业价值和访问频度不断降低。存储设备有高低贵贱之分,性能好、可靠性高、读写速度快的设备,自然价格就高;而性能较低、读写速度慢的设备,价格也就相对低廉。“分层”是指,对数据的访问需求增加或减少时,将数据在不同类型的存储介质之间迁移,即把那些不常被访问的数据或过时的数据转移到速度较慢、成本较低的存储介质上,如 SATA 磁盘或磁带,以此来降低硬件成本;而把那些经常被访问或重要的数据放在速度较快、成本较高的光纤磁盘甚至固态硬盘( SSD )上,以此来提升性能。自动分层存储就是要让数据和设备“门当户对”,不仅可以降低存储容量成本和管理成本,同时还维持适当的性能水平。
分层存储的概念已经出现已久,并且这一概念被 EMC 、 STK 等厂商升华为信息生命周期管理( ILM )。不过,这一数据管理的理想因为操作复杂、成本较高,实现起来却不那么理想, ILM 叫好而不叫座。以往,数据的分层存储依靠存储管理员的手工操作。如今,这一过程实现了自动化,智能软件可以自动将数据转移到最经济高效的存储介质上。 SSD 的出现使自动分层技术显得更加有必要,它能使一个两层甚至三层的存储系统享有 SSD 级的性能 , 同时,反过来又促进了 SSD 的应用。随着自动化数据分层技术不断成熟,它也许有助于促进 SSD 的采用,因为它可以帮助管理员将分层技术调整到足够优化的地步,从而确保能够从性能最高但成本也最高的存储介质中获得最大效益。
目前提供 ATS 存储产品的厂商主要有 3PAR 、 DELL 、 Compellent 、 EMC 、 IBM ,它们都是自动实现对热点数据的甄别和迁移,但彼此之间其实还是存在较大的差别。第一大区别体现在热点数据的甄别方式上。一种是基于策略的方式,如 EMC 的 FAST2 ;一种是支持全自动方式,用户不需要制定任何策略,如 IBM 的 Easy Tier 、 Compellent 的 Data Progression 、 DELL 的 EqualLogic 5.0 。另一大区别体现在被迁移数据的粒度方面,分为卷级、子卷级、文件级和数据块级。目前,大多数厂商的 ATS 技术都能实现子卷级数据迁移。是否为子卷级的数据迁移是评价 ATS 技术的一个很重要的参数,因为它关系到 ATS 技术的实际运行效果。数据块级是自动分级存储的最高境界,只有这一步才能做到真正的对于应用完全自动化和透明。目前, EMC 、 3PAR 是子卷级, NetAPP 是文件级, Compellent 做到了数据块级。不过,各厂商的 ATS 都在向数据块级逼近。
自动分层存储具有许多优点,被存储业内人士所推崇,但也需要注意一些潜在的问题。首先,从性能的角度看,大部分自动分层系统都是使用 SSD 加快 I/O 和减少延迟性。这种做法的好处在于它可以让存储管理员自动地利用 SSD ,缺点在于整个环境的其他部分也必须足够快才能够充分利用它的优点。同时,大量部署 SSD 目前在成本上还是难以接受的。其次,一些自动分层解决方案通过将非活跃数据迁移到 SATA 存储层来减少成本,并减小购买更多光纤或 SAS 容量的必要性。这对性能提升并没有任何帮助,自动分层系统只是为了处理好旧数据,而许多数据中心多的就是这种数据。但是,主存储系统并不是为了在更长的时间内存储旧数据而设计的,归档到磁盘或许是更行之有效的方案。再者,对于访问模式频繁变化的存储系统,数据频繁在不同存储层次之间迁移,可能会对系统性能产生影响,甚至抵消原来带来的性能提升。另外,如果数据被以近似均匀的频率访问,则数据分层会异常困难和复杂。最后,数据被分成为多个数据小块分别存储与不同的存储层次,增加了元数据管理的复杂性,一旦系统发生故障,数据的恢复将会更加复杂和缓慢。
3.5 存储虚拟化
随着存储的需求不断激增,物理存储资源(如服务器、磁盘阵列、网络设备)也随之成倍增长。这种分布的异构存储资源的蔓延发展最终使管理变得异常困难,从而导致存储资源未被充分发挥效用,存储利用率只有 50% 的现象很普遍,导致新存储的投资白白浪费掉。对于这种存储管理困境的一种解决办法便是存储虚拟化。
图 4 存储虚拟化简化存储管理
存储虚拟化将分散的物理存储资源整合抽象成单一逻辑资源池,使得管理员仅以单一的逻辑视图对存储资源进行识别、配置和管理,如图 4 所示。虚拟化将存储资源的物理特性隐藏起来,对于用户来说虚拟化的存储资源就像是一个巨大的“存储池”,而不必关心其背后的物理存储设备。存储虚拟化是存储整合的一个重要组成部分,它能减少管理问题,而且能够最大化存储利用率,减缓存储需求,这样可以降低新增存储的费用。如果没有存储虚拟化,只能分别管理物理存储设备,不仅管理复杂性很大,并且容易造成存储资源的浪费。
存储虚拟化是通过将一个(或多个)目标服务或功能与其他附加的功能集成,统一提供有用的全面存储服务。典型的虚拟化包括如下一些情况:屏蔽系统的复杂性,增加或集成新的功能,仿真、整合或分解现有的服务功能等。虚拟化是作用在一个或者多个实体上,而这些实体则是用来提供存储资源或服务的。存储虚拟化是一个抽象的定义,它并不能够明确地指导用户怎么去比较产品及其功能,这个定义只能用来描述广义的技术和产品。存储虚拟化同样也是一个抽象的技术,几乎可以应用在存储的所有层面:文件系统、文件、块、主机、网络、存储设备等等。存储虚拟化可以在三个不同的层面上实现:基本专用卷管理软件在主机服务器上实现,或者利用阵列控制器的固件在磁盘阵列上实现,或者利用专用的虚拟化引擎在存储网络上实现。而具体使用哪种方法来实现,应根据实际需求来决定。
存储虚拟化其实算不上是全新的概念, RAID 、 LVM 、 SWAP 、 VM 、文件系统等这些都归属于其范畴。存储的虚拟化技术有很多优点,比如提高存储利用效率和性能,简化存储管理复杂性,绿色节省,降低运营成本等。现代数据应用在存储容量、 I/O 性能、可用性、可靠性、利用效率、管理、业务连续性等方面对存储系统不断提出更高的需求,基于存储虚拟化提供的解决方案可以帮助数据中心应对这些新的挑战,有效整合各种异构存储资源,消除信息孤岛,保持高效数据流动与共享,合理规划数据中心扩容,简化存储管理以及绿色节能等。它还是自动精简配置、动态卷、快照等存储技术的基础。存储虚拟化是目前的存储热点技术,也是未来的存储技术趋势,受到众多存储软硬件厂商的大力推崇。
存储虚拟化的不利方面是额外增加的复杂性。存储层是存储环境新增的部分,随着虚拟产品打补丁和更新,必须进行管理和维护。同样,存储设备之间的互操作性和兼容性也会有所影响。另外,虚拟层可能会与存储系统的某些特性相干扰,比如远程复制。另一个问题就是一旦存储虚拟化实施后,重新恢复或是取消操作存在的困难。这并不是不可能,但是重新将应用与存储位置进行关联的过程很容易出错。
3.6 其他技术
除了上述的五大基本的高效存储技术之外,还有其他许多高效存储技术和策略,罗列如下。( 1 )管理数据:根据数据价值和 SLA 定制数据管理和保护策略,减少冗余数据副本,减缓数据增长速率,降低成本;( 2 )选择 RAID 级别:根据数据价值和 SLA 选择合适的 RAID 级别,并结合其他高效存储技术来减少存储量和能耗;( 3 )动态数据卷:按照实际存储需求动态调整数据卷大小,提高存储利用率,减小存储需求;( 4 ) SSD :具有高性能、低能耗的特点,有效缓解高性能应用的 I/O 瓶颈问题,并可作为分层存储的顶层存储介质,提高整合性能和降低成本;( 5 ) MAID :将空闲磁盘转换成非活动或低带旋转模式,可有效节省能耗。( 6 )可写快照:减少用于测试、仿真、建模等应用的存储空间需求。下面重点分析一下 SSD 和 RAID 技术。
3.6.1 固态硬盘 SSD
固态硬盘 (SSD, solid state disk) 是目前倍受存储界广泛关注的存储新技术,它被看作是一种革命性的存储技术,可能会给存储行业甚至计算机体系结构带来深刻变革。在计算机系统内部, L1 cache 、 L2 cache 、总线、内存、外存、网络接口等存储层次之间,目前来看内存与外存之间的存储鸿沟最大,磁盘 I/O 通常成为系统性能瓶颈。 SSD 与传统磁盘不同,它是一种电子器件而非物理机械装置,它具有体积小、能耗小、搞干扰能力强、寻址时间极小(甚至可以忽略不计)、 IOPS 高、 I/O 性能高等特点。因此, SSD 可以有效缩短内存与外存之间的存储鸿沟,计算机系统中原本为解决 I/O 性能瓶颈的诸多组件和技术的作用将变得越来越微不足道,甚至最终将被淘汰出局。试想,如果 SSD 性能达到内存甚至 L1/L2 cache ,后者的存在还有什么意义,数据预读和缓存技术也将不再需要,计算机体系结构也将会随之发生重大变革。
对于存储系统来说, SSD 最大突破是大幅提高了 IOPS ,摩尔定理的效力再次显现,通过简单地用 SSD 替换传统磁盘,就可能可以达到和超越综合运用缓存、预读、高并发、数据局部性、磁盘调度策略等软件技术的效用。 SSD 目前对 IOPS 要求高的存储应用最为有效,主要是大量随机读写应用,这类应用包括互联网行业和 CDN 行业的海量小文件存储与访问(图片、网页)、数据分析与挖掘领域的 OLTP 等。 SSD 已经开始被广泛接受并应用,当前主要的限制因素包括价格、使用寿命、写性能抖动等。从最近两年的发展情况来看,这些问题都在不断地改善和解决, SSD 的发展和广泛应用将势不可挡。
3.6.2 磁盘阵列 RAID
1988 年美国加州大学伯克利分校的 D. A. Patterson 教授等首次在论文 “ A Case of Redundant Array of Inexpensive Disks ” 中提出了 RAID 概念,即廉价冗余磁盘阵列( Redundant Array of Inexpensive Disks )。 RAID 即独立磁盘冗余阵列,通常简称为磁盘阵列。简单地说, RAID 是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术。 RAID 是一类多磁盘管理技术,其向主机环境提供了成本适中、数据可靠性高的高性能存储。 SNIA 对 RAID 的定义是:一种磁盘阵列,部分物理存储空间用来记录保存在剩余空间上的用户数据的冗余信息。当其中某一个磁盘或访问路径发生故障时,冗余信息可用来重建用户数据。磁盘条带化虽然与 RAID 定义不符,通常还是称为 RAID (即 RAID0 )。 RAID 技术具有大容量、高性能、可靠性、可管理性等显著的特征和优势,基本可以满足大部分的数据存储需求。
RAID 的两个关键目标是提高数据可靠性和 I/O 性能。磁盘阵列中,数据分散在多个磁盘中,然而对于计算机系统来说,就像一个单独的磁盘。通过把相同数据同时写入到多块磁盘(典型地如镜像),或者将计算的校验数据写入阵列中来获得冗余能力,当单块磁盘出现故障时可以保证不会导致数据丢失。在这样的冗余机制下,可以用新磁盘替换故障磁盘, RAID 会自动根据剩余磁盘中的数据和校验数据重建丢失的数据,保证数据一致性和完整性。数据分散保存在 RAID 中的多个不同磁盘上,并发数据读写要大大优于单个磁盘,因此可以获得更高的聚合 I/O 带宽。当然,磁盘阵列会减少全体磁盘的总可用存储空间,牺牲空间换取更高的可靠性和性能。比如, RAID1 存储空间利用率仅有 50% , RAID5 会损失其中一个磁盘的存储容量,空间利用率为 (n-1)/n 。
RAID 中主要有三个关键概念和技术:镜像( Mirroring )、数据条带( Data Stripping )和数据校验( Data parity ) [3][4][5] 。镜像,将数据复制到多个磁盘,一方面可以提高可靠性,另一方面可并发从两个或多个副本读取数据来提高读性能。显而易见,镜像的写性能要稍低,确保数据正确地写到多个磁盘需要更多的时间消耗。数据条带,将数据分片保存在多个不同的磁盘,多个数据分片共同组成一个完整数据副本,这与镜像的多个副本是不同的,它通常用于性能考虑。数据条带具有更高的并发粒度,当访问数据时,可以同时对位于不同磁盘上数据进行读写操作,从而获得非常可观的 I/O 性能提升 。数据校验,利用冗余数据进行数据错误检测和修复,冗余数据通常采用海明码、异或操作等算法来计算获得。利用校验功能,可以很大程度上提高磁盘阵列的可靠性、鲁棒性和容错能力。不过,数据校验需要从多处读取数据并进行计算和对比,会影响系统性能。 不同等级的 RAID 采用一个或多个以上的三种技术,来获得不同的数据可靠性、可用性和 I/O 性能。至于设计何种 RAID (甚至新的等级或类型)或采用何种模式的 RAID ,需要在深入理解系统需求的前提下进行合理选择,综合评估可靠性、性能和成本来进行折中的选择。
RAID 这种设计思想很快被业界接纳, RAID 技术作为高性能、高可靠的存储技术,已经得到了非常广泛的应用。 RAID 主要利用数据条带、镜像和数据校验技术来获取高性能、可靠性、容错能力和扩展性,根据运用或组合运用这三种技术的策略和架构,可以把 RAID 分为不同的等级,以满足不同数据应用的需求。目前业界公认的标准是 RAID0 ~ RAID5 ,除 RAID2 外的五个等级被定为工业标准,而在实际应用领域中使用最多的 RAID 等级是 RAID0 、 RAID1 、 RAID3 、 RAID5 、 RAID6 和 RAID10 。 RAID 每一个等级代表一种实现方法和技术,等级之间并无高低之分。在实际应用中,应当根据用户的数据应用特点,综合考虑可用性、性能和成本来选择合适的 RAID 等级,以及具体的实现方式。
4 总结
现代信息呈现爆炸式增长趋势,数据总量急剧膨胀。信息在带来价值和财富的同时,也使给我们带来许多挑战,诸如存储空间巨大、管理复杂性、存储利用率低下、电力消耗巨大、冷却能力不足、总体拥有成本高昂。数据压缩、重复数据删除、自动精简配置、自动分层存储、存储虚拟化等高效存储技术有效解决或缓解了这些难题。然而,目前还没有从根本上解决,挑战和压力依然很巨大,我们期待高密度、超低能耗、高可靠的存储硬件技术发展以及全新的存储体系结构的出现。因为潜在的巨大存储需求和市场,存储将仍然是最为热门的 IT 领域,现有的高效存储技术会得到长足发展,新的存储技术将会层出不穷。