本帖最后由 larryexchange 于 2017-3-6 10:04 编辑
对于虚拟化平台来说,用户真正体验到的(也就是作为服务提供者能够交付的)IO是体现在虚拟机内部。从整个系统来说,就是所有虚拟机同时加压时系统支撑的IOPS和吞吐。VM Fleet工具就是这样一个通过创建很多虚拟机,并且在虚拟机内部运行Diskspd来进行存储的性能测试。
下载和安装VM Fleet
--------------------------
可以从https://github.com/microsoft/diskspd下载VM Fleet和Diskspd。这里我将VM Fleet复制到了节点一的D盘,然后安装VM Fleet
- D:\VMFleet\install-vmfleet.ps1 -source D:\VMFleet
复制代码 然后将Diskspd.exe复制到文件夹C:\ClusterStorage\Collect\Control\Tools
准备一个虚拟机VHD作为模板
-------------------------
接着将一个事先准备好的Server Core版本的VHD复制到C:\ClusterStorage\Collect。准备的过程:
创建和启动VM Fleet
--------------------------
在节点一上运行下面的脚本
- C:\ClusterStorage\Collect\Control\create-vmfleet.ps1 -basevhd "C:\ClusterStorage\Collect\VMFleet-ENGWS2016COREG2VM.vhdx" -vms 11 -adminpass password -connectpass password -connectuser "infra\administrator" -nodes "SERVER-C6222-1", "SERVER-C6222-2", "SERVER-C6222-3", "SERVER-C6222-4"
- C:\ClusterStorage\Collect\Control\set-vmfleet.ps1 -ProcessorCount 4 -MemoryStartupBytes 12GB -DynamicMemory $false
- C:\ClusterStorage\Collect\Control\start-vmfleet.ps1
复制代码 注意这里我在每个节点上创建了11个虚拟机,四个节点一共44个。每个虚拟机4个vCPU,12GB内存,40GB的VHD。测试中VHD都换转换为固定尺寸的VHD,40GB的VHD就真实会占用实际磁盘空间40GB,再加上运行迅即过程中虚拟机内存、CPU寄存器等信息所需的磁盘空间,每个虚拟机会占用52GB多的空间,一个600GB的SPACE空间,也就能够支持11台虚拟机了,毕竟我的配置中磁盘容量是个短板。至于一个节点上所有虚拟机的vCPU数量和内存数量,基本vCPU与每个节点逻辑核数一致,或是每个节点物理核数的2倍为宜。一个节点上所有虚拟机内存的总和不超过该节点物理机的综合。
启动以后,可以运行下面的命令来观察创建过程中全部四台上面发生的IOPS和吞吐。未来真正开始在所有虚拟机中加压时,也可以通过下面的监控窗口观察实时的存储性能。
- C:\ClusterStorage\Collect\Control\Watch-Cluster.ps1
复制代码
根据所创建虚拟机的数量的多少,和磁盘系统的速度,创建VM Fleet的过程可能要花上几个小时。最终创建并启动好以后,从群集管理器中看,是这个样子的。
几种加压的测试用例
------------------------
在上面的所有48个虚拟机都启动完成后,运行下面的命令可以指挥所有的虚拟机执行同一个测试用例。下面是几个测试用例:
# 4KB, 100% Read, 1 Thread, QD=40 - C:\ClusterStorage\Collect\Control\start-sweep.ps1 -b 4 -t 1 -o 40 -w 0 -d 300
复制代码
# 4KB, 100% Read, 2 Threads, QD=1 - C:\ClusterStorage\Collect\Control\start-sweep.ps1 -b 4 -t 2 -o 1 -w 0 -d 300
复制代码
# 4KB, 100% Write, 1 Thread, QD=8 - C:\ClusterStorage\Collect\Control\start-sweep.ps1 -b 4 -t 1 -o 8 -w 100 -d 300
复制代码
# 4KB, 30% Write, 1 Thread, QD=24 - C:\ClusterStorage\Collect\Control\start-sweep.ps1 -b 4 -t 1 -o 24 -w 30 -d 300
复制代码
# 512B, 100% Read, 1 Thread, QD=1 - C:\ClusterStorage\Collect\Control\start-sweep.ps1 -b 512 -t 1 -o 1 -w 0 -d 300
复制代码
然后就可以从上面的Watch-Cluster窗口中观察到实时的测试情况。
|