數據備份是保證數據有多個副本,任意副本的失效都不會導致數據的永久丟失,從而實現數據完全的持久化。而失效轉移機制則保證當一個數據副本不可訪問時,可以快速切換訪問數據的其他副本,保證系統可用。
數據備份
- 冷備
優點:簡單、廉價,成本和技術難度都較低。
-
缺點:
- 無法保證數據一致性(備份設備中的數據比系統中的數據陳舊,如果數據丟失,那么從上個備份點開始后更新的數據就會永久丟失,不能從備份中恢復)
- 不能保證數據可用性(從冷備存儲中回復數據需要較長時間,這段時間無法訪問數據,系統也不可用)
現狀:作為傳統的數據保護手段依然在運維中使用。
- 熱備
- 異步熱備:多份數據副本的寫入操作異步完成,即應用程序收到數據服務系統的寫操作成功響應時,只寫成功了一份,存儲系統將異步地寫其他副本(該過程可能失敗)。
數據異步熱備
在異步寫入方式下,存儲服務器分為主存儲服務器(Master)和從存儲服務器(Slave),應用程序正常情況下只連接主存儲服務器,數據寫入時,由主存儲服務器的寫操作代理模塊將數據寫入本機存儲系統后立即返回寫操作成功響應,然后通過異步線程將寫操作數據同步到從存儲服務器。
- 同步熱備:多份數據副本的寫入操作同步完成,即應用程序收到數據服務系統的寫成功響應時,多份數據都已經寫操作成功。但是當應用程序收到數據寫操作失敗的響應時,可能有部分副本或者全部副本都已經寫成功了(因為網絡或者系統故障,無法返回操作成功的響應)。
數據同步熱備
同步熱備具體實現時,為了提高性能,在應用程序客戶端并發向多個存儲服務器同時寫入數據,然后等待所有存儲服務器都返回操作成功的響應后,再通知應用程序寫操作成功。
這種情況下,存儲服務器沒有主從之分,完全對等,方便管理和維護,并發寫入意味著總寫操作延遲是響應最慢的那臺服務器的響應延遲,因此跟異步熱備速度差不多。
關系數據庫熱備機制就是 Master-Slave 同步機制,解決了數據備份問題,還改善了數據庫系統的性能,通常讀寫分離,寫 Master 讀 Slave。
失效轉移
若數據服務器集群中任何一臺服務器宕機,那么應用程序針對這臺服務器的所有讀寫操作都需要重新路由到其他服務器,這個過程叫失效轉移。
- 失效確認:有心跳檢測和應用程序訪問失敗報告兩種手段。對于后者,控制中心還要再一次發送心跳檢測確認,以免錯誤判斷服務器宕機。
存儲服務器失效確認
- 訪問轉移:將數據讀寫訪問重新路由到其他存儲對等的服務器上。如果存儲不對等,就需要重新計算路由,選擇存儲服務器。
- 數據恢復:數據副本數目已減少,必須將副本數目恢復到系統設定的值,否則再有宕機就可能出現無法訪問轉移(所有副本服務器宕機)、數據永久丟失的情況。因此系統需要從健康的服務器復制數據,將數據副本數目恢復到設定值。