原文地址:
https://www.tinymind.net.cn/articles/98e64d56d38a52
筆者之前也分享過vSAN延伸集群的一些資料。在雙活的設(shè)計(jì)中,站點(diǎn)之間帶寬預(yù)估、腦列處理等問題,都是需要重點(diǎn)考慮的。本次向大家分享一下vSAN帶寬帶寬的設(shè)計(jì)原則。建議讀者參照此前我分享過的《VMware的災(zāi)備與雙活----我在vForum 2015分會(huì)場(chǎng)的分享(2)》一起進(jìn)行閱讀,這篇文章中已經(jīng)包含的內(nèi)容,本文將不再進(jìn)行贅述。
一. 總體架構(gòu)
vSAN延伸集群整體架構(gòu)如下:一個(gè)有三個(gè)故障域,兩個(gè)數(shù)據(jù)站點(diǎn)分別是一個(gè)故障域,仲裁站點(diǎn)是一個(gè)故障域。需要注意的是,vSAN延伸的三個(gè)故障域都屬于是一個(gè)vSAN集群,而不是三個(gè)。
二.常規(guī)建議
兩個(gè)數(shù)據(jù)站點(diǎn)之間的帶寬很大程度上取決于vSAN承擔(dān)的負(fù)載、總體數(shù)據(jù)量、可能的故障場(chǎng)景。
通常的建議參考如下:
(1)vSAN的數(shù)據(jù)站點(diǎn)之間,或者數(shù)據(jù)站點(diǎn)和仲裁站點(diǎn)之間的網(wǎng)絡(luò),二層和三層網(wǎng)絡(luò)都可以支持,這降低了對(duì)大二層的要求。但是,我們推薦在數(shù)據(jù)站點(diǎn)之間使用二層網(wǎng)絡(luò)。
(2)數(shù)據(jù)站點(diǎn)站點(diǎn)之間小于5ms之間的延遲(RTT)。數(shù)據(jù)站點(diǎn)與仲裁站點(diǎn)之間200的延遲不能超過200ms。
(3)數(shù)據(jù)站點(diǎn)和仲裁站點(diǎn)之間的帶寬最不小于50-100Mbps.
(4)網(wǎng)絡(luò)劃分
管理網(wǎng)絡(luò):連接三個(gè)站點(diǎn)。二層或者三層網(wǎng)絡(luò)
vSAN網(wǎng)絡(luò):連接三個(gè)站點(diǎn)。數(shù)據(jù)中心之間建議二層網(wǎng)絡(luò),與仲裁站點(diǎn)之間使用三層網(wǎng)絡(luò)。
VM network:連接數(shù)據(jù)中心。建議二層網(wǎng)絡(luò),這樣當(dāng)虛擬機(jī)從一個(gè)數(shù)據(jù)站點(diǎn)vMotion或HA到另外一個(gè)數(shù)據(jù)站點(diǎn)時(shí),IP地址不變。
vMotion網(wǎng)絡(luò):連接數(shù)據(jù)中心。二層,三層網(wǎng)絡(luò)都可以。
三.?dāng)?shù)據(jù)站點(diǎn)之間的帶寬需求
1.計(jì)算公式
在真實(shí)的業(yè)務(wù)場(chǎng)景中,全讀或者全寫的情況很少。更多的時(shí)候,用讀寫比率來衡量業(yè)務(wù)I/O特性是比較格式。以VDI場(chǎng)景的負(fù)載舉例子。在負(fù)載峰值的情況下,讀寫比率通常是3:7。
例如:業(yè)務(wù)需要求IOPS的總量是10萬,讀寫比率為3:7。由于vsan延伸集群本地讀的特性,讀操作不需要跨站點(diǎn),因此考慮數(shù)據(jù)站點(diǎn)之間帶寬只考慮跨站點(diǎn)寫即可。
數(shù)據(jù)站點(diǎn)帶寬計(jì)算公式是:
B=Wbmdmr
B:Bandwidth。數(shù)據(jù)站點(diǎn)之間的帶寬。
WB:Write Bandwidth數(shù)據(jù)站點(diǎn)之間的寫帶寬。
MD: Data Multiplier:數(shù)據(jù)乘數(shù)
MR:Resynchronization multiplier 再同步乘數(shù)
其中,數(shù)據(jù)乘數(shù)由vSAN元數(shù)據(jù)跨站點(diǎn)寫開銷等相關(guān)的操作組成的(除了數(shù)據(jù)意外,元數(shù)據(jù)也需要跨站點(diǎn)寫)。VMware建議將這個(gè)數(shù)值設(shè)置為1.4。
再同步乘數(shù)指的是數(shù)據(jù)站點(diǎn)之間同步事件(例如vSAN組件的狀態(tài)信息)的所需要的總開銷。這是數(shù)值VMware建議設(shè)置為1.25。再同步乘數(shù)和數(shù)據(jù)乘數(shù)其實(shí)都是跨站點(diǎn)寫數(shù)據(jù)的額外開銷。這兩個(gè)數(shù)值使用vSAN推薦值即可。
2.案例分析
案例1.
vSAN運(yùn)行一個(gè)IOPS為1萬的全寫負(fù)載業(yè)務(wù)。寫的block為4KB。這需要消耗40MB/s的數(shù)據(jù)站點(diǎn)間的帶寬(4KB*10000),也就是320Mbps。
按照上一小節(jié)的計(jì)算公式:
B=320Mbps1.41.25=560Mbps
因此,在這個(gè)負(fù)載情況下,vSAN數(shù)據(jù)站點(diǎn)之間需要的帶寬至少應(yīng)為560Mbps。
案例2.
vSAN運(yùn)行負(fù)載為3萬全寫IOPS,4KB block size,這需要120MB/s(960Mbps)跨站點(diǎn)寫數(shù)據(jù)吞吐量。
按照公式:
B=960Mbps1.41.25=1680Mbps約等于1.7Gbps.
因此,在這個(gè)案例中,數(shù)據(jù)站點(diǎn)之間的帶寬至少應(yīng)為1.7Gbps.
四.?dāng)?shù)據(jù)站點(diǎn)與仲裁站點(diǎn)之間的帶寬需求
1.計(jì)算公式
數(shù)據(jù)站點(diǎn)并不存放虛擬機(jī)的數(shù)據(jù),只是用于投票使用,因此數(shù)據(jù)站點(diǎn)與仲裁站點(diǎn)之間的帶寬計(jì)算公式與上面的不一樣。
我在之前的文章提到過,vSAN是基于策略驅(qū)動(dòng)的分布式存儲(chǔ)。數(shù)據(jù)是以對(duì)象的方式存儲(chǔ)在vSAN中的,一個(gè)VM在vSAN存儲(chǔ)中的數(shù)據(jù)由一個(gè)或者多個(gè)組件組成,組件有如下類型:
VM Folder
VMware swap file
VMDK
快照
在vSAN中,當(dāng)一個(gè)對(duì)象的大小大于255GB的時(shí)候,就會(huì)被自動(dòng)劃分成多個(gè)組件。仲裁站點(diǎn)與數(shù)據(jù)站點(diǎn)之間的計(jì)算公式如下:
1138B*NumComp/5seconds
其中,1138B這個(gè)數(shù)字是:當(dāng)主站點(diǎn)down,備站點(diǎn)接管所有組件所需要的時(shí)間。我們想象一下,當(dāng)主站點(diǎn)down,備站點(diǎn)將成為master。仲裁站點(diǎn)將會(huì)向新的master發(fā)送確認(rèn)信息,確認(rèn)master的角色已經(jīng)發(fā)生了變更。從本質(zhì)上講,1138B是當(dāng)主站點(diǎn)down以后,仲裁站點(diǎn)需要從元數(shù)據(jù)信息中獲取主站點(diǎn)上所有組件已經(jīng)failed并且隨后由備站點(diǎn)take ownership的狀態(tài)信息更新開銷。當(dāng)主站點(diǎn)down以后,仲裁站點(diǎn)與數(shù)據(jù)站點(diǎn)之間的帶寬應(yīng)足以讓集群中所有部件的master ownership變更在5秒內(nèi)發(fā)變更完成。
2.案例分析
案例1:
虛擬機(jī)由如下內(nèi)容組成:
三個(gè)對(duì)象:
VM namespace
VMKD(小于255GB)
VM Swap file
FTT=1
Stripe width=1
以上配置的虛擬機(jī)數(shù)量是166個(gè),那么仲裁站點(diǎn)就需要獲取到996個(gè)組件信息。996=321*166.
我們用1000進(jìn)行計(jì)算:B=1138B81000/5s=1820800bps=1.82Mbps
VMware推薦預(yù)留10%的額外帶寬用于信息雙向傳輸:1.82*1.1=2Mbps。因此,在這個(gè)場(chǎng)景下,數(shù)據(jù)站點(diǎn)與仲裁站點(diǎn)的帶寬應(yīng)為2Mbps。
案例2:
虛擬機(jī)由如下內(nèi)容組成:
三個(gè)對(duì)象:
VM namespace
VMDK(小于255GB)
VM Swapfile
此外:
FTT=1
Stripe width=2
如果具有以上配置的虛擬機(jī)數(shù)量為1500,那么仲裁站點(diǎn)將會(huì)維持18000個(gè)組件的狀態(tài)信息。32211500=18000
按照案例1中的算法:
B=1138B818000/5s=32.78Mbps
B*1.2=36.05Mbps
因此,在這個(gè)場(chǎng)景下,數(shù)據(jù)站點(diǎn)與仲裁站點(diǎn)之間的帶寬需要36.06Bbps。
根據(jù)上面的算法,可以提煉一個(gè)簡(jiǎn)單的公式用于在日常的評(píng)估,那就是2Mbps帶寬可以維系1000個(gè)組件的狀態(tài)信息。因此,在這個(gè)場(chǎng)景下,維系18000個(gè)組件,所需要的帶寬是:18000/1000*2Mbps=36Mbps。
七.2-Node vSAN配置仲裁站點(diǎn)的帶寬
在vSAN6.1中,支持2節(jié)點(diǎn)的vSAN集群。也就是我在< VMware的災(zāi)備與雙活----我在vForum 2015分會(huì)場(chǎng)的分享(2)>中提到的vSAN延伸集群最小1+1+1,最大15+15+1的配置。
案例1:
2-Node配置中的虛擬機(jī)特性如下:虛擬機(jī)數(shù)量:25;VMDK/VM:1TB;FTT=1;Stripe width=1
上面我們提到過,vSAN中,一個(gè)vmdk組件最大為255G,因此每個(gè)VMDK由4個(gè)組件組成,此外由于FTT=1,在包含副本的情況下,每個(gè)vmdk由8個(gè)組件組成。加上VM namespace和swap文件(有副本),那么一個(gè)虛擬機(jī)的組件總數(shù)為12=42+22。25個(gè)虛擬機(jī)組件總量為300=2512。
使用通用公式:300/10002Mbps=600Kbps。因此,在這種場(chǎng)景下,數(shù)據(jù)站點(diǎn)與仲裁站點(diǎn)之間的帶寬應(yīng)為600Kbps。
案例2:
在2-Node配置中,每個(gè)主機(jī)上有100個(gè)虛擬機(jī),每個(gè)虛擬機(jī)有1TB的VMDK,F(xiàn)TT和stripe width均為1。 那么,組件的總量為:(1000/255+1+1)2100(VMs)2(Hosts)=2400
按照通用公式,2400個(gè)組件,需要的帶寬為2400/10002Mbps=4.8Mbps。因此在這個(gè)場(chǎng)景中,仲裁站點(diǎn)到數(shù)據(jù)站點(diǎn)之間的帶寬需要4.8Mbps。
需要注意的是,如果一套vSAN延伸集群承擔(dān)多個(gè)類型的業(yè)務(wù)負(fù)載,那么需要把這些業(yè)務(wù)負(fù)載先單獨(dú)計(jì)算其需要的帶寬,然后將其累加在一起。