如提所示,想請問各位大神
假設PRO為10分鐘、RTO為30分鐘,等於11:50~12:00的資料會於12:00進行備份,但如果11:55系統發生故障,並於11:55立刻進行修復,所以說系統會在12:25時回復運作,現在有個一直想不通的問題是說RPO僅10分鐘,但是11:50~12:00的資料因為中間發生故障,資料已經沒備份到了,然後修復又要花30分鐘修復,等於說11:50~12:25總共35分鐘的資料全部都會損失,這樣就不符合RPO=10了。
11:55 故障之後, 系統就無法再收資料了, 所以備份資料 vs. 最新的時間差距只會有 5 分鐘.
即便你修復到 12:25 才上線, 但此期間系統仍處於無法收資料的階段, 所以已經被系統收下的所有 Active 資料仍舊停留在 11:55 那一刻, 將最近的 11:50 備份復原回來, 仍然只損失五分鐘 Active 資料而已.
你的迷思在於: 把尚未進入系統的資料, 也視為 Active data, 所以誤解時間的計算範圍. 會這樣想的原因, 是把: 備份(Backup) vs. 備援(Redundancy) 兩者角色搞混了.
備份:
通常只做原機復原, 但他只負責保護-已經進入系統內的資料, 尚未進入系統的資料, 不屬於他的責任範圍. RTO/RTP 講的資料, 都是定義在這個範圍.
備援:
又稱容錯, 故障轉移(Failover), 熱備份(Hot backup)...等, 是當主系統故障, 導致無法處理資料期間, 在指定時間內啟動異機, 接手繼續處理後續時間軸上的資料, 使資料處理不中斷. Failover time (或 MTPD) 就是主系統移轉到備援系統中間的空窗期, 資料只會在這個空窗期遺失, 這跟 RTO/RPO 的計算無關.
當然, 備份下來的資料, 也可以用來啟動異機, 開始 failover, 此時可以把備份看成是一種冷備援 (Cold failover), 由於這樣 failvoer(備援) 的時間會非常長, 所以你持續串流性資料遺失的風險也很高 (但非串流資料則不受影響, 因為系統已經靜止, 不會有新資料產生).
MTPD 指的是: 不管你用 Cold/Warm/Hot 任何手段, 從:系統開始無法處理資料->到:系統可以恢復處理資料, 中間空窗的時間. 他不限定是原機或異機, 所以備份或備援機制, 都可以用這個指標來評量效率.
用備份資料來做 Cold failover 通常無法被認定為能容錯(Redundancy)的程度, 因為 MTPD 時間太長. 要能容錯, 代表串流資料損失量必須最小 (例如:現場直播), 此時 Cold failvoer 無法滿足商業需求, 必須導入 Hot failvoer 機制, 通常這會是 DR (災難復原) 計畫的一部分.
一個號稱不停頓的系統, 應該要同時有: 備援+備份+災難復原才合格.