隨著 IT/IS 技術的不斷進步,高可用性 (HA) 的系統已經是基本的配置。除此之外,災難復原 (DR) 更是考慮到了實體的安全,當主要系統的所在地無法正常運作時,可以在最短的時間內於第二個地點恢復服務。甚至,有了號稱可以提供 100% uptime 的雲端系統,備份豈不多餘?
答案絕對是否定的。 正所謂天有不測風雲,設計再精良的系統,都無法保證絕對不會受到損害,而備份就是資訊可用性的最後一道重要防線:
- 相較於 HA / DR 的技術,備份技術擁有選擇性多、成熟度高、費用便宜等好處。其中選擇性多可以避免發生被單一廠商吃死的狀況。
- 即使是號稱 100% uptime 的雲端系統,也無法確保真的不會出問題。雲端系統的架構可能比(大部分的)私有架構更為成熟,但是絕對不會一躍變成神一般的等級。
- 有些問題非 HA / DR 技術可解決,其中之一正是豬一般的隊友。如果你曾經看過 delete from members (SQL command) 或 rm -rf / (SHELL command) 的 Live Show,你就絕不會懷疑備份的重要性。此時,備份 (加上 transaction log) 就可以避免你直接升天。
- 備份除了可以保全資料,在不得已 (沒預算) 的情況下還可以用來解決需要長期保留資料的問題 (如日誌)。儘管如此,如果在預算許可的情況下,後者還是應該選擇專門用於封存 (Archiving) 的技術。
既然備份依舊是 IT/IS 不可避免的項目,那麼回到一開始的話題,何謂不足的備份機制?常見的情況包含:
- 備份的目標不完整。舉例來說,公司有三台資料庫主機,卻只有備份到其中兩台。或是明明主機內有五個資料庫,卻只備份到其中三個。這個問題發生的原因通常是沒有落實相關作業的 SOP 或變更管理。
- 備份的項目不完整。跟前述有點類似,但是主要是指有些該備份的東西卻完全沒有備份。舉例來說,像是使用者上傳的檔案、系統的設定檔等,可能都忘了加入備份機制。這類問題發生的原因通常在於沒有做好系統分析或數位資產分類。
- 備份沒有進行相關的檢查工作。舉例來說,確認壓縮檔可以正常解壓,又或者資料庫的備份檔可以確實地予以還原。這部份可以透過自動化的程序簡化檢查工作。
- 備份資料防護不足。既然備份的資料多為公司重要的數位資產,那麼做好保護以避免不相關人士的存取 (甚至竄改) 就顯得相當重要。簡單來說,備份資料的安全防護至少應等同於線上資料的安全防護,甚至是擁有更高等級的防護機制。
- 備份資料的存放點不足。我看過最誇張的例子就是將僅有的備份放在同一台主機的同一個分割區內。備份就是為了避免當突發狀況發生時遭受資料遺失的風險,把備份資料放在同一個分割區不就宣告只要硬碟一壞就整個 GG 了嗎?
硬碟會不會壞?你買硬碟時廠商都清清楚楚地標示了保固期跟 MTBF,所以硬碟壞掉根本就是可預期會發生的災難。你會說我用 RAID 啊,一顆硬碟壞掉沒問題的啦,那 RAID 卡就不會故障並把資料搞亂嗎?相信我,我還真遇過。
針對上述第五點,比較嚴謹的作法可參考所謂的 3-2-1 備份法則 (3-2-1 backup rule):
- 每一筆資料至少擁有三個分身 (Have at least three copies of your data)
- 至少使用兩種以上的儲存媒介 (Store the copies on two different media)
- 保留其中一個分身於異地 (Keep one backup copy offsite)
把僅有的備份資料放在同一個分割區,明顯違反了 3-2-1 備份法則的所有規則。據此,我們可以考慮將主要的備份資料放在同一個機房內的網路硬碟,而次要的備份資料則放在異地。如果主要資料的所在地為辦公室,可以考慮利用雲端硬碟儲存次要的備份資料。但是如果主要的備份資料所在地為 IDC,那麼辦公室或雲端硬碟就可以擇一以用來存放次要的備份資料。透過幾個簡單的規則,下次就算發生機房失火這種極度恐怖的災難,你也可以全身而退了。