首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

vSAN的灵魂——SPBM

书接上文,2月初Gartner公布了‘Magic Quadrant for Hyperconverged Infrastructure’,HCI的魔力象限图。其中提到,本次评估和以前的区别是更加专注于hyperconverged software segment,只有服务器硬件而没有软件的参与者是进不到本次评估的,只能算HCIS(hyperconverged Integrated system)。

个人是很赞赏Gartner对超融合市场的这个细分,从软件能力上让读者更加了解产品能力。但个人认为这种划分还不是很准确,顾名思义“超融合”是软件、硬件、服务的融合,单独只是软件能力并不能反映整个产品的全貌。建议Gartner能出一个厂商必须既自己生产硬件又有自己Hyperconverged软件的评估。

在平常交流中,经常有朋友在问:你那里有没有VxRail和AAA厂商的对比?VxRail和BBB产品的优势是什么?我觉得这些朋友其实还是没有了解到VxRail的精髓。超融合产品的核心是软件定义存储,对于VxRail来讲就是vSAN,而vSAN的灵魂就是其控制平面——基于存储策略的管理Stroage Policy Based Management(SPBM)。

现在的Server SAN都将存储分为数据平面和控制平面,对于VMWare vSphere来说,数据平面不只包含了vSAN,还有vVolume和Object Storage,这些存储类型提供存储空间。而控制平面指的就是SPBM,通过Policy来配置存储的对象属性,比如镜像份数、条带宽度等。

统一存储空间

对于传统存储和大部分Server SAN给虚拟化层使用,必须先划分LUN也就是卷,然后映射给虚拟化层作为datastore,才能够被虚拟化层分配给虚拟机使用。这就引出了比较复杂的设计问题:如何划分RAID,如何划分存储池,划分多大卷,每个卷支撑多少台虚拟机等等。这里面又有一个悖论:显然一个LUN上支撑太多虚拟机是不合适的,因为每个虚拟机的业务类型是不一样的,对底层存储要求也不一样;而如果尽量细分,那么LUN的数量又多了,增加了管理的复杂度。

而对于vSAN来说,它将底层存储空间作为一个大的Datastore映射给vSphere使用,无需用户提前规划LUN,降低了设计和使用复杂度。而满足不同虚拟机的业务要求则是通过SPBM来实现的。SPBM可以为每一台虚拟机,甚至同一台虚拟机不同的硬盘配置不同的存储策略。这就是vSAN的灵魂所在。

SPBM策略

vSAN可以在创建虚拟机的时候为每一个磁盘选择不同的存储策略。这些策略包括:

允许的故障数

每个对象的磁盘条带宽度

强制制备

对象空间预留

闪存读取缓存预留

容错方法

对象IOPS限制(QoS)

禁用对象校验和

允许的故障数

英文叫做Number of failures to tolerate (FTT),定义了在集群中仍能保证存储对象可用的情况下,允许出现的主机、网络或磁盘同时发生故障的数量,可以配置1~3。FTT=1时,存储对象为2个副本镜像;FTT=2时,存储对象为3个副本镜像;FTT=3时,存储对象为4个副本;一般默认为FTT=1。用户可以根据数据不同的重要程度配置不同的FTT值。

比如在之前的文章中举过某医院的例子,其将比较重要的EMR、HIS等医疗重要业务的虚拟机设置为FTT=3,而其他一些不重要的虚拟机设置为FTT=1,以最小的管理复杂度合理利用存储空间。甚至可以将同一台虚拟机不同的磁盘设置为不同的保护镜像份数。

条带宽度

定义了存储对象的每个副本条带化后横跨物理磁盘的数量,默认值为1,最大可以设置为12。当设置值大于1时,每个存储对象会被放置到多块硬盘,获得更好的性能。比如,在某个测试中当将条带宽度设置为不同值进行数据拷贝时,可以看到,这个值越高,吞吐量就越大。

当然条带数越大就会占用越多的系统资源,通常情况下,默认条带宽度为1就可以满足绝大多数需求。

强制置备

启用强制置备后,vSAN会时刻监控存储策略配置的对象,一旦数据存储资源满足存储策略要求,vSAN就会使对象符合其兼容要求。例如,一台虚拟机在部署时,设置的FTT=2。当资源不够时,虚拟机可以允许故障数0且条带宽度为1进行部署。当额外的主机可用时,vSAN会主动使用虚拟机兼容性满足其存储策略要求。默认是关闭的。

对象空间预留

默认情况下,对象预留空间设置为0%,可以理解为精简置备。而预留存储是厚置备延迟置零,其可用空间已在vSAN数据存储中提前 预留。最大值可设为100%。使用中一些经验,当特别要求性能时,设为100%预留,会有一定性能提升。

闪存读取缓存预留

vSAN每个磁盘组的SSD cache盘作为读写缓存空间被存储对象共用,设置此值则将一部分闪存容量专门作为该对象使用。在实际使用中,一般不需要设置预留值,因为不能共用于其他对象,除非为解决一个实际的性能问题才需要设置。默认值为0,最大可以设置为100%。

容错方法

这里面可选项有两个: RAID 1(Mirroring)和RAID 5/6(Erasure Coding)。我觉得起的这两个名字并不是很好,不是很容易理解。此选项是配合FTT值来使用的。

当是混合vSAN集群时,只能配置RAID 1,然后通过FTT的不同值来设置镜像份数。(所以RAID 1的意思不是只保存2份)。

当时全闪vSAN集群时,既可以配置RAID 1,也可以配置RAID 5/6,也就是常说的纠删码。当选择RAID 5/6时,FTT=1,相当于RAID 5,可用容量利用率是75%;FTT=2,相当于RAID 6,可用容量利用率是66.7%。

RAID 1的方式更强调性能,RAID 5/6的方式更强调空间利用率。再强调一下只有全闪集群,才能使用纠删码形式。

对象的IOPS限制

如果vSAN对象的IOPS超过了限制,IO操作会受到限制(QoS)。vSAN允许受IOPS限制的对象在IO操作的一秒内IOPS达到限制值的两倍以应对突发IO操作。配合vSphere对网络的QoS,这个是很多超融合所做不到的。默认值为0,表示当前IOPS限制关闭。

禁用对象校验和

如果选项设置为No,则对象计算校验和信息以确保数据完整。如果设置为Yes,则不会计算校验和信息。vSAN通过使用端到端的校验和以确保数据完整,系统会在读写操作期间检查校验数据,如果侦测到错误,则对数据进行修复。所有的校验和与久坐操作倒是在vSAN后台完成的。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180305G0W3CD00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券