VMware vSAN性能测试那点不得不说的事

VMware vSAN性能测试那点不得不说的事

原创 李严省 虚实之路 2018-01-11

    最近几天在给客户做VMware SDDC产品POC测试,其中使用vSAN作为共为共享存储,刚好有机会全方位测试VMware vSAN性能。根据测试结果谈谈几点感想。

 

一、测试硬件环境

服务器:联想X3650 M5

CPU:Intel 2路8核Xeon E5-2630 v3 2.4GHz

内存:512GB DDR3

HDD:14*1.2TB SAS磁盘

SSD:2块S3710 400G SATA 2.5寸 MLC G3HS Enterprise SSD

Raid控制器:M5210(使用Raid 0模式)

网络适配器:2个10G网卡

       数量:3台服务器

交换机:2台10G网络交换机

 

 

二、测试软件版本

VMware vSpherevCenter:

       VMware-VCSA-all-6.5.0-7515524.iso

 

VMwarevSphere ESXi:

VMware-VMvisor-Installer-6.5.0.update01-5969303.x86_64.iso

 

三、vSAN配置情况

vSAN网络:

VMware vSAN性能测试那点不得不说的事

    vSAN网络如上图所示,vmnic4网络为活动网络,vmnic6为备份网络,当vmnic4网卡或对应的万兆交换机出现故障后,vSAN网络自动切换至vmnic6网络。强烈建议两个万兆交换机做堆叠。

 

磁盘组:

VMware vSAN性能测试那点不得不说的事

    每个ESXi主机有2个磁盘组,每个磁盘组由1块SSD和4块HDD磁盘组成。vSAN集群共3台ESXi主机,即共6个磁盘组,6块400G的SSD和24块1.2T SAS磁盘。

 

四、VMware vSAN测试情景

 

——测试场景1:测试虚拟机磁盘为4个磁盘,4KB随机读写——

测试虚拟机:

       虚拟机数量:3个(每个ESXi主机一个虚拟机)

       虚拟机配置:4vCPU,6G内存,4块10G磁盘

测试工具:

       测试软件:IOmeter

       Work数量:4个Worker

       IOStandard:16

测试内容:4K 70% Read 50%随机

测试结果

虚拟机1:

VMware vSAN性能测试那点不得不说的事

虚拟机2:

VMware vSAN性能测试那点不得不说的事

虚拟机3:

VMware vSAN性能测试那点不得不说的事

测试小结:

       虚拟机1:

              IOPS:         19904次/s

              吞吐率:       70.11MB/s

              平均延时:    3.56ms

              CPU使用率:8.09%

       虚拟机2:

              IOPS:         17948次/s

              吞吐率:       77.75MB/s

              平均延时:    3.21ms

              CPU使用率:8.67%

       虚拟机3:

              IOPS:         17417次/s

              吞吐率:       68.04MB/s

              平均延时:    3.67ms

              CPU使用率:8.31%

       通过本次测试3个虚拟机在平均IO延时为3ms左右的总的IOPS为19904次/s +17948次/s +17417次/s =55269次/s

 

——测试场景2:测试虚拟机磁盘为8个磁盘,4KB随机读写——

测试虚拟机:

       虚拟机数量:3个(每个ESXi主机一个虚拟机)

       虚拟机配置:8vCPU,6G内存,8块10G磁盘

测试工具:

       测试软件:IOmeter

       Work数量:8个Worker

       IOStandard:16

测试内容:4K 70% Read 50%随机

测试结果

虚拟机1:

VMware vSAN性能测试那点不得不说的事

虚拟机2:

VMware vSAN性能测试那点不得不说的事

虚拟机3:

VMware vSAN性能测试那点不得不说的事

测试小结:

       虚拟机1:

              IOPS:         31938次/s

              吞吐率:       124.76MB/s

              平均延时:    4.00ms

              CPU使用率:7.86%

       虚拟机2:

              IOPS:         28265次/s

              吞吐率:       110.41MB/s

              平均延时:    4.52ms

              CPU使用率:7.17%

       虚拟机3:

              IOPS:         32252次/s

              吞吐率:       125.98MB/s

              平均延时:    3.96ms

              CPU使用率:6.60%

       通过本次测试3个虚拟机在平均IO延时为4ms左右的总的IOPS为31938次/s +28265次/s +32252次/s =92455次/s

 

——测试场景3:测试虚拟机磁盘为8个磁盘,1MB顺序读——

 

测试虚拟机:

       虚拟机数量:3个(每个ESXi主机一个虚拟机)

       虚拟机配置:8vCPU,6G内存,8块10G磁盘

测试工具:

       测试软件:IOmeter

       Work数量:8个Worker

       IOStandard:16

测试内容:1MB 100% Read 100%顺序

测试结果

虚拟机1:

VMware vSAN性能测试那点不得不说的事

虚拟机2:

VMware vSAN性能测试那点不得不说的事

虚拟机3:

VMware vSAN性能测试那点不得不说的事

测试小结:

       虚拟机1:

              IOPS:         627.48次/s

              吞吐率:       627.48MB/s

              平均延时:    202ms

              CPU使用率:0.63%

       虚拟机2:

              IOPS:         540.35次/s

              吞吐率:       540.35MB/s

              平均延时:    235ms

              CPU使用率:0.65%

       虚拟机3:

              IOPS:         568.13次/s

              吞吐率:       568.13MB/s

              平均延时:    224ms

              CPU使用率:0.70%

       通过本次测试3个虚拟机在大IO连续读总的吞吐率为627.48 MB/s+540.35MB/s+568.13MB/s=1735.96MB/s

 

 

——测试场景4:单个虚拟机单个磁盘,1MB顺序写——

 

测试虚拟机:

       虚拟机数量:1个

       虚拟机配置:8vCPU,6G内存,1块10G磁盘

测试工具:

       测试软件:IOmeter

       Work数量:1个Worker

       IOStandard:16

测试内容:1MB 100% Write 100%顺序

测试结果

虚拟机1:

VMware vSAN性能测试那点不得不说的事测试小结:

通过本次测试1个虚拟机在大IO连续写总的吞吐率为147.10MB/s

 

五、测试结果分析说明之1:虚拟磁盘数量越多性能越好

 

       通过以上3个场景的测试,vSAN不管是针对小IO的随机读写性能,还是大IO的连续读写都相当的漂亮,比一般中端的传统存储的性能都好。

       但细心的读者肯定能发现第1个测试场景和第2个测试场景测试内容的不同,2个测试场景都为4K 70% Read 50%随机,但二者的区别为第1个测试场景测试虚拟机的虚拟磁盘的数量为4,iometer的Work为4,即同时对4个虚拟磁盘进行读写。而第2个测试场景测试虚拟机的虚拟磁盘数量为8,iometer的Work为8,同时对8个虚拟磁盘进行读写。场景1的测试结果是3个虚拟机总的IOPS为55269次/s,场景2测试结果则达到了92455次/s,总体的IOPS提升非常明显。

为什么vSAN会出现这家种情况?就是测试的虚拟机的虚拟磁盘数量越多,总体性能越好?这得从vSAN的虚拟磁盘分布原理说起。默认的vSAN存储策略,一个虚拟磁盘会有两个副本,放在不同的ESXi主机的机械磁盘上。本次测试的ESXi配置2个磁盘组,每个磁盘组由4个机械磁盘组成,即一个esxi主机有8块机械磁盘。3个ESXi主机共24块机械硬盘,测试虚拟机也为3个,每个虚拟机的虚拟磁盘配置为4的时候,则只有12个虚拟磁盘,共计24个磁盘组件。而这24个磁盘组件不会刚好完全分散到24块机械磁盘上(有20多个其它应用测试虚拟机),即通过iometer对3个虚拟机进行IO性能测试时,就无法完全发挥24块机械磁盘的性能。测试场景2则每个虚拟机配置8个虚拟磁盘,3个虚拟机共24个虚拟磁盘,48个虚拟磁盘组件,相对场景1来说更能均匀的分散到24块机械磁盘上,3个虚拟机在进行IO测试时,就能充分发挥24块机械磁盘的性能。因此场景2的测试结果明显好于场景1。

 

场景1 测试时3台ESXi服务器机械磁盘的读写情况

VMware vSAN性能测试那点不得不说的事

VMware vSAN性能测试那点不得不说的事

VMware vSAN性能测试那点不得不说的事

 

场景2测试时3台ESXi服务器机械磁盘的读写情况

VMware vSAN性能测试那点不得不说的事

VMware vSAN性能测试那点不得不说的事

VMware vSAN性能测试那点不得不说的事

 

    通过两个场景ESXi主机磁盘的IO读写情况,刚好符合我刚才的推测,即有更多的机械硬盘参与到SSD缓存磁盘的刷盘中,相对vSAN整体IO性能会更好。

 

六、测试结果分析说明之2:vSAN连续IO读写性能并不差

       由上面测试分析结果可知,测试场景3的3个虚拟机共24个虚拟磁盘的连续大文件IO读总的吞吐率达到1735.96MB/s。连续大IO读写,此时vSAN的SSD缓存已经不能全部缓存这么多连续数据,需要持续不断的刷盘到HDD机械磁盘中,因此可见测试场景3时的3个ESXi主机的各机械磁盘的读写情况,如下图所示:

VMware vSAN性能测试那点不得不说的事

VMware vSAN性能测试那点不得不说的事

VMware vSAN性能测试那点不得不说的事

    

    测试场景4则为1个虚拟机1个虚拟磁盘的连续大文件写,则测试结果只有147MB/s,因为此时的SSD缓存只能往1块机械刷盘,因此测试结果和1块机械硬盘的速度相当,同时测试时间越久就越接受机械硬盘的速度。

VMware vSAN性能测试那点不得不说的事

VMware vSAN性能测试那点不得不说的事

VMware vSAN性能测试那点不得不说的事

 

七、总结说明

     经过以上内容分析,大家在经后对vSAN性能测试中应该心里有数了,即要完全发挥出vSAN性能,需要根据vSAN的硬件配置来设计测试场景。而不是随便创建一个虚拟机,分配1个虚拟磁盘,就进行vSAN性能测试,测试结果一看,vSAN性能这么差。

       特别针对测试场景4,我想大家一定心里有这么个问题,为什么我在传统的共享存储上创建一个虚拟机,也设置1个虚拟磁盘,但测试出来的性能却很不错呢?那是因为传统存储的一个LUN是横跨磁盘组里的所有磁盘,即一个LUN是由十几或二十几块磁盘组成的磁盘组,当然测试出来的测试很不错,如下图所示

 

VMware vSAN性能测试那点不得不说的事