• 快捷搜索
  • 全站搜索

数据中心分层存储技术探究及实践

2016-11-08 17:17:53作者:中国工商银行数据中心(上海)金斌 刘礼加编辑:金融咨询网
分层存储是建立在存储池基础上发展而来的一种新技术。在本文实验中,可以发现目前商用分层存储产品均严格按照性能监控、排布分析、数据迁移三个阶段设计和实现,各阶段之间均有明显的等待时间。如果能够将监控、分析、迁移融合为一个整体算法,实现实时或准实时迁移,预计能进一步提升分层存储的性能优势。

在IT运营过程中,应用系统时常会出现热点数据(如数据库发生IO性能瓶颈产生业务影响),且往往只有在问题发生后才能被动发现,并经常依靠技术人员将热点数据迁移到后端带宽更大的盘组来消除热点。近年来,随着云技术和大数据的广泛应用,数据中心的数据量呈爆发式增长,数据热点出现日益频繁,但因底层磁盘机上的冷热数据难以被有效、快速评估,导致影响业务正常运行的情况时有发生。

  分层存储是建立在存储池基础上发展而来的一种新技术。它是将数据存储在不同层级的介质中,通过性能监控、排布分析,在不同层级的介质中进行数据迁移,使数据在存储池内合理有效分布,以达到快速解决热点数据的目的。

一、分层存储的介质及分层

  1.介质

  传统的磁盘机配置为全企业级机械盘,随着技术的发展,固态硬盘(Solid State Drives,SSD)已经开始陆续投入各行业IT业务运行使用。因机械盘被物理结构所限制,需要4~8ms才能访问到,而SSD提供了远低于lms的访问速度;SSD相较于机械盘,对小数据块随机读取I/O请求有更好的性能表现。SSD和机械盘的常规参数比较如表1所示。

图片1.jpg

  SSD现阶段价格过于昂贵,全面配置SSD进行存储又存在性能溢出、成本效益过低的弊端。因此,存储行业内发展出分层存储技术,混合使用SSD和机械盘,将热数据块自动迁移至SSD同时将冷数据自动迁移至机械盘,使得在相同价格、相同容量的情况下,使用分层存储的混合硬盘模式能带来比传统全企业级机械盘更高的性能。图1以某厂商配置一台容量100TB磁盘机为例,对利用分层存储技术后的各种分层配置进行成本和性能横向比较。

图片2.jpg

  2.存储池分层

  存储池分层在存储池技术基础上,打破仅由单一种类硬盘组成存储池的方式,将同一种类硬盘定义成一层(Tier),将多层级组合成为分层存储池,由分层存储软件实现存储池内冷热数据块的迁移,实现最大化利用存储池性能。现今技术一般支持2~3层分层:第一层为Tierl(T1),一般由SSD组成为高性能层;第二层为Tier2(T2),由企业级机械SAS盘组成为性能层;第三层为Tier3(T3),由SATA接口的大容量机械盘组成为容量层。

  分层确定后,每层都支持对层容量的在线扩容和删除,扩容动作一般由微码实现。原理是先实施层级容量扩大,然后自动将数据分布到新的磁盘上;删除动作一般由微码先将数据从要删除的层的磁盘上迁移均衡到该层剩余的磁盘上,然后再删除空出来的磁盘。删除动作一般有较大风险和限制因素,需慎重实施。
  
  分层存储的一个妙用是,已有厂商除了可以实现以上三种常用的分层外,还可以将外部低性能磁盘机定义为分层存储的第三层,并通过分层技术实施时的冷数据沉淀功能甄别数据的热度,自动将冷数据沉淀到外部低性能存储,实现应用数据的生命周期管理。

  3.业界的产品

  目前业界主要的分层存储产品包括HDS的HDT、华为的SmartTier、IBM的EasyTier。

二、初始分配

  分层存储开启后,当有数据写入存储池时,存储池会分配存储空间给写入的数据。分配的存储空间是按存储池设定的管理颗粒度大小进行的。这里举例说明初始分配的工作原理。

  第一步:当写入的数据块为5MB大小时,如管理颗粒度为4MB,按最小分配原则需要分配两个存储颗粒。应该注意的是,不同分层存储产品对管理颗粒度的实现是不一样的,范围可以从4MB到1GB。

  第二步:微码需要根据初始化分配策略,选择这两个存储颗粒应该分布的层。初始化分配策略即指定写入数据优先写入哪一层,一般厂商提供的磁盘机默认的策略是由高到低,即优先写第一层,当第一层写满时将数据写入第二层,然后当第二层写满时将数据写入第三层,即T1>T2>T3。但在实际使用中应根据投产部署的应用灵活变化,如业务要求存储大量数据,对性能要求不高,则应指定策略将数据优先部署于第三层即T3>T2>T1;如对应的业务要求时延极低或有大量随机IO操作则应将数据优先部署于第一层即T1>T2>T3;初始分配策略一般在建立池的时候指定,对池做扩容时,扩容的容量继承原有存储池的分配策略。

  第三步:微码控制将数据真实地写入层内对应的空间。使用分层存储技术会使磁盘机的每一层有一部分空间作为保留空间而作特殊使用,这会占用掉每一层2~10%的空间,具体占用的比例各厂商不同。这部分保留空间被作为存储池新分配数据页或层级间迁移数据使用的缓冲区。

三、性能监控

  1.性能监控概述

  性能监控是指在特定时间内实时对缓存到存储介质的所有后端读写IO进行统计(除去系统自身引起IO,如再平衡、校验拷贝等),并在特定时间间隔内进行计算。

  性能监控的开启触发包括手动触发和自动触发。手动触发是根据需要立即手动触发监控。自动触发是指预先设置好具体的监控日期、时间段等(通过分析存储池内应用对应业务的活动时间段,避开非活动时间由后台备份、数据同步等引起的IO,能帮助分层存储系统对业务冷热数据的识别)触发监控。

  监控的周期是否能针对交易进行时段,会对后续的排布及最后的迁移产生较大的影响,所以对于分层存储软件的允许设置监控周期的灵活性有一定要求。而在实践中,有些厂商的监控周期设置不灵活,建议关注。

  2.性能监控指标

  在对后端IO进行性能监控时,数据块的IO的性能指标有很多,如随机或顺序特征、访问频率、IO大小、响应时间等。各厂商的分层存储技术所采用的统计指标也不尽相同。有的分层存储产品统计指标使用一种加权后的IO频率,将不同类型IO按权重进行加权,如将随机写的权重系数设置为最高、随机读次之、顺序读写权重最低,按一小时的统计结果进行综合计算;有的产品统计指标是IO次数、累积响应时间、带宽使用、随机或顺序特征等,然后综合计算;还有的产品主要统计读写访问频率、I/O大小、I/O顺序度,然后进行综合计算。

  性能监控除了按一个周期计算的周期内数据块热度,也有将几个周期进行加权平均计算的,如此做的好处是可以更好体现应用数据热度的趋势变化,拉低当前突发I/O(被历史数据所平均),从而有效减少突发IO对热点识别的波动。一般周期为T的加权平均计算的公式可能设计如下:

图片3.jpg

四、排布分析

  排布分析是在完成性能监控后,对监控数据进行分析,把数据块按照冷热程度进行排序,并按照数据块所在的卷进行分类,产生具体的迁移计划。由于具体监控指标存在差异,各产品在实现时也不尽相同。一般来说,可能有如下三种方式。

  (1)根据性能监控数据获得对所有管理颗粒的排序。按管理颗粒上各自的IOPH或IOPW大小由大到小进行排列,得到容量一负载曲线图。然后根据每一层可以容纳的性能上限或者容量上限之一计算分布在该层的管理颗粒数量,并且在两层交接的地带用一个常数a来设定一部分灰色地带,以三层来说明,Tier1>X,X>Tier2>Y,Y>Tier3;a值可以设置为下层容量的10%~20%;处于该灰色地带的管理颗粒,默认不进行迁移(如图2所示)。

图片4.jpg

  (2)将管理颗粒按IO特征和累积响应时间进行分组,在组内根据IO频率进行排序。再根据上一层剩余可以容纳的容量或性能,计算可以向上迁移的管理颗粒,优先将上一层用满。待上一层容量用满之后,将上下两层的上层最冷与下层最热的管理颗粒进行比较,根据上一层的性能剩余,计算产生可以进行交换动作的管理颗粒迁移计划。

  (3)根据存储池中各Tier的容量,按照数据块的热度确定出每个Tier放置管理颗粒的I/O计数阈值(最热数据放在最高性能层级)。对大于阈值的管理颗粒进行排序,选出最热的管理颗粒优先进行迁移。

五、数据迁移

  1.数据迁移概述

  数据迁移是磁盘机在满足触发条件后按照排布分析产生的迁移计划将冷热数据进行迁移的活动。数据迁移的触发包括手动触发和自动触发。手动触发可以根据需要立即触发迁移,自动触发是根据预先设定好的开始迁移时间和持续迁移时长进行自动触发迁移。

  磁盘机的首要任务是保障业务的正常运行,而数据迁移会占用部分磁盘机性能,所以数据迁移一般安排在磁盘机性能利用率较低的时候进行。当磁盘机性能利用率较高时,微码会自动在数据迁移动作内加入时间片,以减缓迁移速度,降低数据迁移对磁盘机的影响。

  迁移周期和监控周期可以同时进行。T1监控周期完成后,产生迁移计划T1*。在T2周期内,数据迁移和监控同时进行。T2周期结束后,产生新的迁移计划T2*,迁移计划T1*未全部完成,在下一个周期直接按新的T2*进行数据迁移(如图3所示)。

图片5.jpg

  2.迁移颗粒度

  分层存储技术的启用会使数据块在存储池内各层间进行迁移,以使热点数据配置到最优性能的介质,迁移颗粒度大小就是上文提到的管理颗粒度,可以预见迁移的颗粒度越小,迁移时对数据热点的针对性越高,迁移的效率越高。

  3.数据迁移的实现原理

  数据迁移的实现原理是从源数据中读取数据写入到目标位置。在迁移过程中,针对被迁移数据块的读IO会从源数据读取,写IO会同时写源数据块和目的数据块。迁移完成后释放源数据块,随后的读写都会访问目的数据块。

  4.迁移速度

  考虑到对磁盘正常读写影响程度,热数据迁移速度一般在80MB/s~190MB/s。一般还可以根据业务繁忙程度进行手动或自动设定迁移速度。

  5.驻留百分比

  对于磁盘机而言,单从性能的角度对数据块进行分层迁移管理,可能无法满足特殊重要应用的部署要求,有部分应用的IO访问压力较小,但却有部署于高性能层以满足突发IO的要求。笔者在实际实验时也发现某厂商提供这样的特殊功能,即可以设置卷在各层的百分比。对于选择不同策略的卷而言,不同的策略略有不同。当选择1号策略时,卷所在的层是任意的;当选择2号策略时,卷的位置会始终驻留在第一层;当选择3号策略时,卷所在的层会根据实际情况优先第一层,若第一层满则会部分部署于第二层;后面策略类似;几乎可以自定义卷在每一层的百分比(如图4所示)。

图片6.jpg

六、实验数据分析

  为进一步研究分层存储的运作原理,笔者选取了业界具有代表性的三个产品进行实验。物理环境架构如图5所示,使用IoMeter V1.1测试软件模拟业务数据,选取8K数据块,70%读,70%随机,并使用8个worker加压不同区域,分别为全盘、1/2、1/4、1/8、1/16、1/32、1/64、1/128。实验结果如表2所示。

图片7.jpg

图片8.jpg

  通过实验发现,由于三种产品运行的硬件环境存在一定的差异,且各产品在许多具体实现细则和策略选择上也不尽相同,实验数据存在一定差异。但从整体上看,存储设备在配置一定比例的SSD介质并启动分层存储功能后,IOPS都有大幅度的提升(48%~87%),响应时间有大幅下降(31%~46%);且随着SSD配比的增加,IOPS呈现增加趋势;符合实验设计预期。

  在本文实验中,可以发现目前商用分层存储产品均严格按照性能监控、排布分析、数据迁移三个阶段设计和实现,各阶段之间均有明显的等待时间。如果能够将监控、分析、迁移融合为一个整体算法,实现实时或准实时迁移,预计能进一步提升分层存储的性能优势。

(文章来源:《中国金融电脑》杂志)

扫码即可手机
阅读转发此文

本文评论

相关文章