前言
攜程旅行網曾因伺服器故障導致服務中斷數小時,凸顯「備份與冗余」對業務連續性的關鍵性。本文系統梳理故障成因、應急預案核心要素與高可用架構設計原則。
一、故障根因分類
| 類別 | 典型案例 | 預防措施 |
| 外部攻擊 | DDoS、SQL 注入、零時差漏洞利用 | WAF、速率限制、定期滲透測試、威脅情報訂閱 |
| 內部故障 | 硬體損壞、軟體 Bug、資源耗盡(磁碟/記憶體/連線數) | 硬體監控(SMART/IPMI)、自動化巡檢、容量規劃、混沌工程 |
| 運維誤操作 | 誤刪資料庫、錯誤推送設定、未測試腳本直接上線 | 變更管理流程、金絲雀發布、自動化回滾、權限最小化 |
二、備份體系:最後防線
常見備份失敗原因
- 備份腳本邏輯錯誤導致未真正備份關鍵資料。
- 儲存空間耗盡導致後續備份靜默失敗。
- 備份媒體(磁帶/硬碟)損壞、索引遺失、讀取設備故障。
- 磁帶離庫檢索時間過長,延長 RTO(復原時間目標)。
備份最佳實踐
- 3-2-1 原則: 3 份副本、2 種媒體、1 份異地。
- 分級備份: 系統級(每週完整+每日增量)、資料庫級(每日完整+每小時邏輯備份)、核心業務資料(近即時複寫)。
- 定期演練: 每季在隔離環境完整還原,驗證 RTO/RPO。
- 加密與不可變性: 傳輸與靜態加密,防勒索軟體加密備份檔。
三、冗余架構:消除單點故障
| 層級 | 冗余實作 |
| 電源 | 雙電源模組 (PSU) 接雙路市電 + UPS + 柴油發電機 |
| 網路 | 多 ISP 接入、BGP 多路由宣告、獨立佈線路徑、VRRP/HSRP 閘道冗余 |
| 伺服器 | 叢集(Active-Passive / Active-Active)、容器編排、無狀態服務水平擴展 |
| 儲存 | RAID 1/5/6/10、分散式檔案系統、雲端物件儲存多 AZ 複寫 |
| 資料庫 | 主從複寫、多主同步、自動故障轉移(MHA/Orchestrator/Patroni) |
四、應急預案標準流程(IRP)
- 偵測與告警: 監控系統(Prometheus/Zabbix/Datadog)觸發 P1 告警,自動通知值班人員(電話/簡訊/Slack/釘釘)。
- 分級研判: 5 分鐘內確認影響範圍、嚴重度、是否需啟動戰時室。
- 止血與迴避: 啟用備援節點、切換 DNS/負載平衡器、啟用熔斷/降級開關、封鎖惡意流量。
- 根因分析: 收集日誌、指標、追蹤、核心轉儲;必要時啟用詳細除錯日誌。
- 修復與驗證: 在測試環境驗證修復腳本/補丁,金絲雀釋出,全量部署。
- 事後複盤: 48 小時內產出事後報告(時間軸、影響、根因、改進行動項、負責人、期限),納入知識庫。
五、關鍵指標與服務等級目標
- RTO (Recovery Time Objective): 核心業務 < 30 分鐘,一般業務 < 4 小時。
- RPO (Recovery Point Objective): 核心資料 < 1 分鐘(同步複寫),一般 < 1 小時。
- SLA 可用性: 99.9%(年停機 < 8.76 小時)、99.99%(< 52.6 分鐘)、99.999%(< 5.26 分鐘)。
「備份是為了恢復,冗余是為了不中斷。」只有將備份驗證、冗余架構、自動化故障轉移與標準化應急流程落地,才能在災難來臨時將業務影響降至最低。