VSAN 6.1发布了也有两三个月了,其中有2个比较显著的新特性,一个就是支持Stretched Cluster, 也就是说你的VSAN集群现在可以不在一个物理位置了,可以跨数据中心部署了;另外一个就是2节点VSAN。
我们知道,原来的VSAN至少需要3个节点,为啥呢?因为在默认FTT为1的时候,每块数据盘都至少需要3个组件,1份数据,1份是数据的副本,第3份是见证组件(Witness component),相当于集群中的仲裁盘,用来解决脑裂问题的。换一句话说,就是“如果想要使得虚拟机的磁盘对象是可用的话,它的可用组件数必须大于50%,而见证就是用来解决大于50%的这个问题的”。
原本Witness是作为一个component存在于VSAN集群中的某台物理主机上的,而现在,Witness Appliance则可以作为一台虚拟机存在的,它存在的目的就是用来存储witness component的。这样,VSAN集群对物理主机最低数量限制就减少了一个。
记住:
Witness Appliance是用来取代一台ESXi主机的
Witness Appliance是用来取代一台ESXi主机的
Witness Appliance是用来取代一台ESXi主机的
重要的事情说三遍。所以部署的时候要把它当作一台ESXi主机来部署。
因此,当然你也可以部署一台物理机来做同样的事情。但是,这里的重点是我们要省钱,要省一台主机,不是吗?那么,为了省钱用一台特殊的虚拟机来取代物理主机,就得为这台特殊的虚拟机多考虑一些。
Witness Appliance的配置要求
Witness Appliance 就是一台虚拟机,这台虚拟机的硬件应该怎么配置呢?不同规模的VSAN集群对Witness Appliance的配置有不同的需求:
微型环境(少于10台虚拟机)
- 2 vCPUs, 8GB vRAM
- 8GB ESXi Boot Disk, 一个10GB SSD, 一个15GB HDD
- 最多支持750个witness component
中型环境(最多500台虚拟机)
- 2 vCPUs, 16GB vRAM
- 8GB ESXi Boot Disk, 一块10GB SSD, 一块350GB HDD
- 最多支持21000个witness component
大型环境(超过500台虚拟机 )
- 2 vCPUs, 32GB vRAM
- 8GB ESXi Boot Disk, 一块10GB SSD, 三块350GB HDD
- 最多支持45000个witness component
注意,这里的所谓SSD并不是真正的SSD,而是一个被打上了SSD标签的VMDK而已。
Witness Appliance的网络要求
另外一个非常重要的是Witness Appliance的网络配置。因为网络不通就不能做仲裁了呀。(这不是废话么,笑)
所以这台虚拟机的网卡必须能够和VSAN集群的其他主机通信。而且DNS很重要,还要加域。它还需要以一台ESXi主机的身份加入到vCenter中。
既然Witness Appliance是被当作一台ESXi主机,那么它就会有自己的vSwitch。应该手工设置Witness Appliance中标准vSwitch的uplink网口的Mac地址和它所在的主机的Mac地址一样。这样,递交到主机的witness请求就可以被传递到Witness Appliance上。
注意,Witness Appliance目前是为了2节点VSAN集群设计的。常规的3节点(或更多节点)的VSAN集群还是使用传统的方法,witness component还是打散分布到集群中的所有主机上的。
应用场景
问题来了,Witness Appliance也是在一台主机上的,而且这台主机不能是2节点VSAN集群中的某一台,那不是说还是需要3台主机么?既然有了3台主机,那为啥还要那么麻烦搞特殊化,直接搭建成常规的3节点VSAN集群不可以吗?
好吧,这个问题问的有道理哦,不过2节点VSAN的应用场景不太一样,它主要是用于ROBO的情况的。ROBO就是Remote Office/Branch Office,指小型的分支机构,对于这种规模较小的办公室而言,2台主机就能满足需求,3台主机可能就有点浪费。这种场景下,Witness Appliance是安装在总公司的数据中心上的某台ESXi主机上的。
极其重要的参考文档:
http://cormachogan.com/2015/03/13/vsan-6-0-part-1-new-quorum-mechanism/
http://cormachogan.com/2015/09/11/a-closer-look-at-the-vsan-witness-appliance/
关于什么是见证,请参考http://vsdsrevolution.blog.51cto.com/8674155/1423897
我的文章基本就是参考了Cormac的文章,以自己的理解的方式表述了一下。班门弄斧,纸上谈兵,见笑了。英文好的同学还是推荐直接看原文。