深入剖析HAM/GAD雙活數據中心存儲方案
HAM(High Availability Manager)是HDS在2009年正式發布的VSP存儲第一代雙活存儲特性。HAM使主機將一對鏡像LUN當成單個LUN,管理鏡像LUN的主從關係並在需要時進行主從切換以保證該LUN對應用始終可用,採用多路徑(HDLM)切換、陣列間同步複製(TrueCopy)和第三方仲裁陣列來實現。
TrueCopy同步遠程複製對含主、從兩個LUN,主LUN稱為Pvol,從LUN成為Svol。HAM把兩個VSP陣列間的Pvol和Svol虛擬化為一個LUN(Pvol和Svol的LUN ID、WWN、SNr等屬性均一致),然後映射給主機。對於一個同時連接到VSP主從陣列上的主機,其與PVOL即主陣列相連的路徑為主路徑MCU(Main Control Unit),其路徑狀態為可讀寫Owner Path,其與SVOL即從陣列相連的路徑為備用路徑RCU,其路徑狀態為不可寫Non-Owner Path。
正常狀態下應用的IO通過Owner Path下發給Pvol。當主陣列或鏈路故障導致Pvol不可訪問時,HAM檢測後首先進行主從切換,將原來的Svol升級為可寫狀態,Non-Owner Path升級為Owner Path,主機端多路徑軟體即可將應用IO通過新的Owner Path下發給Svol保證業務連續。
HAM雙活技術使得兩台存儲是工作在Active Passive模式下,不支持陣列兩端雙寫,也不支持NAS雙活,所以HDS推出Global Active Device(GAD)存儲Active Active雙活特性,並配合HNAS實現NAS雙活。
GAD從原理來說也是通過兩個陣列組成一個集群,對其中的雙活卷實現兩個數據中心同時讀寫,數據通過VSP G1000的同步複製技術TrueCopy(通過複製、同步技術保持兩邊設備是完全一致)。為了防止腦裂,採用鎖盤(Quorum)機制,每個存儲支持32個仲裁盤,當心跳不通的時候,仲裁成功的站點就對外繼續提供服務。
HDS首先在高端存儲VSP G1000上支持,後來採用SVOS統一了高中端平台後,GAD在G200,G400,G600和G800上都得到了支持,在2016年10月發布G1500和F1500支持GAD,更新可以通過伺服器本地磁碟做仲裁。
GAD採用Active Active架構,支持主從陣列同時讀寫,所有IO寫操作都是先寫主LUN後寫從LUN,配置原廠HDLM多路徑,可以支持本地優先讀寫策略,主從站點支持100KM距離,支持FC/IP複製鏈路,支持8條物理路徑和陣列主機交叉組網。
HDS在一台物理存儲內允許用戶按照業務和應用的要求定義多個Virtual Storage Machine(VSM),VSM與一台存儲類似,具備自己的存儲ID,設備序列號和埠WWN,通過VSM的定義,能夠有效提高存儲資源利用率,並實現最大的架構、業務的靈活性。GAD是利用VSP的虛擬控制器功能來實現VSP G1000的水平擴展和設備雙活,最大支持8個VSM,但可以支持63231對雙活的GAD卷。
HDS GAD技術是通過設置SVM的方式使兩台存儲使用相同的虛擬序列號SN讓主機把兩台物理存儲(可能包含多個SVM)看成一台存儲。在一台物理存儲內允許用戶按照業務和應用的要求定義多個VSM。GAD是利用VSP的VSM功能來實現VSP G1000的擴展和設備雙活能力,主卷(Pvol)和從卷(Svol)的LDEV 編號是一樣的。
主機識別LUN是通過虛擬序列號SN來識別,VDKC是VSP G1000上虛擬出來的一個虛擬控制器,它可以將多台存儲底層的物理控制器虛擬成同一個控制器,這樣主機通過虛擬控制器訪問後端磁碟資源時,始終和一個控制器ID交互,無論後台存儲如何變化主機都不會有感知,從而實現了雙活等特性。
HDS GAD基於微碼實現雙活,主機、交換機、存儲整個I/O路徑不需新增任何設備。HDS GAD技術在主機寫I/O過程中不會增加任何的多餘步驟,實現方式就是增強的同步複製技術TrueCopy,兩邊寫I/O完成後才返回給主機,全程確保數據完整性,兩台主機同時寫同一個存儲塊時,HDS會對寫存儲塊加鎖,保證數據的一致性。
GAD的組網相對比較靈活,單機雙陣列組網是用在數據中心內,只能實現存儲層的雙活能力,伺服器主機是單點,只能防止存儲故障,這種組網方式常用在不支持集群的應用中。
雙機雙陣列組網是比較常見的組網方式,這種組網需要伺服器安裝集群軟體,來實現業務的切換。這種組網在存儲層和應用計算層都可以實現業務雙活。
交叉組網類似於雙機雙陣列組網方式,但在網路層實現了交叉冗餘,這種方式是推薦的組網方式,也就是伺服器都可以看到所有的存儲,伺服器同時採用集群軟體和多路徑軟體來完成故障的切換,切換的方式更加合理,比如存儲故障,伺服器集群可以不切換,只需要多路徑軟體切換存儲就可以了。
分散式集群和雙活方案都需要仲裁機制防止腦裂,保證心跳故障後,整個集群系統能對外提供數據一致性存儲服務。目前,仲裁的實現方式有下面幾種。
1、優先順序站點方式。這種方式最簡單,在沒有第三方站點的情況下使用,從兩個站點中選一個優先站點,發生腦裂後優先站點仲裁成功。但如集群果發生腦裂後,優先站點也發生故障,就是導致業務中斷,因此這種方案並非推薦的方案。
2、軟體仲裁方式。這種方式應用比較普遍,採用專門的仲裁軟體來實現,仲裁軟體放在第三站點,可以跑在物理伺服器或VM上,甚至可以部署到公有雲上,PureStorage的ActiveCluster就把仲裁軟體以OVF文件部署在公有雲上。
3、陣列仲裁盤方式。這種方式是在第三站點採用另外一台陣列創建仲裁盤。這種方式穩定性,可靠性比較高。GAD的仲裁機制原理是採用仲裁盤的方式實現。
HDS通過HNAS網關配合GAD支持NAS雙活,NAS雙活依賴SAN雙活,HNAS目前支持2節點集群綁定GAD組成拉遠的Active Passive雙活,數據讀寫在主端完成,但是從端也可以通過配置Cache實現IO讀取操作。整個HNAS文件系統數據保存在GAD雙活設備上,HANS節點的主要工作是完成站點間元數據、狀態和控制數據同步。
NAS集群數據複製鏈路採用10GE,複製鏈路和心跳、管理網路分離。NAS仲裁基於GE網路並採用仲裁伺服器模式,SAN仲裁採用仲裁磁碟,SAN和NAS採用獨立的兩套仲裁系統。
HNAS節點1和節點2組成了一個Stretched的集群,伺服器NAS客戶端的寫IO首先寫入節點1(主節點)的NVRAM中,並通過複製鏡像到從端節點2的NVRAM中,然後返回客戶端,完成寫IO。通過時間策略,節點1將把NVRAM中的數據周期性的刷寫到GAD SAN存儲雙活卷中,HNAS多路徑支持優先選擇PVOL卷下盤,GAD通過雙活特性同步到從端的VSP設備中。
得益於HDS VSP存儲自身特性,在存儲Pool比較閑的時候,可以實現HDD降速(Spin Down)或休眠(Sleep)節省電力成本。支持接管異構第三方陣列並實現GAD雙活。但是針對NAS雙活,兩站點間HNAS節點跟GAD採用獨立的複製鏈路、心跳和管理網路,在管理上可能會有些複雜,故障處理也會比較複雜。
聽說點贊和分享的朋友都已走上人生巔峰
※談談剛被西數吞併的快閃記憶體公司——Tegile System
TAG:架構師技術聯盟 |