跳至主要内容

災難復原

本文件描述 Infra Labs 基礎設施的備份清單、復原情境及 RTO/RPO 考量。

備份清單

資產保護方式備註
設定檔Git 儲存庫(Infra-Labs-Config、infra-labs-kolla-ansible)權威的事實來源
機密資料設定檔儲存庫中的 Ansible Vault 加密Vault 密碼必須安全地儲存於儲存庫之外
Ceph 資料透過複寫保護(依 pool 不同,size 為 2 或 3)不能替代備份
MariaDBGalera SST 用於叢集復原
OpenStack 映像檔(Glance)位於 Ceph「images」pool(HDD,size=3)
Cinder 磁碟區位於 Ceph「volumes」pool(NVMe,size=3)或「volumes-sata-ssd」(size=2)SATA SSD 層保護不足
Cinder 備份位於 Ceph「backups」pool(HDD,size=3)

復原情境

1. 單一運算節點故障

  • Nova 將 VM 疏散至剩餘的 hypervisor。
  • Ceph 在存活的主機間重新平衡 OSD。
  • 復原:更換硬體、重新安裝作業系統、將節點重新加入叢集。

2. 單一控制節點故障

  • Galera、RabbitMQ、Ceph MON 和 OVN 維持 quorum。
  • 服務在 degraded 模式下持續運作。
  • 復原:更換硬體並透過 kolla-ansible 重建控制節點。

3. 兩個控制節點故障

  • Galera、RabbitMQ、Ceph MON 和 OVN 失去 quorum。
  • 服務無法接受寫入;讀取可能短暫維持。
  • 復原:需要手動 Galera bootstrap、RabbitMQ 叢集重設及 Ceph MON 復原。預期會有顯著的停機時間。

4. Arista 核心交換器故障

  • 全面網路中斷。所有資料平面流量停止。
  • 復原:更換硬體並還原設定。交換器設定應進行版本控制。

5. 整個站點毀損

  • 實體站點完全損毀。
  • 復原:使用 Git 儲存庫從零開始重新部署。運算和網路服務可以重建;資料遺失取決於 Ceph pool 和 MariaDB 是否存在異地備份。

RTO/RPO 分析

以下因素影響復原時間:

  • 硬體採購:前置時間最長。現場備用硬體可顯著降低 RTO。
  • 自動化部署:Kolla-ansible 能夠相對快速地重新安裝服務。
  • Ceph 重新平衡:取決於資料量和叢集健康狀態。大型 pool 可能需要數小時才能完成重新平衡。
  • 手動介入:兩個控制節點故障和整個站點毀損需要大量的手動作業。

在正式 RTO/RPO 目標定義之前,實際的復原預期如下:

情境預估 RTO資料遺失風險
單一運算節點數小時(有備用硬體)無(Ceph 複寫)
單一控制節點數小時
兩個控制節點數小時至一天可能(若有進行中的寫入)
核心交換器數小時(有備用硬體)無(資料完好存於主機上)
整個站點毀損數天至數週高(除非存在異地備份)