「Veeam 每天都有寄信來,標題是綠色的 Success 我們就沒在看,直到上禮拜主機掛了要還原,才發現紅色 Failed 已經連續三個禮拜了。」這是某家工廠 MIS 跟我們苦笑著講的。Veeam 是很穩的工具,但它跟所有備份系統一樣,只負責照排程做、出錯也照實回報,看不看得懂那些錯誤、有沒有人去處理,是人的責任。備份最危險的狀態,從來不是「失敗」,而是「失敗了卻沒人知道」。這篇我們就把最常見的三類地雷——VSS 快照、儲存庫空間、還原驗證,一項一項拆給你看,讓你下次再收到紅色信,知道該從哪裡下手,而不是只會按重試。
先搞懂 Veeam 到底在跟誰打交道
很多人以為備份就是 Veeam 一個人的事,其實一次備份至少牽動三個角色。Veeam 本身是「指揮官」,負責排程、調度、把資料搬到目的地;真正在來源端「按下快門」凍住一個一致性瞬間的,是微軟的 VSS(Volume Shadow Copy Service,磁碟區陰影複製服務);最後接住這些資料落地的,是「儲存庫」(repository)。這三段裡任何一段出狀況,Veeam 都會照實回報成 Failed,但根因可能根本不在 Veeam 身上。所以排錯的第一個心法,是先判斷「這封紅色信是在抱怨快照、還是在抱怨落地」,方向對了,後面才不會沒有方向地嘗試。
為什麼一定要快照?因為資料庫、AD、Exchange、檔案伺服器這些東西,備份的當下還在被人寫入。如果你直接複製檔案,很可能複製到一半資料已經變了,還原回來就是一份「撕裂」的、對不起來的資料。VSS 的價值就在這裡:它會協調系統裡各個「VSS Writer」,讓應用程式先把記憶體裡的東西刷回磁碟、進入一個乾淨的靜止狀態,然後在毫秒之間凍出一份一致性快照,Veeam 再從這份快照從容地讀取。理解了這層機制,你就會明白為什麼 VSS 一旦卡住,整個備份就跟著垮——它是那道最關鍵、也最脆弱的關卡。
VSS 錯誤:八成備份失敗的真正源頭
Windows 系統與應用的備份,失敗根因最常落在 VSS 本身,而不是 Veeam。你會在日誌裡看到一串十六進位的錯誤碼,先別慌,它們其實是在跟你說人話。
讀懂錯誤碼:0x80042306 與 0x8004231F 在說什麼
最常見的 0x80042306,字面意思是「陰影複製提供者發生錯誤」,實務上多半代表 VSS 的非同步作業沒能在時限內完成,或是某個 Writer 卡在錯誤狀態把整個快照拖垮了。另一個 0x8004231F 則直白得多,它是「儲存空間不足以建立陰影複製」,也就是系統找不到足夠的地方放那份快照差異檔。這兩個碼指向的方向完全不同:前者要去追是哪個元件不健康,後者要去追是哪顆碟太滿。看懂差別,你就省下一半的時間。
vssadmin list writers:先問是哪個 Writer 倒了
遇到 VSS 錯誤,排查的第一步永遠是登進那台來源機器,跑 vssadmin list writers。這條指令會把系統裡所有 VSS Writer 的狀態攤開來給你看,健康的會顯示 Stable / No error,出問題的會是 Failed、Timed out 或 Waiting for completion。找到那個倒下的 Writer,對照它是哪個應用(例如 SQL、Exchange、系統本身的 System Writer),重啟對應的服務往往就恢復了;有些頑固的 Writer 卡到只能整台重開機才能重置。這也正是 Veeam 內建「自動重試」的原因——不少 VSS 卡頓是一時性的,第一次重試就過關。但反過來說,如果你的備份是「三不五時失敗、重試又成功」,千萬別當沒事,那通常是某個 Writer 或防毒長期處在邊緣狀態,哪天真的要還原時,它很可能就在最不該倒的那天整碗端走。順帶一提,vssadmin list shadows 可以列出目前殘留的快照,卡死的舊快照有時本身就是問題來源。
影本空間、64TB 硬上限與防毒搶快門
儲存庫「空間不足」:不是加硬碟就能解
第二大類失敗是儲存庫報空間不足、磁碟沒有足夠空間。最直覺的當然就是真的滿了:備份鏈越積越長、保留份數(retention)設太多、或該生效的重複資料刪除與壓縮沒發揮作用。但這裡有個工程上的陷阱——Veeam 官方明白指出,有時候明明還剩一大塊空間,系統照樣報錯,那就得往別的方向查,反射性地加硬碟只是治標。
幾個「有空間卻報不足」的典型成因值得記起來。檔案系統或配額限制:磁碟本身沒滿,但設了 quota 把單一資料夾或使用者卡死,或檔案系統對單檔大小、檔案數量有上限。合成完整備份(synthetic full)的臨時膨脹:Veeam 在合併備份鏈、生成合成完整備份的那一刻,會需要額外的暫時空間;若你的儲存庫底層是 ReFS 或 XFS,Veeam 能用區塊複製(fast clone / block cloning)近乎零成本地合成,省下大量空間,但若底層不支援這項特性,同樣的排程就可能在半夜撐爆。Scale-Out 儲存庫(SOBR)的搬運瓶頸:當你把資料往物件儲存(capacity tier)卸載時,負責搬運的閘道伺服器(gateway server)需要在本機留一塊暫存快取,經驗值大約是每搬 1TB 資料就要 2GB 左右的快取空間,而它預設用的是 C:\Windows\Temp 這種系統碟位置。如果閘道那顆系統碟很小、又剛好被別的東西塞滿,卸載任務就會以「磁碟空間不足」失敗,但你的備份主碟其實空得很。你還可能撞到「效能層與容量層未同步、需要重新掃描(rescan)」這類狀態不一致的錯誤,或是「沒有任何延展區(extent)有足夠空間存放備份檔」——這些都不是加硬碟能解的,得回去看架構與策略。
綠燈不等於救得回來——3-2-1-1-0 與還原驗證
把 Veeam 裝好、排程跑到綠燈,其實只完成了一半。真正讓你睡得著的,是備份架構本身夠韌。老規矩是 3-2-1 原則:至少三份資料、放在兩種不同媒體、其中一份在異地。但這條規則有個時代性的盲點——它預設「故障是意外的」,而今天的威脅是「有人蓄意來砸你的備份」。
故障率、復原成功率與工時不適合用別人的平均值推估。現場應留下資產、告警、備份、還原演練、事件處理與停機紀錄,再用自家數據決定汰換、容量與維運優先順序。
為什麼不可變這一份是命脈?因為不可變副本的機制,是在寫入的當下就替資料上一道「在保留期內誰都不能改、不能刪」的鎖——這道鎖連被攻陷的管理員帳號、甚至 Veeam 本身都推翻不了,它可以由物件儲存的物件鎖定(object lock)或強固化的 Linux 儲存庫來實現。中了勒索病毒、其他線上備份全被清空時,這份刪不掉的副本,常常是整間公司唯一還站著的救兵。這也解釋了為什麼「異地」和「離線/不可變」是兩件事:異地防的是火災水災,不可變防的才是人為惡意。
那個「0」:SureBackup 幫你把備份真的開起來看看
Veeam 的 SureBackup 就是把這件事自動化。它會在一個叫 Virtual Lab 的隔離沙箱網路裡,直接從壓縮、去重後的備份檔把那台 VM 開機起來——注意,它不需要先把幾 TB 資料完整還原,而是讓 VM 邊跑邊把變動寫進暫存的 redo log,驗證結束後這些暫存檔就丟掉,整個過程對正式環境零影響。開起來之後,它會跑三層檢查:Heartbeat(心跳)確認作業系統有正常啟動、透過整合服務回應;Ping 確認網路堆疊活著、叫得動;應用測試則用預設或自訂腳本去戳資料庫連線、郵件服務這些真正的業務功能,看它們是不是真的能服務。跑完自動產生報告寄給管理員。這一整套,就是在替你回答那個最要命的問題:你那份備份,真的還原得回來嗎?
我們看過太多「檔案在、卻開不起來」的案例——備份鏈某個節點默默損毀、應用一致性其實早就壞了,平常沒人知道,直到真要救的那天才發現手上抱著的是一具空殼。沒驗證過的備份,說穿了只是一種心理安慰。把 SureBackup 排成定期作業、再搭配一年至少一到兩次的真人還原演練(真的把某台服務救到一個測試環境跑起來),這道關卡才算真的關上。
幾條工程判準,收在你口袋裡
把上面的東西濃縮成可以直接拿去用的判斷準則,方便你下次面對紅色信時對照。
- 先分流再動手:看錯誤是指向快照(VSS 相關碼、Writer failed)還是落地(repository、disk space、SOBR offload),方向錯了怎麼修都是白費。
- VSS 卡住先跑 vssadmin list writers:鎖定倒下的 Writer,重啟服務或重開機;反覆「失敗又重試成功」不是沒事,是預警。
- 空間不足別反射加硬碟:先確認是真滿、還是配額/檔案系統/閘道快取碟/合成備份暫時膨脹在作怪。
- 巨型磁碟區走硬體 VSS:超過 64TB 的磁碟區不能靠軟體提供者,架構規劃階段就要想清楚。
- 防毒設排除、別整套關:依官方清單排除備份路徑與程序,衝突的防勒索模組可暫停,但不要把整台機器的防護拆掉。
- 至少一份不可變:物件鎖定或強固化 Linux 儲存庫,這份是中招後的最後底牌。
- 沒驗證過的備份不算備份:SureBackup 定期跑,每年做真實還原演練,把「0 錯誤」變成有憑有據,而不是一句口號。
廷皓科技服務高雄、台南、屏東的中小企業。Veeam 備份排程的健檢、VSS 與儲存庫的疑難排解、3-2-1-1-0 架構規劃、不可變副本導入,以及 SureBackup 還原驗證與定期演練,都是我們替客戶把關的重點。別讓你的備份只是每天寄來的一封綠色信,也別等到主機真的掛掉那天,才發現連續三週的紅色 Failed 沒人看。歡迎找廷皓來驗證一次,把「應該救得回來」變成「確定救得回來」。