13、设计VSAN群集
(1)容量限制
- 每个群集最大32台主机
- 每台主机最多100个虚拟机
- 每个群集最多3200台虚拟机
- VSAN数据存储上受vSPhere HA保护的虚拟机数量最多2048台
- 最多5个磁盘组
- 每个磁盘组最多7块磁盘
- 每个磁盘组最多一盒闪存设备
- 每台主机最多3000个组建
需要注意的:
vSPhere HA有自己的“开机列表“以及有此带来的HA内在的运作方式。这个列表会跟踪所有虚拟机及其开机状态,它具有2048个空位来登记虚拟机。当所有的空位都被占用时,额外开启的虚拟机就无法被登记在案,因此无法被vSPhere HA保护。
(2)如果把集群的中的主机数量从16台提升到32台,需要到每台ESXi主机的高级设置中去进行额外的设置。扩展到32台主机的这个选项默认是不启用的,因为开启后VSAN会要求每台主机额外多使用150M内存。注意这个选项在设定后,需要重启才能生效。更多的信息可以参考KB2073930。
命令设定如下:
esxcli system settings advanced list -o /CMMDS/goto11
(3)组建的最大限制数量。VSAN1.0中组建的最大数量是每台主机3000个。不同类型的对象在VSAN数据存储中可能会含有一个或多个组建:
- 虚拟机名字空间
- 虚拟机的交换文件
- 虚拟机磁盘
- 虚拟机磁盘快照
(4)允许的故障数为1且条带宽度为1
这意味着每个虚拟机的最小组建数量为6.不过如果虚拟机配置了2个磁盘,那么总组件数量将增加到8.如果对改虚拟机拍了一个快照,将会因每个磁盘而增加2个组建,最终的组建数量将达到12。
- 1个虚拟机名字空间对象=2个组建(因为弹性的要求)
- 1个虚拟机交换文件对象=2个组建(因为弹性的要求)
- 2个虚拟机磁盘对象=4个组建(因为弹性的要求)
- 每个磁盘2个虚拟机快照文件对象=4个组建(因为弹性的要求)
正如我们所演示的那样,组建的数量会快速增长,如果在一台主机上运行100个虚拟机,每台虚拟机都有5个磁盘和5个虚拟机快照,那么在使用标准策略(允许的故障数量为1)情况下,组建数计算如下: - 100 虚拟机名字空间对象 = 100 2组建 =200
- 100 虚拟机交换文件对象 = 100 2组建 = 200
- 100 5个虚拟机磁盘对象= 500 2个组建= 1000
- 100 5个虚拟机磁盘对象每个都有5个快照对象 = 5 500 * 2 =5000
可以看出,“仅仅”在5个磁盘和5个快照的情况下就导致组建数量超过6000。
(5)闪存磁盘比
VSAN Beta中,从容量的角度VMware建议闪存磁盘比为10%。这个建议随着时间的推移到今天被修改成下面的版本:
在考虑允许的故障数之前,一般建议将Virtual SAN的闪存容量配置成预期消耗存储空间的10%。
假设我们的环境如下:
- 100台虚拟机
- 每个虚拟机50GB
- 预计对vmdk中有50%的空间被消耗
根据老建议,这意味着我们建议的配置为10%100VM50GB2(FTT=1)=1000GB的闪存容量。注意,消耗掉多少存储没有被考虑进来,只是计算了包括镜像对象在内的总存储容量。而根据新的建议,这意味着我们的建议是10%100VM(50%50GB)=250GB的闪存容量。
假设我们使用的主机数量是最低要求3台。这意味着在老的场景中我们需要给每台主机配置的闪存容量是330GB(1000GB/3台主机)。而通过新公式只需要在3台主机的群集中每台主机配置85GB的闪存(250GB/3台主机)。读缓冲和写缓存之间70/30的分配比。
(6)性能设计
控制器的队列深度:对于VSAN来说建议保证磁盘控制器的队列深度至少要达到256。现在磁盘控制器只是公式的一部分,因为设备队列占据了另一部分。我们曾经研究过各种不同的控制器和设备,下面是一些典型的标准:
mpt2sas_raid_queue_depth:int
Max RAID Device Queue Depth (default=128)
mpt2sas_sata_queue_depth:int
Max SATA Device Queue Depth (default=32)
mpt2sas_sas_queue_depth:int
Max SAS Device Queue Depth (default=254)
使用以下命令查看控制器的队列深度:
esxcfg-info -s | grep "==+SCSI Interface" -A 18
也可以使用VSAN兼容性指南中勒出的产品以及产品推荐使用的驱动程序。
(7)VSAN的性能
在VSAN发布之后,VMware公布了多个性能测试的数据:http://blogs.vmware.com/vsphere/2014/03/supercharge-virtual-san-cluster-2-million-iops.html
这些理论测试不需要(而且大多数情况下也不可能)和你环境中的I/O模式是相同的(因此结论也会不同)。虽然如此,我们觉得以下数据还是值得分享的:
- 16主机群集:4K数据块随机读写IOPS可达920 000
- 16主机群集:4K数据块随机混合IOPS可达320 000(70%读,30%写)
- 32主机群集:4K数据块随机读写IOPS可达2 000 000
- 32主机群集:4K数据块随机混合IOPS可达640 000(70%读,30%写)
我们证明了VSAN有能力提供高性能的环境,然而成本也很重要。达到上述数字的系统配置如下:
- DELL R720
- 2个Intel E5 2650 v2 2.6GHz 8核心处理器
- 128GB 内存
- 1个Intel S3700 400G SSD
- 7个10K RPM 1.1TB SAS磁盘
- LSI 9207-8i阵列卡
- Inel 82599EB 10GB网卡
我们对主机配置进行了如下微调,以对要进行海量I/O的大型工作负载进行优化并扩展到32主机:
- 允许VSAN构建32主机群集(advanced setting:/adv/CMMDS/goto11)
- vSPhere网络堆栈大小增加到512MB(advanced setting:/adv/Net/TcpipHeapMax)
- VMware Paravirtual SCSI(PVSCSI)开启时间参数最好支高I/O大规模的工作负载:"vmw_pvscsi.cmd_per_lun=254 vmw_pvscsi.ring_pages=32" (PVSCSI适配器是虚拟的高性能存储适配器,可以带来极高的吞吐量和较低的CPU利用率)。
- 禁用所有电源管理特性
- 每台主机使用单个VSAN VMkernel端口并具有万兆以太网上行链路
注意所有这些VMware公开提供的性能测试和参考架构都是基于万兆以太网络的。