NetApp:无需添加磁盘亦可提高性能

互联网 | 编辑: 杨雪姣 2008-12-15 14:16:00转载-投稿 一键看全文

PAM 软硬件概述

Tech OnTap 的读者可能大多都知道,存储系统的随机读取性能在很大程度上取决于硬盘数(存储系统中的硬盘总数)和硬盘转速(单位 RPM)。但是,为提高性能而增加硬盘就意味着需要更多的功耗、散热及空间;而且,伴随着硬盘容量增加速度快于其性能表现的提升,很多应用程序可能为了获得最佳性能而要求增加磁盘轴,即便它们并不需要如此大的容量。

在开发性能提高模块(Performance Acceleration Module,简称 PAM)时,NetApp 的目标就是突破随机读取性能和轴数之间的联系,使得存储系统能在提供更高级别性能的同时减少对功耗、散热和空间的需求。衡量性能的其中一个重要方面是延迟时间或响应时间,亦即满足指定读取请求的时间。对于 PAM 而言,NetApp 将其目标定为在高 CPU 负荷 (80%) 的情况下,缩短一个数量级的平均读取延迟。我们首次发布的产品成功实现了这一目标。在内部测试过程中,我们还发现 PAM 能使 Microsoft Exchange、VMware、文件服务及 Perforce 等多种常用应用程序显著提速。

本文将深入探讨 PAM,其中包括:

PAM 软硬件概述

读取缓存策略

使用预测缓存统计 (PCS) 功能确定能否受益于 PAM(无需购买模块)

什么是 PAM?

简而言之,性能提高模块就是二级缓存:用于存放从 WAFL 缓冲区高速缓存中退出的块。(WAFL 即 NetApp® 的“任意位置写入文件布局”,用于定义 NetApp 如何在磁盘上排列数据。WAFL 缓冲区高速缓存是系统内存中由 WAFL 维护的读取缓存。)在没有 PAM 的系统中,每次尝试读取系统内存中并不存在的数据时都会造成磁盘读取。配备 PAM 后,存储系统在发出磁盘读取前,会先检查请求的读取是否已缓存到其安装的任一模块中。Data ONTAP 在系统内存中保留了一组缓存标记,因此它无需访问模块也可确定是否有块驻留在 PAM 中。由于在命中缓存时只需进行一次 DMA 操作,因此,这种能力可有效缩短访问延迟。与任何缓存一样,成功的关键在于“决定什么数据可进入缓存”的算法。我们接下来将详细探讨此问题。

性能提高模块可加快从各类工作中读取数据的速度,但它其实最适合具有大量小规模随机读取(例如消息传送、基于文件的应用程序、主目录)的工作。磁盘驱动器很难应付此类工作,因为在传输数据之外,它们还需要耗费大量时间去寻找指向正确位置的驱动器机头。

图 1) 是否使用 PAM 进行随机读取的对比

PAM 是由硬件和软件组合而成的(PAM 软件称为 FlexScale)。要启用硬件必须具备许可。PAM 硬件模块的长度是 PCIe 卡的四分之三,每个模块可对 16GB 的 DDR2 内存进行双通道 DMA 访问,模块上含有一个自定义编码的现场可编程门阵列 (FPGA),它可提供加速缓存任务所需的板载智能功能。表 1 中列出了各款存储系统所支持的最大模块数目。
 
表 1) 每个控制器(按系统类型)的最大 PAM 模块数目。

FAS/V 系列

模块最大数目

扩展缓存

FAS6080 / V6080
FAS6070 / V6070
    SA600

5

80GB

FAS6040 / V6040
FAS6030 / V6030
FAS3170 / V3170

4

64GB

FAS3070 / V3070
FAS3140 / V3140
    SA300

2

32GB

FAS3040 / V3040

1

16GB

强大的恢复能力是 PAM 的设计宗旨之一。由于该模块可充当缓存使用,因此可直接丢弃不可纠正的错误以利于磁盘读取。如果模块中的不可纠正错误率超过设定的阈值,模块将自动禁用,且系统将恢复为未缓存操作,不会中断服务或要求重启。在此过程中,ECC 将用于检测误码,而数据 CRC 则保护从 CPU 到卡内存再到 CPU 的端对端数据传送。

一旦出现模块禁用情况,系统就会显示错误消息并指出需要换出的问题模块。如果启用了 NetApp AutoSupport,系统还会向 NetApp 传送消息,以便我们采取纠正措施(具体视服务协议的期限而定)。

智能缓存

PAM 中实施的缓存策略,旨在优化小块随机读取对存储系统的访问。随机读取是指对存储系统磁盘中非邻接数据的读取。此类读取在逻辑位置上并不相邻,因此它们比起进行本地读取较多的工作而言会更难满足,需要更多的磁盘寻道操作和更长的平均读取延迟时间。另外,由于此类读取是随机的(由定义上看),所以根本无法预测所需的下一个块的位置并提前获取。

相反,连续读取因能够同时读取磁盘中的大量连续数据而经常得到满足。而且,不少算法都能够有效识别连续读取活动并预先读取数据。因此,我们最好是直接从磁盘中读取此类数据,而为可能再次读取的随机访问数据留出可用的读取缓存。

这正是 PAM 缓存算法试图实现的方式:默认情况下,它们会尝试从连续和(或)低价值的数据中区分出高价值的随机读取数据并将其保留在缓存中,以此避免耗时的磁盘读取过程。

需要注意的是,PAM 缓存是基于 WAFL 来实现的。因为到了此时,我们已拥有比原来更为充足的数据信息,可对需缓存和可放弃的数据做出更为明智的决定。

提示:试试键盘 “← →” 可以实现快速翻页 

总共 2 页12
一键看全文

本文导航

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑