自动存储分层和NetApp 虚拟存储层

自动存储分层 (AST) 技术主要用来帮助数据中心在最大程度地降低成本和复杂性的同时,从基于闪存的介质性能改善中受益。基于闪存的设备(如基于固态硬盘 [SSD] 控制器的闪存)每秒可完成的随机读取操作数比最快的硬盘驱动器 (HDD) 多 25 到 100 倍,但是要达到这样的性能,每 GB 成本也要高出 15 到 20 倍。HDD 的容量在不断地提高,但在每美元 IOPS 方面,HDD 却没有多少改进。闪存所提供的每美元 IOPS 则要多得多,而且延迟时间更短。

图 1) 不同类型固态介质和旋转介质的随机读取效率对比(以对数刻度表示)。请注意,在每美元 IOPS 方面,不同 HDD 类型之间的差别相对较小。

自动存储分层会尝试识别热数据并将其存储在性能较高的存储介质上,同时将冷数据存储在速度较慢、成本较低的介质上,而不是将整个数据集永久地放置在昂贵的介质上。

为了构建最佳解决方案,NetApp 投入了大量时间和精力来了解 AST 必须解决的问题。

本文包括以下内容:

    ·评价 AST 技术所依据的标准

    ·基于迁移的 AST 方式与基于缓存的 AST 方式

    ·NetApp 虚拟存储层 – 基于缓存的 AST 方式

评价 AST 技术

从 I/O 角度来看,AST 的主要目标是将随机 I/O 尽可能多地转移到高性能介质(闪存)上,以最大程度地减少 HDD 上的随机 I/O 负荷,并减少平均延迟。随机 I/O 和顺序 I/O 之间的区分非常重要,因为对于连续读写,闪存与 HDD 相比性价比优势并不明显(原因在于 HDD 非常适于处理顺序 I/O)。

图 2) 不同类型固态介质和旋转介质的连续吞吐效率对比。

以下几个因素会影响 AST 解决方案实现上述目标的能力:

   ·数据存储的粒度如何?处理的数据块越小,用于存储数据的系统和 HDD 资源的效率就越高,并且冷数据“跟随”热数据移动并毫无益处地耗用昂贵介质的可能性也越小。

   ·如何识别热数据以及速度加快了多少?热数据进入闪存的速度越快,错过 I/O 活动中相对短暂的高峰期的可能性就越小,需要的 HDD I/O 就越少,并且平均延迟时间缩短的幅度就越大。

从操作角度来看,还需要考虑以下几个因素:

部署和管理该解决方案的难度如何?如果部署 AST 解决方案需要进行重大的重新配置,或需要大量的监控和管理,那么可能会得不偿失。

该解决方案如何与您使用的其他存储技术(备份、重复数据删除、精简配置等)集成?您一定不希望在部署一个解决方案之后,发现备份不能执行,或者虽然能执行,但却需要大量地移动数据。

实现 AST 的两种不同方式:迁移与缓存

实现 AST 有两种本质上不同的方式:迁移和缓存。

基于迁移的 AST 可自动化数据迁移的流程。当一个数据块被确定为“热”数据时,会将该数据块移至速度较快的介质,当该数据块变“冷”时,会将其移回速度较慢的介质。移入和移出闪存都需要访问 HDD。

基于缓存的 AST 使用广为人知的缓存方式将热数据“提升”到高性能的介质中。由于 HDD 上仍保留有数据的副本,因此当数据变“冷”时,只需将其从缓存中释放即可,而不需要额外的 HDD I/O。

图 3) 基于缓存的自动存储分层与基于迁移的自动存储分层。

NetApp 虚拟存储层

根据我们前面讨论的评价标准,NetApp 考察了这两种实现 AST 的方式,并得出以下结论:基于缓存的 AST 方式更符合这些标准的要求。

此外,NetApp 还能够专注于优化读取性能,因为 NetApp 任意位置写入文件布局 (WAFL) 能够有效地将写入活动转变成连续写入,而 HDD 适于处理连续写入(如图 2 所示)。Mike Riley 和 Tech OnTap撰稿人 John Fullbright 最近发表的一篇博文中对此进行了详细介绍。(这也是 NetApp 双奇偶校验 RAID [RAID-DP] 能够提供良好的写入性能,而其他 RAID 6 实施方案无法提供的原因。)

图 4) NetApp 虚拟存储层是基于缓存实现自动存储分层的一种方式。

NetApp 虚拟存储层将热数据提升到缓存,同时将 HDD I/O 开销保持在最低水平。无论何时接收到针对卷或 LUN 上某个数据块的读取请求,系统都将自动提升该数据块。请注意,数据块提升不是数据迁移,因为将数据块复制到虚拟存储层时,数据块仍保留在 HDD 上。提升是直接在系统缓冲区缓存中发生的,所以不需要额外的 HDD I/O。

由于数据块在第一次从磁盘读取之后可以立即进行提升,因此也不需要额外的磁盘 I/O。相比之下,基于迁移的 AST 实施通常在多次从磁盘读取热数据之后或直到执行计划的下一次迁移时,才会提升热数据,并且还需要额外的磁盘 I/O,才能完成迁移流程。

NetApp 算法可将高价值数据与低价值数据区分开,并将高价值数据保留在虚拟存储层中。例如,系统始终会在第一次读取元数据时就将其提升到缓存中。相比之下,除非是专门启用,否则在虚拟存储层中一般不会缓存连续读取,因为连续读取往往会挤掉更有价值的数据的位置,而且如我们前面所看到的,HDD 更适于处理连续读取。您可以更改此行为,以满足具有不同服务级别要求或独特数据访问行为的应用的要求。

虚拟存储层优势

在精细粒度级别实时提升热数据。数据块通常在第一次从磁盘读取时就进入虚拟存储层。由于后续读取在虚拟存储层中即可完成,因此可以实时显现性能优势。系统会识别读取行为模式并提前读取可能需要的数据块,但是虚拟存储层绝不会将数据大量地从一个存储层移至另一个存储层。这样可将 HDD I/O 以及其他系统资源的使用量保持在最低水平。该方式带来的效率与在单个 4 KB 数据块粒度级别上的操作能力相结合,可支持热数据实时提升。

采用基于迁移的 AST,热数据从一个存储层迁移到另一个存储层要通过后台任务的方式,或者要安排在非高峰期执行,以最大限度地减少存储系统上的额外负载。由于这些解决方案通常在至少高出虚拟存储层 128 倍的粒度级别(从 0.5 MB 到 1 GB,甚至是整个卷或 LUN)上运作,因此数据移动会花费相当长的时间。如果活动的重要高峰期的持续时间少于识别和提升热数据所需的时间,那么此类方式可能会错过重要高峰期。

虚拟存储层的 4 KB 粒度意味着它能非常高效地使用基于闪存的介质。具有较粗粒度的解决方案可能会随每个热数据块包括大量“冷”数据,因而可能需要更多的昂贵闪存介质,才能达到相同的结果。

易于部署和管理。虚拟存储层可作用于现有数据卷和 LUN。它不需要您对存储环境进行复杂或者颠覆性的变革。您也无需为数据移动设置策略、阈值或时间窗口。您只需将闪存技术安装在您的存储系统中即可。完成安装之后,虚拟存储层将对存储控制器所管理的所有卷发挥作用。如有需要,您随后可以在虚拟存储层中排除优先级较低的卷的用户数据。

其他 AST 解决方案都需要设置增量策略、划分数据类别以及对现有存储基础架构进行结构性更改,例如创建专用存储池和迁移数据。

完全集成。虚拟存储层与 NetApp 统一存储架构完全集成,这意味着您可以将其用于任何 NAS 或 SAN 存储协议,而无需任何更改。

此外,基于迁移的 AST 解决方案可能无法与存储效率功能(如重复数据删除)配合使用,而 NetApp 虚拟存储层则可以与所有 NetApp 存储效率功能(包括精简配置、FlexClone 技术、重复数据删除和压缩)协同工作。此紧密集成可以增加您的优势并增强虚拟存储层的功能。

例如,当您对某卷进行重复数据删除时,所带来的好处在虚拟存储层中也会体现出来。系统中可能有多个元数据指针指向虚拟存储层中的某一数据块,因而会增加该数据块再次被读取的概率,这使得提升该数据块更有价值。借助此缓存扩增,虚拟存储层中的单个块可用作多个逻辑块。这样会给服务器和桌面虚拟化环境带来显着的性能优势(如缩短启动风暴持续时间),同时减少需要的闪存介质数量。

结论

与基于迁移的 AST 方式相比,我们基于缓存的 AST 方式为 NetApp 虚拟存储层带来了显着的优势。虚拟存储层能够实时提升数据,因此即使活动的高峰期非常短,也能从加速中受益。4 KB 粒度意味着我们可以非常高效地将冷数据从闪存中排除,因此获得良好结果所需的闪存就更少。相比之下,基于迁移的 AST 方式的粒度比较粗、在提升数据之前会有较长时间的延迟、需要更多的 HDD I/O,并且使用基于闪存的昂贵介质时效率较低。

事实上,虚拟存储层将 HDD 用作容量层,将闪存用作性能层。您可能拥有各种类型的磁盘驱动器,如 FC、SATA 和 SAS。其中任一种磁盘驱动器都可以用作容量层,虚拟存储层则提供性能。我们相信,在将来,高性能层(基于虚拟存储层)和单个磁盘驱动器层(基于 SATA 磁盘)的结合将会成为对大多数应用最行之有效的一种方式。