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