上周有兩天沒(méi)有寫文章,心中十分愧疚。這不,這個(gè)周末北京的天氣不錯(cuò),沒(méi)有外出,研究了半天EMC高端存儲(chǔ)的雙活特性,一塊來(lái)分享給大家。
大家知道,EMC在EMC WORLD 2015上宣布VMAX3將在今年Q3支持SRDF/METRO雙活特性。那么這個(gè)特性的實(shí)現(xiàn)原理是怎樣的,如何防止“腦裂”呢?
首先,我們要了解SRDF/METRO,首先要了解一下SRDF。EMC的SRDF遠(yuǎn)程復(fù)制功能,歷史悠久,應(yīng)用廣泛。其最大的特點(diǎn)就是R1設(shè)備可以正常讀寫,但R2設(shè)備是只讀的,也就是不能寫。只有當(dāng)R1故障或者管理員切換,R2才有可能被主機(jī)寫入。
但如果是SRDF/METRO,R2設(shè)備會(huì)使用和R1的聯(lián)邦特性(包括geometry即幾何特征(如track大小),設(shè)備的WWN等等)。這樣,對(duì)于Host來(lái)說(shuō),R1和R2看起來(lái)是一樣的設(shè)備。主機(jī)可以同時(shí)讀寫R1和R2,就像訪問(wèn)同一個(gè)LUN一樣。
這種雙活的存儲(chǔ)有兩種應(yīng)用環(huán)境。
一種是非集群方式,即主機(jī)同時(shí)可以看到兩個(gè)存儲(chǔ),通過(guò)多路徑軟件來(lái)決定訪問(wèn)R1還是R2。一般情況都是采用距離優(yōu)先的原則,優(yōu)先訪問(wèn)最近的存儲(chǔ)。
另一種主流場(chǎng)景就是和各種集群軟件配合,如微軟MSCS,VMWARE HA,ORACLE RAC等等,實(shí)現(xiàn)雙活的數(shù)據(jù)中心。這種情況下,主機(jī)可以只看到本地存儲(chǔ),如果它出現(xiàn)故障,可以由另外一端的主機(jī)和存儲(chǔ)接管。當(dāng)然,主機(jī)如果能夠同時(shí)看到兩邊的存儲(chǔ)更好。
由于SRDF/METRO要實(shí)現(xiàn)active/active的功能,因此,需要VMAX3自己來(lái)協(xié)調(diào)寫沖突。而原來(lái)SRDF就沒(méi)有寫沖突的問(wèn)題,因?yàn)橹挥蠷1可以寫。但EMC是如何實(shí)現(xiàn),是采用分布式鎖(如針對(duì)track加鎖),還是其他機(jī)制,就不得而知。
據(jù)EMC的資料,其SRDF/METRO的第一個(gè)版本暫時(shí)不支持兩地三中心的組網(wǎng)。下圖是SRDF/METRO的設(shè)備對(duì)的狀態(tài)轉(zhuǎn)換圖。首先,加入SRDF的設(shè)備必須是標(biāo)準(zhǔn)設(shè)備,創(chuàng)建設(shè)備對(duì)后,系統(tǒng)會(huì)進(jìn)行同步,同步完成后,才能轉(zhuǎn)變?yōu)镾RDF/METRO Active-Active的狀態(tài)。
大家可能記得,VMAX3最大的改進(jìn)就是采用SLO的配置方式。還好,SRDF/METRO可以和FAST完美配合,也就是說(shuō)在雙活的情況下,F(xiàn)AST其實(shí)是把R1和R2的訪問(wèn)量都合并在一起,確保兩邊都符合系統(tǒng)配置的SLO服務(wù)等級(jí)目標(biāo)。
了解完SRDF/METRO的原理,下面我們重點(diǎn)來(lái)分析一下SRDF/METRO是如何在故障發(fā)生時(shí)防止腦裂的問(wèn)題。
EMC有兩個(gè)選項(xiàng)來(lái)防止腦裂。一個(gè)叫bias(偏好)機(jī)制,一個(gè)叫witness/quorum(見(jiàn)證/仲裁)機(jī)制。
BIAS機(jī)制比較簡(jiǎn)單,華為的HyperMetro把這種機(jī)制叫優(yōu)先級(jí)機(jī)制。也就是事先確定好如果系統(tǒng)故障由那個(gè)陣列來(lái)接管業(yè)務(wù)。
VMAX3在剛開(kāi)始創(chuàng)建SRDF/METRO組的時(shí)候,這個(gè)時(shí)候R1是bias設(shè)備,當(dāng)系統(tǒng)進(jìn)入ACTIVE-ACTIVE狀態(tài)后,用戶可以修改bias設(shè)備。如果SRDF鏈路出現(xiàn)故障,bias設(shè)備將接管業(yè)務(wù),no-bias設(shè)備將停止提供服務(wù)。系統(tǒng)進(jìn)入Paritioned或者Suspended狀態(tài)。
如果是非集群方式,主機(jī)多路徑軟件將切換到bias設(shè)備,系統(tǒng)可以繼續(xù)運(yùn)行。
如果是集群方式,只有bias站點(diǎn)的主機(jī)可以訪問(wèn),另外一個(gè)站點(diǎn)的主機(jī)停止訪問(wèn)。由集群軟件來(lái)處理客戶端的切換,系統(tǒng)可以繼續(xù)提供服務(wù)。
bias機(jī)制太簡(jiǎn)單,可能造成存活的站點(diǎn)和bias存儲(chǔ)不一致的情況,這樣系統(tǒng)的業(yè)務(wù)連續(xù)性無(wú)法得到保障。這個(gè)道理很簡(jiǎn)單,比如你把R1設(shè)為bias,但R1站點(diǎn)出了問(wèn)題,R2由于不是bias設(shè)備而不能接管業(yè)務(wù),造成業(yè)務(wù)中斷。
為了解決這個(gè)問(wèn)題,必須采用第三方站點(diǎn)見(jiàn)證/仲裁的方式。目前,SRDF/METRO支持采用額外的一臺(tái)VMAX3做仲裁。
如果仲裁設(shè)備是VMAX,也是可以的。EMC只能支持VMAX或者VMAX3做仲裁,因?yàn)镾RDF/METRO仲裁設(shè)備和R1/R2通訊采用的也是SRDF鏈接,仲裁的VMAX/VMAX3設(shè)備上需要安裝相應(yīng)的ePack軟件。
采用第三站點(diǎn)仲裁的方式,SRDF/METRO的切換機(jī)制是怎樣的呢?我們分15種情況來(lái)討論一下。下面S1表示R1設(shè)備所在的站點(diǎn),S2代表R2設(shè)備所在的站點(diǎn),Q代表仲裁站點(diǎn)。
1、如果Q故障,則S1和S2業(yè)務(wù)繼續(xù),這個(gè)時(shí)候系統(tǒng)切換為bias模式,而且S1和S2都發(fā)生call home行為,通知服務(wù)中心發(fā)生的故障。這個(gè)處理好像比HDS VSP G1000要好一些,HDS VSP G1000仲裁站點(diǎn)故障,需要停止雙活,由S1接管業(yè)務(wù)??赡苁荋DS沒(méi)有實(shí)現(xiàn)bias機(jī)制,必須采用仲裁的方式。應(yīng)該不是技術(shù)問(wèn)題,可能從可靠性考慮,HDS采用這樣的處理機(jī)制。
2、如果是S2出現(xiàn)問(wèn)題,S1接管業(yè)務(wù),S2進(jìn)入失敗狀態(tài)。
3、如果是S1故障,S2接管業(yè)務(wù),S1進(jìn)入失敗狀態(tài)。
4、如果S1和S2的鏈路故障,S1接管業(yè)務(wù),S2進(jìn)入suspend狀態(tài),等鏈路故障恢復(fù),雙活功能也可也自動(dòng)恢復(fù)。
5、如果S1和S2到仲裁站點(diǎn)的鏈路都出現(xiàn)故障,這個(gè)故障處理和仲裁站點(diǎn)故障是一致的。
6、如果復(fù)制鏈路和仲裁站點(diǎn)都出現(xiàn)故障,則S1和S2都處于掛起suspend狀態(tài),業(yè)務(wù)中斷,call home報(bào)告故障。
7、如果是復(fù)制鏈路和S2到仲裁站點(diǎn)鏈路出現(xiàn)故障,S1接管業(yè)務(wù),S2掛起,并且call home。
8、如果是復(fù)制鏈路和S1到仲裁站點(diǎn)鏈路出現(xiàn)故障,則是S1掛起,S2接管業(yè)務(wù),并且call home。
9、如果只有S2到仲裁站點(diǎn)鏈路出現(xiàn)故障,雙活業(yè)務(wù)不影響。S1變?yōu)閎ias,S2會(huì)call home。
10、如果是S1到Q的鏈路故障,處理方式和第9類似。
11、如果S1故障,而S2到Q的鏈路也故障,那么S1失敗,S2掛起,業(yè)務(wù)中斷,call home。
12、如果S2故障,并且S1到Q的鏈路也故障,這處理機(jī)制和11類似。
13、如果S1和Q都發(fā)生故障,這個(gè)時(shí)候S1失敗,S2掛起,業(yè)務(wù)還是中斷。因?yàn)镾2不知道是否應(yīng)該接管業(yè)務(wù),因?yàn)樗鼰o(wú)法和另外兩個(gè)站點(diǎn)通訊了。
14、如果S2和Q故障,處理方式和13類似。
15、如果三個(gè)站點(diǎn)之間的鏈路全部中斷,這S1和S2都會(huì)掛起,業(yè)務(wù)中斷。
這15種情形,其實(shí)可以歸納為一句話:只要三個(gè)站點(diǎn)有兩個(gè)站點(diǎn)可以通訊,則業(yè)務(wù)不受影響,否則業(yè)務(wù)中斷。
大家可以看到,EMC的故障處理機(jī)制還是比較完善的。但由于SRDF/METRO是一個(gè)新功能,從相關(guān)資料看,其在Q3發(fā)布的第一個(gè)版本還是有比較多的使用限制,如:
1、不支持兩地三中心的組網(wǎng);
2、不支持在線設(shè)備擴(kuò)展(應(yīng)該指R1/R2 device);
3、可能不支持FAST.X(FTS),也就是不支持掛第三方陣列;
4、不支持VAAI;
5、不支持SCSI-2集群,SCSI-3集群如果支持也是受限場(chǎng)景支持。
......
再加上SRDF/METRO采用SRDF機(jī)制來(lái)做仲裁,因此仲裁設(shè)備只能是VMAX高端陣列,成本比較高。
綜上所述,SRDF/METRO拉平了和HDS VSP G1000 GAD的差距,但初始版本還不太成熟,有比較多的使用限制。雖然華為高端存儲(chǔ)的HyperMetro雙活也沒(méi)有上市,但據(jù)說(shuō)其可以支持兩地三中心的組網(wǎng),支持采用低端存儲(chǔ)做仲裁,支持第三方陣列,從功能上感覺(jué)要比SRDF/METRO甚至GAD要多些。
總之,雙活功能以后可能成為高端存儲(chǔ)的關(guān)鍵功能之一了。
分享到微信 ×
打開(kāi)微信,點(diǎn)擊底部的“發(fā)現(xiàn)”,
使用“掃一掃”即可將網(wǎng)頁(yè)分享至朋友圈。