存儲雙活在實施過程中不可避免的4個問題
存儲雙活是數據中心高可用架構中最為重要的環節之一,而在存儲雙活建設實踐中,存在諸多難點,下面梳理了在實施過程中不可避免的4點問題,并對其進行剖析。
1.如何規劃好存儲雙活模式
存儲雙活的建設方案,一定是要建立在數據庫雙活方案基礎上的,只有明確了數據庫和相關應用程序的工作模式,才能做好存儲雙活的整體選型規劃,否則,對于存儲雙活的建設來說,任何技術細節都是空談。
如果數據庫或應用程序僅是以主備模式部署,存儲雙活的的建設相對來說就容易些,使用flashcopy等快照或類似SRDF磁盤鏡像即可滿足需求;當然,這種同步和容災方式飽受詬病,由于源和目的端存儲需要相同產品,無法解決異構問題,并且使用這類的同步工具大都需要license授權,增加了成本,且低端存儲一般無法復制功能,因此,從嚴格意義上來說,并不能算真正實現了存儲雙活。
如果建立了類似DB2 pureScale或Oracle RAC數據庫集群;那么,存儲虛擬化網關就能得到用武之處,這也是目前存儲雙活建設中最為普遍的方式,如利用SVC、VPLEX實現存儲AA(active-active)雙活模式。下面幾個難點問題,也是以此為前提進行討論。
2.如何解決單個存儲的“孤島”,提升存儲資源池的整體效能
企業一般都是在進行雙活中心建設或者新存儲上線的過程中,實施存儲虛擬化網關來構建存儲雙活體系,這個階段,也是建立和規劃企業統一存儲資源池的好計劃,可以將企業中存在的異構存儲高度整合,解決各個存儲層面存在的“孤島”現象。對出現過IO瓶頸的業務,也可考慮引入全閃存存儲對熱點數據進行加速,并使用SVC虛擬化網關中的easy tier等功能,提升存儲池的整體性能。
3.如何設計雙活存儲高可用,防止仲裁防腦裂
AA模式的雙活存儲,在某些特定的多重故障下,仲裁機制會優先保證數據的一致性,可能會將雙活存儲上的所有LUN都停止主機訪問。所以,在設計仲裁模式的時候,建議建立第三方站點作為仲裁機,但也不能完全避免上述情況,所以,還要考慮強制啟動,而強制啟動端的存儲作為同步源端,會在鏈路恢復后同步增量差異數據。
4.如何做到讀寫分離,提升IO讀寫效率
存儲雙活后,還有一個難點就是熱點數據的跨站訪問,實施了數據庫和存儲層同時雙活,會出現數據競爭的問題,這樣也降低了IO效率。這時候就要通過鎖預取和緩存策略,通過較小的控制報文,向鎖權限緩存節點申請寫權限,并利用鎖預取將部分區間的寫權限緩存到本地。這樣,后續的連續寫I/O操作可快速的***在本地,減少跨站點的數據傳輸和交互,做到讀寫分離,從而提升IO讀寫性能。