數(shù)據(jù)備份是保證數(shù)據(jù)有多個副本,任意副本的失效都不會導(dǎo)致數(shù)據(jù)的永久丟失肝谭,從而實現(xiàn)數(shù)據(jù)完全的持久化掘宪。而失效轉(zhuǎn)移機(jī)制則保證當(dāng)一個數(shù)據(jù)副本不可訪問時,可以快速切換訪問數(shù)據(jù)的其他副本分苇,保證系統(tǒng)可用添诉。
數(shù)據(jù)備份
- 冷備
優(yōu)點(diǎn):簡單、廉價医寿,成本和技術(shù)難度都較低栏赴。
-
缺點(diǎn):
- 無法保證數(shù)據(jù)一致性(備份設(shè)備中的數(shù)據(jù)比系統(tǒng)中的數(shù)據(jù)陳舊,如果數(shù)據(jù)丟失靖秩,那么從上個備份點(diǎn)開始后更新的數(shù)據(jù)就會永久丟失须眷,不能從備份中恢復(fù))
- 不能保證數(shù)據(jù)可用性(從冷備存儲中回復(fù)數(shù)據(jù)需要較長時間竖瘾,這段時間無法訪問數(shù)據(jù),系統(tǒng)也不可用)
現(xiàn)狀:作為傳統(tǒng)的數(shù)據(jù)保護(hù)手段依然在運(yùn)維中使用花颗。
- 熱備
- 異步熱備:多份數(shù)據(jù)副本的寫入操作異步完成捕传,即應(yīng)用程序收到數(shù)據(jù)服務(wù)系統(tǒng)的寫操作成功響應(yīng)時,只寫成功了一份扩劝,存儲系統(tǒng)將異步地寫其他副本(該過程可能失斢孤邸)。
在異步寫入方式下棒呛,存儲服務(wù)器分為主存儲服務(wù)器(Master)和從存儲服務(wù)器(Slave)聂示,應(yīng)用程序正常情況下只連接主存儲服務(wù)器,數(shù)據(jù)寫入時簇秒,由主存儲服務(wù)器的寫操作代理模塊將數(shù)據(jù)寫入本機(jī)存儲系統(tǒng)后立即返回寫操作成功響應(yīng)鱼喉,然后通過異步線程將寫操作數(shù)據(jù)同步到從存儲服務(wù)器。
- 同步熱備:多份數(shù)據(jù)副本的寫入操作同步完成趋观,即應(yīng)用程序收到數(shù)據(jù)服務(wù)系統(tǒng)的寫成功響應(yīng)時扛禽,多份數(shù)據(jù)都已經(jīng)寫操作成功。但是當(dāng)應(yīng)用程序收到數(shù)據(jù)寫操作失敗的響應(yīng)時皱坛,可能有部分副本或者全部副本都已經(jīng)寫成功了(因為網(wǎng)絡(luò)或者系統(tǒng)故障编曼,無法返回操作成功的響應(yīng))。
同步熱備具體實現(xiàn)時麸恍,為了提高性能灵巧,在應(yīng)用程序客戶端并發(fā)向多個存儲服務(wù)器同時寫入數(shù)據(jù),然后等待所有存儲服務(wù)器都返回操作成功的響應(yīng)后抹沪,再通知應(yīng)用程序?qū)懖僮鞒晒Α?/p>
這種情況下刻肄,存儲服務(wù)器沒有主從之分,完全對等融欧,方便管理和維護(hù)敏弃,并發(fā)寫入意味著總寫操作延遲是響應(yīng)最慢的那臺服務(wù)器的響應(yīng)延遲,因此跟異步熱備速度差不多噪馏。
關(guān)系數(shù)據(jù)庫熱備機(jī)制就是 Master-Slave 同步機(jī)制麦到,解決了數(shù)據(jù)備份問題,還改善了數(shù)據(jù)庫系統(tǒng)的性能欠肾,通常讀寫分離瓶颠,寫 Master 讀 Slave。
失效轉(zhuǎn)移
若數(shù)據(jù)服務(wù)器集群中任何一臺服務(wù)器宕機(jī)刺桃,那么應(yīng)用程序針對這臺服務(wù)器的所有讀寫操作都需要重新路由到其他服務(wù)器粹淋,這個過程叫失效轉(zhuǎn)移。
- 失效確認(rèn):有心跳檢測和應(yīng)用程序訪問失敗報告兩種手段。對于后者桃移,控制中心還要再一次發(fā)送心跳檢測確認(rèn)屋匕,以免錯誤判斷服務(wù)器宕機(jī)。
- 訪問轉(zhuǎn)移:將數(shù)據(jù)讀寫訪問重新路由到其他存儲對等的服務(wù)器上借杰。如果存儲不對等过吻,就需要重新計算路由,選擇存儲服務(wù)器蔗衡。
- 數(shù)據(jù)恢復(fù):數(shù)據(jù)副本數(shù)目已減少纤虽,必須將副本數(shù)目恢復(fù)到系統(tǒng)設(shè)定的值,否則再有宕機(jī)就可能出現(xiàn)無法訪問轉(zhuǎn)移(所有副本服務(wù)器宕機(jī))绞惦、數(shù)據(jù)永久丟失的情況廓推。因此系統(tǒng)需要從健康的服務(wù)器復(fù)制數(shù)據(jù),將數(shù)據(jù)副本數(shù)目恢復(fù)到設(shè)定值翩隧。