浅谈面向应用的存储系统

陆弋


摘要:存储的选择问题涉及的技术课题很多,在以往的数据中心规划建设中,存储系统往往作为附属品不被重视,从而造成性能瓶颈影响到数据中心的进一步发展。本文结合校园级存储使用和选型中的一些具体经验,具体阐述了如何科学地规划存储系统,更好地为数据中心的各个应用系统服务。
关键词:面向应用的存储系统;存储Cache;存储性能;解决存储逻辑错误和物理错误;存储选型和规划
中图分类号:TP392 文献标志码:B 文章编号:1673-8454(2012)23-0081-03
在数据中心规划建设中,人们以往的关注点会放在应用系统和服务器规划上,存储系统的选择常被作为附属品而得不到足够的重视。实际环境中新一代数据中心往往通过共享的数据总线实现应用之间的互联互通和数据交互,通过大量的服务器虚拟化技术实现服务器集中和高效利用,而这一切的实现都必须依赖于后台的存储系统。如果存储系统规划选型不得当,往往会成为整个数据中心最大的瓶颈。为了更科学地规划存储系统,我们必须对相关技术细节做一些研究。
一、存储系统的简介
最初的存储系统源自大型机的内置硬盘,然后独立出来向外演变到基于主机软件通过接口卡或专门RAID卡连接JBOD(JustaBunchOfDisks,磁盘簇)存储的傻瓜式盘阵。主机负责RAID等存储处理功能,磁盘阵列仅仅是提供空间。顾名思义JBOD存储仅仅是把一堆硬盘捆绑起来,并不能提供任何智能特征,由于存储RAID处理等在具体的主机,所以JBOD存储不方便实现数据共享,目前这种架构已经很少使用。如图1所示。
之后存储处理功能开始从主机向磁盘阵列过度,磁盘阵列开始具备独立的RAID控制器,一般中低端磁盘阵列会具备两个控制器,高端磁盘阵列具备多个控制器。由于存储系统具备控制器,由存储系统自身完成RAID等处理,因此可以不局限于为单独服务器提供服务,可以支持更多主机访问。这一代纯粹系统在DAS(直连存储系统)基础上也发展出NAS(网络共享存储)、FC-SAN(基于光纤的存储专用网络)和IP-SAN(基于IP的存储专用网络)。同时由于存储系统本身具备了处理功能,因此具备了一些诸如快照、容灾等高级功能。
但由于这一代存储系统受限于当时的技术和理念,仍然是基于传统的RAID机制,RAID的磁盘数量受到可靠性因素限制一定是有限的,RAID和其上LUN(卷)和具体服务器存在绑定关系。由于为每个应用服务的磁盘数量和性能有限,因此必须通过越来越大Cache来提高整体性能。虽然一些存储产品通过在LUN基础上做POOL实现虚拟化,并因此实现一些分层调度、虚拟空间和持续数据保护等功能,但由于底层RAID机制限制和多层转换后的巨大开销,反馈到应用上的存储性能受到了很大的限制。如图2所示。
针对第二代存储的根本缺点,第三代存储底层上采用了底层虚拟化技术,即块级虚拟化技术。磁盘阵列中的所有硬盘被视为一种存储空间资源,每块硬盘相当于很多资源小块,数据按照预先定义的保护级别写入这些小块,因此彻底摆脱了RAID组对磁盘数量和性能的限制,而且RAID重建时间会更少,数据理论上可以分散到所有硬盘,为每个应用系统服务的硬盘数量因此大幅提高了,可提供的性能也随之提升,这样不需要更大的Cache就可以提供足够的性能。如图3所示。
第三代存储系统的每个小块内还有一部分空间专门保存Metadata(元数据)数据信息,通过Metadata可以精确记录这个数据块访问的频繁程度,因此可以在底层就实现分层存储的流动数据功能,频繁访问的数据块根据策略可以被迁移到高性能存储区域,非频繁访问的数据被降级到低性能大容量存储区域,由于数据迁移的单位是小块,所以不仅精度更高而且对系统的开销也更低。新一代存储系统只需要把大部分处理能力都用于这些频繁访问的块即可,因此整体磁盘阵列系统的效率也更高。
第三代存储系统的这些特征都很好地贴合了应用的需求,可以更好地为不同的应用系统提供不同的服务级别,满足SLA(服务水平协议)的要求。因此在新一代存储选型上,我们应该重点考虑第三代存储架构的相关产品。
二、存储缓存性能指标
Cache又叫缓存,起到缓冲IO的作用。我们知道,CPU的处理速度远大于磁盘的存取速度。实际上,从1990年以来,磁盘最高的转速是15KRPM,虽然容量不断增加,但性能的提升异常缓慢。利用Cache可以通过预读(ReadAhead或Pre-Fetch)和回写(WriteBack)来提升性能:预读技术对于连续IO顺序读取较有帮助,减少了磁头寻道所导致的延迟时间;回写技术使得主机不必等待即可执行下一个IO,而Cache可以等待多条IO后,批量写入或者优化写入。根据我们的使用经验,IO的读写有以下几种:
(1)顺序读:对于小IO,Cache的优化效果较为明显。但对于大IO,更多的压力在于磁盘和后端带宽。
(2)顺序写:对于小IO,Cache的优化效果较为明显。但对于大IO,WriteCache很快被连续的大数据填满,导致Cache频繁Flush,也使得缓存镜像消耗更多的资源。因此许多存储厂商采用By-pass(或称Write-aside)的方式,当IO大小超过一定大小时,会不经过写缓存直接写入硬盘。
(3)随机读:数据是离散的,预读效果不明显,Cache作用不大。
(4)随机写:由于IO的随机性,批量或优化写入的效果不明显。
磁盘阵列中,决定性能的环节包括:控制器(CPU、缓存)、前端带宽、后端带宽以及磁盘个数。许多年来,CPU、缓存和前后端带宽(速率和端口个数)都有着飞速的发展,唯有磁盘的转速提升缓慢。与此同时,传统SAN存储的一个RAID组所能包含的磁盘个数一般小于15个,通常为5个或9个,因为大于10个硬盘的RAID组会导致以下问题:更长的校验时间,因为处理器等待多个设备来完成一个I/O;一旦坏盘,需要更长的重建时间,在这么长的重建时间里,如果出现第二块坏盘,数据就丢失了。所以,尽管后端带宽足够,但磁盘并发的个数往往不足,成为整个磁盘阵列的“短板”。前面我们分析得到:Cache只是对于顺序的读写较有帮助。但是当今的磁盘阵列都是为多台服务器的多个业务应用同时提供数据的存取。当你用一台服务器进行顺序读写的时候,对于磁盘阵列,它是持续读写;当多台服务器同时顺序读写的时候,汇聚到磁盘阵列上就都变成“随机”了。
另外对于磁盘阵列这个整体而言,无论有多大的Cache,最终都要写入到磁盘里,而且对于那些存在Cache里,但还未写入磁盘的数据,还必须考虑磁盘阵列掉电后如何保护数据一致性的问题。也有一些技术通过把高速的SSD盘作为Cache来使用,这样虽然Cache看起来很大了,但实际上SSD盘的数据最终还是要写入传统磁盘,最终两倍增加了存储负担,而且如前面分析所说,就当前的数据中心而言,Cache对于性能的提升已经不那么重要了。
三、面向应用的存储性能指标
由于存储系统不同于服务器,并没有一个统一的标准,各厂商公布的性能指标也大多是脱离应用实际需求的实验室最佳性能,有个第三方的SPC组织公布的存储性能甚至不要求Cache镜像,所以这些指标都是严重脱离实际需要的市场宣传指标,不具备实际参考价值。
对于磁盘阵列而言决定性能的环节包括:控制器、前端带宽、后端带宽以及磁盘个数。前三者可以归纳为系统架构,从各厂商产品资料来看:单系统内部硬盘数量支持大的各种系统指标也较高,因此系统架构选择可以以最大硬盘支持数量作为重要参考。另外可以参考同类应用的相关成功案例,这些实际应用的具体反馈会更有价值。
一般情况下存储容量不是问题,由于每块硬盘的性能是相对固定的,数据中心的存储系统往往需要为多个应用提供服务,真正需要考虑的是性能问题,所以应根据应用需求选择合适性能的硬盘数量,从性能角度而不是容量角度去规划存储。
四、面向应用的存储系统特征
1.数据应该自由流动,存储应该是绿色的
虽然我们每个数据中心都是有几十TB或者更大的数据,但真正频繁访问的数据不到20%。因为每个应用在不同时期会存在不同的热点数据,应用需求是不断变化的,存储系统必须能够在不对整体性产生影响的前提下,以极高的效率让频繁访问的数据流动到性能最高的存储区域,比如15K硬盘甚至SSD硬盘以提供足够的性能。对于那些80%甚至更多的非频繁访问数据应该被沉降到2TB、3TB7200转这样的大容量磁盘区域。
由于频繁访问的数据是有限的,因此数据中心并不需要配置那么多高速硬盘,采用了流动数据的分层技术后由于减少了高速高能耗磁盘,增加了大容量低能耗磁盘,在满足整体容量和性能需求的同时,整体存储系统的尺寸可以大幅缩小,空间占用和能耗都可以大幅降低。存储中心也变得更加绿色节能。
2.应具备本地持续保护能力和灵活的远程容灾能力
存储系统会为多种应用提供服务,用户水平和应用质量层次不齐,难免会因为人为误操作、黑客或病毒等因素导致数据逻辑错误。另外对数据后期加工处理等也需要能够便捷地使用数据的多个副本。
磁盘阵列系统本地系统通过CDP(持续数据保护)功能实现持续数据保护,数据可以根据需要回退到任意时间点或者灵活使用任意时间点的数据副本,这样就彻底解决了数据中心逻辑错误和后期数据加工使用问题。
CDP持续数据保护机制相对于传统快照而言,保护机制持续数据保护不需要预留空间,只保存变化数据,可以实现秒级保护,没有数量限制并且不会对系统性能造成影响。我们认为未来数据中心CDP持续数据保护机制应该也是一种存储系统规划的标准配置。
在本地解决逻辑错误的同时必须考虑物理错误这类灾难事件如何避免。我们认为应该选择可以针对应用的重要性不同来分配容灾线路带宽和数据传输时间的容灾系统,如远程容灾能结合到CDP持续数据保护机制,则可以避免本地数据中心的意外错误数据被容灾到容灾中心。另外灵活的容灾架构,也是必须要考虑的,如容灾中心可以为单控制器,多点之间相互容灾,多分支到中心节点容灾等。具体选择应根据未来应用对容灾需求和用户现状进行整体规划。
3.应具备完善的性能监控和报表工具
由于数据中心的存储系统要为多个应用提供服务,每个应用要求的性能级别不尽相同,另外出现问题时对于故障定位也尤为重要,因此存储系统应该具备完善的性能监控和分析工具,能够针对不同的性能指标实现监控和分析,便于统一管理和对外服务。
另外针对当前数据中心发展趋势,存储系统也应该可以根据需要输出各种报表,用于后期分析和决策使用。
五、结束语
存储选择问题涉及的技术课题很多,诸如对等扩展存储、云存储等产品概率也层出不穷,本文只是结合校园级存储使用和选型中的一些具体经验分享,希望能够给大家一些启发。
(编辑:李晓萍)
相关文章!
  • 高等教育人工智能应用研究综述

    奥拉夫·扎瓦克奇-里克特 维多利亚·艾琳·马林【摘要】多种国际报告显示教育人工智能是当前教育技术新兴领域之一。虽然教育人工智能已有约

  • 幼儿园建构游戏区支持性环境的

    摘 要:建构游戏在幼儿园的游戏开展中不可或缺,其具有结构性、创造性等特征,富有独特的教育功能。《3~6岁儿童发展指南》规定:“鼓励和支持

  • 基于网络环境,指导低段学生写

    孔青莲【摘 要】网络环境,为学科教学搭建了更为广阔的平台,开放了教学的环境,创新了教学模式。网络环境下,也为小学语文教师指导学生写日