原文:http://blogs.vmware.com/vsphere/2014/03/supercharge-virtual-san-cluster-2-million-iops.html



       现在,很多人都知道上周发布了 Virtual SAN 5.5,而且引起了轰动。在发布会上,我们公布了一些激动人心的性能数据,详细介绍了 32 节点 VirtualSAN 群集达到 200 IOPS 的情况。发布会后,我们常被问到的一个问题是:我们采用了哪些具体配置成就了这样卓越的性能。请不要着急,本博文将全面揭示所有这些熠熠生辉的细节!


       对于错过发布会的人来说,不必再感到遗憾,我们在发布会上发布了内部基准分析结果,结果表明 Virtual SAN 32 节点群集中线性扩展至 200 IOPS


       下面我们将详细介绍硬件配置、软件配置和用于两项基准分析测试的设置,一项采用 100% 读取工作负载,另一项采用 70% 读取和 30% 写入工作负载。首先介绍用于两项基准分析测试的软硬件配置。


       根据 Virtual SAN 的建议,我们采用了一致的节点来组成 32 节点群集。每个主机都是 DellPowerEdge R720,统一采用下列配置


        服务器硬件配置:

  • 处理器:双插槽 Intel     Xeon CPU E5-2650 v2 @ 2.6GHz (Ivy Bridge)。每槽 8 核,超线程启用。

  • 内存:128 GB     DDR38 16GB     DIMM @ 1833MHz

  • 网络:Intel     82599EB 10GbE

  • 存储控制器:LSI     9207-8i 控制器,带相位 18 固件。

  • SSD: 1     400GB Intel S3700 (INTEL     SSDSC2BA40),固件版本 DL04

  • 磁盘 HDD4 1.1TB     10K RPM Hitachi SAS 驱动器     (HUC101212CSS600),固件版本 U5E03 1.1TB     10K RPM Seagate SAS 驱动器     (ST1200MM0007),固件版本 IS04


        网络基础架构:

  • Arista     7050 交换机,10Gbe,标准 MTU1500 字节)


        软件配置:

        vSphere 5.5 U1,带 Virtual SAN 5.5,用于群集。我们进行了下列更改来默认 vSphere

        配置了下列 ESXi 高级参数。更多关于配置 ESXi 高级参数的内容,请查询下列知识库文章          http://kb.vmware.com/kb/1038578


  • 我们将 vSphere 网络堆栈的堆大小增加至 512MB“esxcli  system settings advanced set -o /adv/Net/TcpipHeapMax 512”

  • 允许 VSAN 构成 32 主机群集。“esxcli     system settings advanced set -o /adv/CMMDS/goto11 1”。(关于此命令的名称  goto11 的来历,请观看本视频剪辑

  • 我们为 LSI 存储控制器安装了相位 18 LSI 驱动器(mpt2sas  18.00.00.00.1vmw)。

  • 我们为性能配置了 BIOS 电源管理(系统配置文件设置),即禁用了所有节能功能。(关于电源管理设置如何成就顶尖性能的背景信息,请参见此白皮书)。


        Virtual SAN 配置:

  • 我们使用单个磁盘组/主机。每个磁盘组包含一个 SSD 和所有七个磁盘。

  • 每个主机都采用单个Virtual SAN vmkernel 端口,具有专用 10GbE上行链路。

 

        100% 读取基准分析

        测试 100% 读取 IO 配置文件时采用了下列配置。


        虚拟机配置:

       每个主机都运行单个 4-vcpu 32 Ubuntu12.04 虚拟机,VSAN 数据存储上有 8 个虚拟磁盘(vmdk 文件)。这些磁盘分布在两个 PVSCSI 控制器上。我们使用了 pvscsi 的默认驱动器版本 1.0.2.0-k


       我们修改了 pvscsi 的引导时间参数以更好地支持大规模工作负载和高未完成 IO“vmw_pvscsiNaNd_per_lun=254vmw_pvscsi.ring_pages=32”。有关配置此设置的更多背景,请参见http://kb.vmware.com/kb/2053145


       对于此基准分析测试,我们对 vmdks 应用了基于存储策略的管理设置HostFailuresToTolerate=0


       工作负载配置:

       在每个虚拟机中,我们运行具有 8 个工作线程的 IOMeter。每个线程都配置为在 8 GB 的单个 vmdk 上运行。每个线程运行 100% 读取,80% 随机工作负载,带 4096 字节 IO,在 4096 字节边界与 16 OIO 契合。事实上,每个主机上的每个虚拟机都发出:

  • 64GB 工作集的 4096 字节 IO 请求

  • 100% 读取,80% 随机

  • 128 OIO/主机汇总


       结果:

       我们将上述实验运行一小时,然后以 60 秒间隔测量汇总客户机 IOPS 。所测得的 IOPS 中值是庞大的 2024000       

wKiom1OqdrOwAjcCAAIBq38YMMM719.jpg


       70% 读取,30% 写入基准分析

       在测试 70% 读取 30% 写入 IO 配置文件时使用了下列配置。


        Virtual SAN 配置:

  • 单磁盘组/主机。每个磁盘组包含一个 SSD 和所有七个磁盘。

  • 对于此基准分析测试,我们对所有 vmdk 应用了基于默认     Virtual SAN 存储策略的管理设置 HostFailuresToTolerate=1     stripeWidth=1


       虚拟机配置:

       每个主机都运行单个 4-vcpu 32 Ubuntu12.04 虚拟机,VSAN 数据存储上有 8 个虚拟磁盘(vmdk 文件)。这些磁盘分布在两个 PVSCSI 控制器上。我们对 pvscsi 采用了默认驱动器(版本 1.0.2.0-k),并修改了 pvscsi 的引导时间参数,以更好地支持高未完成 IO“vmw_pvscsiNaNd_per_lun=254vmw_pvscsi.ring_pages=32”


       工作负载配置:

       在每个虚拟机中,我们运行具有 8 个工作线程的 IOMeter。每个线程都配置为在 4GB 的单 vmdk 上运行。每个线程运行 70% 读取,80% 随机工作负载,带 4096 字节 IO,在 4096 字节边界与 8 OIO 契合。事实上,每个主机上的每个虚拟机都发出:

  • 32GB 工作集的 4096 字节 IO 请求

  • 70% 读取,80% 随机

  • 64  OIO/主机汇总


       结果:

       我们将上述实验运行三个小时,然后以 60 秒间隔测量汇总客户机 IOPSIOPS 中值是 652900,在 60 秒中值点上客户机平均读取延迟是2.94毫秒,平均客户机写入延迟是 3.06 毫秒,每 IO 的汇总延迟为 2.98 毫秒。60 秒间隔期间的汇总网络吞吐量是 3178 兆字节/ (25.4Gbps)


wKioL1OqdiKC_J2XAAH_bjrjTt8639.jpg


        总结:

       100% 读取基准分析和 70% 读取基准分析都得出 VirtualSAN 线式扩展的明确结果,以可预见的方式为每个主机提供额外性能,每个主机仅需配置一个磁盘组。虽然 VirtualSAN 5.5 为首个版本,但是,这些数据证明,Virtual SAN 能提供满足现今几乎所有工作负载的卓越性能。


       鸣谢:

       在此我要感谢 VMware 性能工程团队的 LeninSingaravelu Jinpyo Kim,感谢他们在进行上述基准分析测试时所做的工作。我还要感谢云基础架构技术营销团队的 MarkAchtemichuk,感谢他在该博文创作过程中所给予的帮助。欢迎使用 VirtualSAN