ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 在DB2 for Linux, UNIX, Windows OLTP环境中使用Enterprise Flash Drives的好处

在DB2 for Linux, UNIX, Windows OLTP环境中使用Enterprise Flash Drives的好处

原创 Linux操作系统 作者:ArtCode 时间:2010-09-14 15:34:38 0 删除 编辑
Roger E. Sanders, 咨询公司系统工程师, EMC Corporation

简介: 

闪盘驱动器技术,也称为固态硬盘驱动器(SSD)技术,是在 30 年前出现的。然而,直到现在,这些驱动器高昂的成本和有限的容量使它们的应用范围仅限于边缘市场或军工应用。但是最近的闪盘驱动器技术发展和规模经济效应降低了成本,这使闪盘驱动器也成为许多 I/O 敏感的企业应用的一个可行的存储选项。

由于 EMC 在 Symmetrix 存储阵列上增加了闪盘驱动器,现在组织机构可以利用它为最高级企业需求优化的超高性能了。闪盘存储非常适合用于高事务率的应用,以及那些要求使用最快速的数据查询和存储的应用,如在线事务处理(OLTP)应用。

本文检查了一个使用 IBM® DB2® 9.7 for Linux®, UNIX®, and Windows® 数据库的 OLTP 应用在闪盘驱动器与在常规硬盘驱动器上的性能比较。它也阐述了将闪盘驱动器整合到存储基础架构的方法,这样您就可以快速地利用这个技术改进数据库性能并提高生产效率。

引言

长期以来,数据库性能都受到硬盘驱动器(HDD)的 I/O 功能的约束。这是因为 HDD 的性能受到诸如磁头移动(寻道时间)和旋转等待时间等机械约束的限制。而当 HDD 的容量指数级增加时,这些驱动器的速度并没有实现显著增长。事实上,在过去的 25 年里,HDD 的转速只是从 3,600 转/分(RPM)增加到 15,000 转/分,这仅仅提高了 4 倍的每秒输入/输出操作(IOPS)。

Enterprise Flash Drive (EFD),也称为 Solid State Drive (SSD),不需要使用机械移动,因此不存在寻道时间或旋转等待时间。这种不需要移动的方式能显著地提高 EFD 以非常低响应时间实现大 IOP 数的能力。事实上,增加了 EFD 的 Symmetrix 存储阵列能够实现 1 毫秒的应用响应时间,以及比传统 Fibre Channel (FC) HDD 最多高 30 倍的 IOP。而且,因为其中没有任何机械组件,EFD 每次 I/O 能耗比 FC HDD 最多可以减少 98%。

在 DB2 9.7、Symmetrix VMAX™ 和 EFD 发布后,EMC 和 IBM 都认为他们有机会一起合作确定 部署在 EFD 上的 DB2 9.7 for Linux, UNIX, and Windows (LUW) 数据库的性能。本文阐述了这个为确定性能所进行的测试,并说明了所得到的测试结果。本文也讨论了所验证的 EFD 最适合的数据库环境。

影响 HDD 性能的特性

Fibre Channel HDD 作为企业存储阵列主干已经多年了。而当这些驱动器快速地从某个容量基准点增长时,它们的 RPM 并没有相应地增加。事实上,最快的 HDD 速度 15,000 RPM 已经停滞很多年了,并且似乎还看不到有更快速度的技术出现。

除了 RPM,还有许多特性可能影响到 HDD 的性能。特别是以下这些特性:

  • 驱动器定位(寻道时间)。 这个时间是引动机制将磁头从当前位置移到一个新位置所需要的时间。寻道时间平均值一般为几毫秒,并且它取决于驱动器类型。例如,一个 15,000 RPM 驱动器的读操作需要大约 3.5 毫秒的平均寻道时间,写操作则需要大约 4 毫秒。(读操作的完整硬盘寻道时间是 7.4 毫秒,而写操作是 7.9 毫秒。)
  • 旋转等待时间。 这是磁头下的磁盘旋转到能读取所需要数据的正确位置所需要的时间。(平均旋转等待时间指的是磁盘旋转一半的时间。)对于 15,000 RPM 驱动器,这个时间大约为 2 毫秒。
  • 磁录密度。 这是测量可能存储在磁盘一面的数据位数的指标。当磁盘通过磁头时,密度越大,它可以被读取的数据量就越大。
  • 接口速度。 在一个 Symmetrix 阵列中,这指的是将数据从一个物理 HDD 传输到 Symmetrix 所需要的时间。由于这个时间产生的延迟一般是非常小的 — 大约是零点几毫秒。
  • 驱动缓存容量和算法。 这指的是驱动器上可用的缓存数,以及用于读写数据的算法集。驱动器缓存和算法一起可以提高数据进出驱动器的速度,以及为 RAID 5 实现进行奇偶检验。

总之,磁头在磁盘表面的移动所造成的延迟称为寻道时间,而确定磁头下所请求的数据位置进行数据轨道旋转所使用的时间称为 旋转延迟时间延迟。驱动器上的缓存容量、所使用的硬盘算法、接口速度和磁录密度组合到一起,就构成了 磁盘传输时间。而完成一次 I/O 请求(称为磁盘延迟时间)所需要的时间是寻道时间、旋转延迟时间和磁盘传输时间之和。

数据传输时间一般几毫秒,所以旋转延迟时间和寻道时间是一个物理 HDD 的主要磁盘延迟时间来源。虽然磁盘驱动器的旋转速度逐渐从 3,600 RPM 提高到 7,200 RPM、10,000 RPM 和最高的 15,000 RPM,但是平均旋转延迟时间仍然有几毫秒。因此,寻道时间一直是 HDD 的延迟时间的最主要来源。

 

EMC Enterprise Flash Drives

EMC Enterprise Flash Drives (EFD) 是用永久性半导体 NAND Flash 存储器构建,并包装在 Symmetrix DMX-4 和 VMAX 驱动器外壳中使用的标准的 3.5 英寸硬盘驱动器。与 FC 和 Serial ATA (SATA) HDD 使用旋转磁介质存储数字信息不同,EFD 是基于半导体的块存储设备,它是一种能够通过传统存储接口访问的虚拟 HDD,如 Fibre Channel。因为 EFD 没有移动的部件,所以它们不会像 FC 和 SATA HDD 那样受到寻道时间或旋转延迟时间的约束。这样,EFD 就能实现比相同大小的 FC 和 SATA HDD 更高的性能和效率。事实上,在一个 Symmetrix 存储阵列中,一个 EFD 能够以大约 1 毫秒的响应时间实现与 30 个 15,000 RPM 硬盘驱动器相同的 IOPS。EFD 也能够实现比 HDD 更大的激增写操作,并能够保持较低的响应时间 — 即使在大负载下。表 1 在几个方面比较了 HDD RAID 组与 EFD RAID 组。


表 1. HDD RAID 组 v.s. EFD RAID 组

HDD RAID 组 — RAID 5 (7+1) EFD RAID 组 — RAID 5 (7+1)
平均有效应用响应时间大约为 5-10 毫秒 一致有效应用响应时间为 1 毫秒
性能会因为数据位置和主轴争夺而有所不同 因为数据位置造成的性能变化很小
碎片会影响性能(需要额外的随机访问寻道时间) 无碎片影响(随机访问与顺序访问是相同的)
高度依赖于工作负载的“缓存友好性” 无论是否有工作负载“缓存友好性”都有效

Symmetrix 存储阵列中使用的企业级 EFD 与消费电子产品中使用的固态存储技术是有很大差别的,特别是在性能和可靠性方面。标准的基于闪盘的 SSD,如笔记本电脑上的,都没有进行写操作优化。这意味着虽然它的读取速度远远快于标准 HDD,但是写入速度则没有变化。通过使用创新性技术和组件,EMC 的 EFD 进行了写操作和使用寿命优化。这样 EFD 的写操作响应时间相对于 HDD 有了很大的改进。使用 EMC EFD,写操作会被缓冲到它们内部的 DDR SDRAM 缓存中,然后再写到 NAND 闪存中。这样能够减少设备的小型写操作的数量,从而优化了性能,并且有利于延长设备寿命。

EMC EFD 也使用了一种能保证平均使用闪存中的所有单元的技术。这可以减小低端闪存设备常见的“磨损”风险。通过高级算法和块管理,以及一个对于主机隐藏的存储单元池,EMC EFD 也能够平衡擦除和重写操作,从而保持最大的带宽和可靠性。(这也有利于延长驱动器的使用寿命。)此外,EMC EFD 也使用全双工错误修正码(ECC)数据完整性保护和离线电源备份来保护数据。这可以保证数据在存储后,或者未经修改返回,或者被标识为“可疑” — 非常类似于受保护的 HDD。

由于 HDD 和 CPU 速度不一样,IBM 的 DB2 LUW 专家谨慎地估计,在处理数据库工作负载时,每个 CPU (或核)需要大约 8 到 20 个 HDD,以避免过多的 I/O 等待。(使用的 CPU 类型、所需要的 IOPS 和预期吞吐量是准确确定所需要的 HDD 数量的因数。)对于大多数数据库工作负载,15,000 RPM FC HDD 能够实现的随机 I/O 性能是大约 150 - 180 IOPS、5 - 7 毫秒的延迟时间以及大约 30 - 60 MB/秒的连续扫描带宽。 因此,在许多客户环境中,要维持这样高的支持数据库工作负载的 IOPS 速度并实现合理的响应时间,只能在所使用的每个 HDD 上物理存储较少的数据。结果,HDD 上有大量的空间(大多数情况下大于 50%)是从不使用或很少使用的。而且这种状况只会随着 HDD 密度和容量的增加而变得更坏。

在 Symmetrix 存储系统中,来自一个主机的所有 I/O 请求都经过全局缓存。在正常的环境中,一个写请求是直接写入到缓存中而不会引起延迟的,因为它不需要访问物理磁盘。类似地,如果一个读请求到达,而所请求的数据已经在全局缓存中(可能是最近一次读或写,或者是一个顺序读取结果),这个请求不需要使用磁盘 I/O 就能完成。(任何不需要额外磁盘 I/O 操作而直接从缓存读取的读操作称为“读中”。)如果所请求的数据不在全局缓存中,那么它必须先从磁盘读取,然后再放进缓存中,之后 Symmetrix 才会将响应返回给请求。(这称为“读漏”。)当使用 HDD 时,由于完成这个请求需要额外的磁盘 I/O,所以一个读漏总是会导致更长的响应时间。

因为具有高 Symmetrix 缓存读中率的工作负载都是以内存访问速度实现的,所以在 EFD 中存储所需要的数据可能不会对性能有大的改进。另一方面,具有低 Symmetrix 缓存读中率的工作负载是那些使用随机 I/O 模式、由小型 I/O 请求(最大为 16 KB)组成以及要求高事务吞吐量的请求,使用 EFD 将能够最大地提高它们的性能。因此,从数据库方面看,在线事务处理(OLTP)环境很适合使用 EFD 数据存储。

OLTP 环境指的是使用和支持面向事务的工作负载的数据库环境,它一般由许多数据实体和查询操作组成。常见的 OLTP 包括银行应用、订单处理系统和航空订票系统。OLTP 环境一般有大量的随机 I/O 请求。结果,它一般需要大量的物理磁盘读操作来保证实现一致的低事务响应时间。因此,OLTP 事务通常会需要大量的磁盘 I/O 等待时间。而且,由于 HDD 内在的机械延迟时间,这个等待时间在 HDD 上会比 EFD 长得多。

在 OLTP 环境中,使用 EFD 比传统的 HDD 有以下方面的优点:

  • 实际需要的物理驱动器更少
  • I/O 和吞吐性能更高
  • 实际响应时间更少
  • 能耗更小
  • 所需要的实验空间更少

为了确定在一个 OLTP 环境中使用 EMC EFD 的好处,我们对两个相同的 DB2 9.7 LUW 数据库运行了一个由 60% 随机读取和 40% 随机写入的数据库工作负载。其中一个数据库将数据存储在 EFD 中;另一个将数据存储在有相似配置的 FC HDD 上。当这两个工作负载运行后,我们会收集到性能数据,以及这些数据的最终比较结果。

测试环境

用于确定在一个 DB2 9.7 LUW OLTP 环境中使用 EMC EFD 的优点的配置如 表 2 所示。


表 2. 测试环境

组件 说明
服务器: 1 个运行 AIX 6.1 (64 bit) 和 DB2 9.7 for Linux, UNIX, and Windows 的 IBM p520。
存储: 1 个包含两个引擎和 128 GB 全局缓存(镜像)并运行 Enginuity™ 5874 的 Symmetrix VMAX。这个 Symmetrix VMAX 使用了以下配置:

  • Tier 0 — Enterprise Flash Drives (EFDs):
    • 1 个 RAID 5 7+1 配置中的 8 个 400 GB 驱动器; 1 个备用
    • 32 个 设备(作为 32 个单独 LUN 的主机) — 16 个用作测试数据库,另外 16 个作为备份镜像的知识库(结果是大约 1.4 TB 空间用于数据库,而另外 1.4 TB 空间用于备份镜像)
  • Tier 1 — Fibre Channel Hard Disk Drives (FC HDDs):
    • 1 个 RAID 5 7+1 配置中的 8 个 450GB 15K RPM 驱动器
    • 32 个 设备(作为 32 个单独 LUN 的主机)— 16 个用作测试数据库,另外 16 个作为备份镜像的知识库
注意: 每一个设备的大小约为 80,625 MB。

此外,启用 Dynamic Cache Partitioning (DCP) 并将它设为 10%。这样做是为了保证不会将整个数据库填充到缓存中,而导致磁盘 I/O 发生。
连接: IBM p520 和 Symmetrix VMAX 之间的连接是通过 4 个连接到 4 个 4 GB 前端 FA 端口的主机发起者实现的。使用 PowerPath® 5.3 HF1 实现服务器和存储之间的多路径。

测试场景

当测试环境建立后,I/O 测试就会启动,并且一位 EMC Performance Engineer 会执行一些基本的系统调优,以保证硬件配置能实现最优的 I/O 性能。然后,在 Tier 0 存储(EFD)中创建一个 1.2 TB DB2 9.7 LUW 数据库。填充数据到数据库,然后由 IBM Toronto Lab 的一位 DB2 LUW Performance Engineering 团队工程师将 DB2 实例和数据库配置为最佳性能。重要的是,要注意当每一个数据库表空间创建时,文件系统缓存已经通过指定 NO FILE SYSTEM CACHE 子句并被禁用。此外,Deep Compression 则被用于压缩表和索引数据。

在创建、填充和调优后,我们需要备份数据库,这样测试环境就能够返回每次测试之前相同的“基线”状态。

当测试环境准备好并创建了数据库镜像后,IBM 的 DB2 Transaction Workload (DTW) 基准测试工具将用于生成一个 OLTP 工作负载,它将平均分布在所有的可用系统资源之中。(DTW 基准测试的特点是拥有非常高的 I/O 事务率和大数量级并发用户。对于我们的测试,我们模拟了 400 个执行查询的并发用户,其中组合了不同的 SELECT、INSERT、UPDATE 和 DELETE 操作。正如之前所提到的,所执行的读与写操作比例是 60/40,读操作占多数。)每一个测试都以一个 20 分钟“快速启动时间”开始,然后是 30 分钟的“运行时间”。在 30 分钟的运行时间中,它会监控数据库操,并收集服务器和 Symmetrix VMAX 的数据。当 Symmetrix 监控显示 EFD 和 DA 处理的使用率为 100% 时,数据库备份镜像会将测试环境复制到 Tier 1 存储(HDD),然后测试/监控过程会再次执行。

在收集到 EFD 和 HDD 配置的监控数据后,这些结果会被编译,然后生成下面 测试结果 所示的数据。

测试结果

图 1 显示的是使用 DTW 对存储在 EFD 上的 DB2 9.7 LUW 进行基准测试时所获得的使用状况截图。这个截图是在 20 分钟快速启动时间之后,在 30 分钟运行时间一半时截取的。


图 1. IBM DTW 基准测试时的 EFD 驱动器的使用状况图
使用 DTW 对存储在 EFD 上的 DB2 9.7 LUW 进行基准测试时所获得的使用状况截图

图 1 显示的图是使用 EMC 内部性能分析工具生成的,这显示了 Symmetrix 后台中驱动器使用的“热图”。阵列中的每一个物理磁盘驱动器都表示为一个矩形,而这个矩形对应于阵列中某个物理位置的驱动器。矩形被着色,用以表示物理驱动器的使用状况,不同颜色对应于图片左边的颜色图例。蓝色阴影表示未使用或很少使用的的磁盘;绿色阴影表示使用率在 40% - 60% 之间的磁盘;而黄色、橙色和红色阴影则表示有很高使用率的磁盘。

正如 图 1 使用状况截图所表示的,数据显示 EFD 和 DA 处理器的使用率是 100%。(其他数据显示 FA 通道达到 70% 的使用率。)图 2 显示了在同一个测试过程中在前端和后台所测试到的 IOPS 值。


图 2. 在 IBM DTW 基准测试过程中测得的 EFD IOPS 值
截图显示在 IBM DTW 基准测试过程中测得的 EFD IOPS 值

图 2 显示,前端测得的 IOPS 值约为 30,000,这是只使用 8 个 EFD 能达到的非常高的结果了。DTW 基准测试工具在这个测试执行过程中所获得的数据表明,这个数据库每秒平均处理 302.93 个事务。

图 3 显示的是在数据库移到 FC HDD 后所运行的 DTW 基准测试所获得的使用状况图。同样,这个图也是在 20 分钟快速启动时间之后,30 分钟运行时间执行一半时截取的。


图 3. IBM DTW 基准测试过程中 HDD 驱动器使用状况图
对存储在 FC HDD 上的 DB2 9.7 LUW 数据库运行 DTW 基准测试所获得的使用状况截图

图 3 所示,监控显示 FC HDD 和 DA 处理器的使用率为 100%。图 4 显示在测试的前端和后台所测得的 IOPS 值。


图 4. 在 IBM DTW 基准测试过程中测得的 FC HDD IOPS 值
截图显示在 IBM DTW 基准测试过程中测得的 FC HDD IOPS 值

正如 图 4 所显示的,这一次在前端所测得的 IOPS 值约为 4,000。而在这个测试过程中由 DTW 基准测试工具获得的数据表明这个数据库平均每秒能处理 36.04 事务。

存储设备中唯一不同的是用于存储数据库的部分,Symmetrix VMAX 在 Tier 1 (FC HDD) 测得的 I/O 速度 是 3,974 IOPS(每秒处理 36.04 个事务),而在 Tier 2 (EFD) 上测得的速度是 30,047 IOPS(每秒处理 302.93 个事务)— 性能提高了 9 倍! 在这两种情况下,Symmetrix 监控显示驱动器和 DA 处理器使用率都为 100%。因此,测试结果表明,当在 OLTP 环境中使用 DB2 9.7 LUW 时,EMC Enterprise Flash Drives 能实现上面标题为 最适合于 EFD 的数据库工作负载 小节所提到的所有好处。

CPU 速度超过了传统硬盘驱动器的性能,而由旋转磁盘和磁头移动所引起的延迟会限制存储在传统 HDD 上的数据的访问速度。EMC EFD 几乎瞬时的数据访问可以克服这个问题,并能大大提升 I/O 性能。通过 EFD,磁盘驱动器技术不再是限制关键任务存储环境的性能极限的原因了。此外,在 EFD 中,不需要再考虑将工作负载散布到许多未充分使用的磁盘驱动器中。

本文详细地分析了运行在一个使用 EFD 技术的 Symmetrix VMAX 上的 DB2 9.7 LUW OLTP 工作负载。所讨论的这个测试说明了 EFD 用在一个 OLTP 数据库环境时能大大提高 I/O 性能(约为 9 倍)。这个性能改进能够变成业务输入的提升,并且能减少驱动器。因此,这也最终能减少能耗、减少空间需求和节省总体成本。

致谢

作者非常感谢 Bill Brown、Don Fried-Tanzer 和 John Adams 在配置、创建和优化用于测试的硬件时所给予的帮助;感谢 Sunil Kamath 和 John Tran 在设计、构建、填充和优化所使用的 DB2 9.7 DB2 数据库以及安装、配置和运行 DTW 测试时所给予的帮助;感谢 Richard Otte 在测试过程中监控 Symmetrix VMAX 和提供前端、驱动器和后台性能数据截图时给予的帮助;感谢 Berni Schiefer 对本文的审校和反馈意见。

原文链接:http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-1004emcenterpriseflashdrives/index.html

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15082138/viewspace-673879/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-08-05

  • 博文量
    269
  • 访问量
    558155