韓國政府 800TB 資料全毀事件 — 從 G-Drive 災難看大型文件儲存系統設計

2025 年 9 月 26 日,韓國「國家資訊資源管理院」(NIRS)的大田資料中心發生嚴重火災,一顆老化鋰電池爆炸引發全面性延燒,導致政府專用雲端儲存系統 G-Drive 全部毀損。
事件造成 75 萬名公務員、長達 7 年、約 858 TB 資料 在一夜之間消失。官方坦言該系統「完全無外部備份」,震驚全球 IT 界。

這起事故讓我們不得不重新審視:「若要建構一個同等級(數百 TB 、數十萬用戶)的文件共用系統,該如何避免重蹈覆轍?」


🔍 災難重點回顧

  • 火源:老化鋰電池爆炸,引燃伺服器機櫃。
  • 受損系統:政府雲端 G-Drive (2018 年起用)。
  • 資料規模:約 858 TB,19 萬–75 萬 名公務員使用。
  • 致命缺陷:無外部備份、集中單點、消防與隔離設計不足。
  • 損失結果:所有雲端文件燒毀,業務系統全面中斷。

🧱 我們如何正確設計一個 G-Drive 級文件儲存系統

若重新設計同規模系統(75 萬用戶、800 TB 可用容量),
可採以下分層架構:

1️⃣ 儲存層:Ceph 物件儲存(RGW S3 介面)

類別推薦值
編碼策略EC 8+3 (11/8 開銷 ≈ 1.375×)
每站原始容量約 1.4 – 1.6 PB
節點配置12 台 OSD 節點、每台 12–16 顆 20–22 TB HDD + 2 顆 NVMe WAL/DB
網路25 – 100 GbE Cluster 網、公私分離
Pool 示例default.rgw.buckets.data (EC)、default.rgw.buckets.index/meta/log (三副本)

2️⃣ 跨站複寫:RGW Multisite 近即時異地備援

  • 架構:一個 Realm、兩個 Zone(主 zone-a 與 備 zone-b)。
  • 同步機制:物件與中繼資料非同步複寫。
  • RPO:秒級至數分鐘(取決於 WAN 頻寬)。
  • RTO:數分鐘至十餘分鐘(DNS / App 切換)。

核心指令範例:codeBash

# 建立 EC Profile
ceph osd erasure-code-profile set ec-8-3 k=8 m=3 crush-failure-domain=host
# 建立資料池
ceph osd pool create default.rgw.buckets.data 8192 8192 erasure ec-8-3
# 建立 multisite 架構
radosgw-admin realm create --rgw-realm=gdrive --default
radosgw-admin zonegroup create --rgw-zonegroup=global --master --default
radosgw-admin zone create --rgw-zone=zone-a --master --default \
  --endpoints=https://rgw-a1.example.com --access-key=KEYA --secret-key=SECA
radosgw-admin zone create --rgw-zone=zone-b \
  --endpoints=https://rgw-b1.example.com --access-key=KEYB --secret-key=SECB
radosgw-admin period update --commit

🗺️ 拓樸圖

codeCode

Users → [LB] → RGW-A → Ceph Cluster A (EC 8+3)
           │
           │ RGW Multisite Sync(非同步複寫)
           ▼
        RGW-B → Ceph Cluster B (EC 8+3)

🧩 應用層整合

  • 前端:Nextcloud Enterprise / Seafile Pro / 自研 API
  • 身分:Keycloak / LDAP / SAML / OIDC
  • 資料庫:PostgreSQL 叢集 + 邏輯複寫
  • 快取:Redis Cluster
  • 監控:Prometheus + Grafana + Loki

🔐 備份與安全

  • 複寫 ≠ 備份,需另建 Immutable 離線備份(rclone → 雲冷存 Glacier 類)。
  • 每日增量、每週全備,保留 90 – 180 天版本。
  • 啟用 Versioning、Lifecycle、Object Lock、加密金鑰集中管理(Vault/KMIP)。

🌐 網路與效能估算

  • 每日變更 1% ≈ 8 TB/day → 平均 93 MB/s → 建議 10 – 40 Gbps 專線。
  • 叢集內部 :25 – 100 GbE 骨幹; 跨站延遲 ≤ 20 ms 可達秒級 RPO。

💰 成本概算(以 5 年攤提)

項目單站月成本兩站月成本
硬體攤提5.2 – 7.5 K USD10.4 – 15 K USD
機櫃電力2 – 5 K USD4 – 10 K USD
專線 / WAN3 – 10 K USD3 – 10 K USD
維保支援2 – 6 K USD2 – 6 K USD
總計約 19 – 41 K USD/月

✅ 實作重點清單

  1. EC 8+3 池 + 三副本 metadata 池。
  2. RGW Multisite 正確設置並監控 sync lag。
  3. S3 端啟用 Versioning 與 Lifecycle。
  4. 獨立 Immutable 備份與季度 DR 演練。
  5. 監控 PG/OSD 健康、延遲、回填。
  6. MFA/SSO 安全控管、日誌稽核、行為偵測。

🔎 結語:從 G-Drive 學到的教訓

韓國政府的災難揭示了兩個關鍵真相:

  1. 集中式、無備份的系統終將失敗。
  2. 備援、演練、版本控制與異地容災是唯一的保險。

若當時 G-Drive 採用 Ceph RGW Multisite 或任何具備 versioning 與 off-site backup 的設計,
即使機房全毀,資料亦可在數分鐘內於備站恢復。

這不只是技術問題,更是組織決策與治理問題。


Comments

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *