Moebius資料庫多活叢集

z_cloud_for_SQL發表於2023-04-10

背景

資料庫是資訊化的基石,支撐著整個業務系統,發揮著非常重要的作用,被喻為“IT的心臟”。因此,讓資料庫安全、穩定、高效地執行已經成為IT管理者必須要面對的問題。資料庫在底層架構層面需要滿足以下幾點建設要求:

安全和可靠不能因為伺服器的軟硬體故障導致資料丟失和業務中斷;

容災:多資料中心間的資料同步,某一個資料中心出現故障後,可以在另一個資料中心快速拉起業務;

讀寫分離(報表分離):把介面程式、報表程式、整合平臺資料抽取、大資料運算等高消耗的查詢語句分離到備機執行,從而避免對主伺服器的效能消耗以及造成的阻塞和死鎖;

負載均衡需要多臺伺服器同時負載併發請求,降低單臺伺服器的壓力,提升系統整體效能;

彈性擴充套件透過增加伺服器的方式應對資料量或者訪問量增加帶來的效能瓶頸。

Moebius(莫比斯)

Moebius資料庫多活叢集是格瑞趨勢為SQL Server資料庫研發的能夠同時滿足可用性、資料安全、容災、讀寫分離、負載均衡的一站式多活叢集。叢集的名字取自Moebius環,寓意無限擴充套件。

      Moebius採用“share nothing”架構,每個節點的SQL Server服務獨立安裝,使用每個伺服器自己儲存介質內的資料庫檔案。不基於共享儲存裝置,也不基於磁碟映象等功能,透過SQL Server的日誌同步技術實現各節點中資料的一致性。在主節點寫入資料時會產生日誌,Moebius捕獲並傳輸日誌到其他節點,並透過REDO技術把日誌轉換成資料。因此每個節點的SQL Server服務都是啟動的,資料都是“活”的。Moebius有實時和準實時兩種同步方式,不同的節點可以使用不同的同步方式。

       Moebius 透過“網路心跳”及“仲裁機制”實現故障監控,當偵測到某節點發生故障並經過仲裁後,將此節點剝離出叢集,如果故障節點是主節點,則會進行自動故障轉移,重新選擇健康的節點作為主節點。節點故障恢復後會自動從主節點同步差異資料,同步完成後加入到叢集中。

       Moebius的排程引擎支援連線級和SQL語句級兩種排程方式,透過規則的配置,在不改動或者少改動應用程式的前提下,透明的實現讀寫分離、負載均衡。

 

功能亮點

故障切換

  • 多節點仲裁、資料夾仲裁、共享盤仲裁三種仲裁方式確保故障切換穩定準確;

  • 每個節點都是活動的,故障切換時,輔助節點不需要經歷掛載磁碟、啟動例項、初始化資料庫等步驟,在10秒內可完成切換;

  • 可以和告警系統對接,故障切換時及時通知系統運維人員。

資料同步

  • 充分利用SQL Server特性,只同步日誌,不同步資料,同步資料量小,同步速度更快;

  • 實時和準實時兩種同步方式,準實時同步方式支援惡劣網路條件下的斷點續傳;

  • 同步過程中資料壓縮,頻寬消耗更小;

  • 節點多活,可以隨時在輔助節點上執行查詢語句驗證資料同步。

 

 

 

讀寫分離&負載均衡

  • 在叢集中透過配置規則的方式實現讀寫分離和負載均衡,不用或者少量修改應用程式;

  • 規則支援正規表示式程式設計,可以從資料庫名稱、客戶端主機名、登入名等多種維度進行配置;

  • 多臺伺服器負載均衡,同時負載併發請求,提升整體效能。

 

 

 

 

軟體價值

高可用伺服器出現故障時,快速切換到正常節點,確保系統持續執行;

高資料安全:有多份一致的資料,確保資料足夠安全;

高使用者體驗:透過讀寫分離和負載均衡,提升系統效能,大幅減少阻塞、死鎖等問題,給業務系統帶來高效的使用者體驗;

高擴充套件性:當現有伺服器資源不夠時,可根據需要隨時新增伺服器節點,增加處理能力;

低系統總體擁有成本TCO

    1. 叢集不強制需要儲存裝置,可以用價效比更高的SSD盤,節省儲存裝置的開銷;

    2. 可以充分利用原有伺服器組建叢集,避免資源浪費;

    3. 可以用多個廉價PC伺服器代替單一的昂貴伺服器,節省硬體成本;

    4. 不需要再購買雙機、備份、容災等其它軟體。

常見問題

虛擬化\超融合平臺下還有做Moebius的必要嗎?

虛擬化或者超融合雖然能夠保障可用性和資料安全,但本質上提供的是一個單資料庫伺服器。如果有在SQL Server層面的容災或者讀寫分離、負載均衡的需求,就是有必要的。

 

Moebius相容虛擬化\超融合平臺嗎?

相容,Moebius的節點可以是物理機,也可以是虛擬機器,或者是兩者的組合。

 

做了Moebius後還有必要做儲存雙活嗎?

如果儲存裝置只是為了資料庫伺服器提供的,那麼是沒有必要再做雙活的,因為Moebius的資料就是多份的,既能保障資料安全,又可以隨時驗證資料的一致性。可以讓每個Moebius節點各接一個獨立的儲存裝置,這樣既節省了雙活模組的成本,又提升了磁碟空間的利用率。


相關文章