測試還原:綠色的工作不是證明
未經測試的備份不算備份,這句話人人都知道,卻沒有人照著做。本篇談的是測試真正的意思,因為一個看起來成功的工作並不是測試。
AtlasPVE ·
本條目涵蓋以下問題
- proxmox 還原備份
- proxmox 如何還原
- 怎麼確認 proxmox 備份可以用
- proxmox 備份測試
- proxmox 還原時 vmid 衝突
備份工作每晚都會執行,而且全部顯示綠色。這證明檔案已經寫入。它不能證明檔案可以讀取,不能證明裡面的虛擬機器能開機,更不能證明那台虛擬機器上的服務能運作。這中間的落差,會在真正需要它的那一天浮現。
測試的三個層級
第一:能否讀取。檢查備份是否完整。成本低,可以自動化,至少能抓到無聲的損毀。但光憑這一點,還是不能說虛擬機器能開機。
第二:能否開機。把備份以新的身分還原到測試目標上,在中斷網路的狀態下啟動,看看登入畫面。大多數人從未走到這個層級,雖然它只需要大約一次喝咖啡的時間,學到的東西卻很多。
第三:能否完成它的工作。應用程式有沒有啟動,資料在不在,最後一小時是否遺失。對關鍵的虛擬機器來說,這才是真正的問題,因為能開機但開起來是空的虛擬機器救不了任何人。
不破壞任何東西的測試規則
一律以新的身分還原,絕不覆蓋執行中的虛擬機器。並且在中斷網路的狀態下進行測試:在同一個網路上,兩台擁有相同身分和相同位址的虛擬機器會互相衝突,付出代價的不是測試複本,而是執行中的原始虛擬機器。
終於進行測試時會發現什麼
第一次測試的人發現的事情,在不同的環境之間驚人地相似。備份已經是三週前的了,因為工作悄悄停止,而沒有人去看。虛擬機器能開機,但應用程式要求一把存放在別處的金鑰。還原所需的空間比目標上的還多。這些在備份時都看不出來;在還原時全都一目了然。
還原時的意外
身分衝突:那個編號已經被使用。儲存區名稱:備份參照的儲存區名稱在這台機器上已經不存在。橋接器名稱:備份中的網路定義指向這台伺服器沒有的橋接器,所以虛擬機器開機後沒有網路。
這些都不是故障,而是搬遷帶來的影響。但如果第一次遇到是在真正發生災難的那一天,它們和故障根本無法分辨。
頻率與行事曆
每季做一次的還原測試,比一套從未演練過、卻完美無缺的備份政策更有價值。把測試綁定在一個日期上;留到有空再做的測試不會發生。把發現的事情寫下來,因為如果下一次測試發現同樣的事,問題就不在備份,而在流程。
重點在於演練
在真正遺失資料的那一天,不會有時間學習這些。那一天唯一能做的,就是重複已經做過的工作。測試就是那一天的演練,而演練的價值正在於此。
Atlas 的做法
Atlas 會顯示有哪些備份、存放在哪裡、何時建立,所以有沒有備份、備份有多舊這個問題,靠看就能回答,不必靠猜。這就是上述測試的第一步:確認有東西可以測試。還原本身是在 Proxmox 這一側的畫面中完成;Atlas 不會擋路,它讓手上擁有的東西變得清楚可見。
資料來源
Proxmox 官方文件。內容為英文,且在此主題上以官方文件為準。