什麼是「應用程式感知備份」?
談到備份,您有眾多選項可供考量,以實現成功且快速的数据還原。這些選項包括備份類型、頻率、來源、目標位置等諸多方面。如今,鑑於多數組織皆使用伺服器來執行應用程式,僅是將磁碟上的檔案進行備份已不足以滿足需求。"不一致"的檔案備份無法滿足最佳的還原時間目標(RTO)與還原點目標(RPO)。
我們先前曾探討過 "系統當機後仍可執行一致性備份"的備份,這些資料在透過備份 Volume Shadow Copy Service (VSS). 不過,您也可以建立一致的應用程式備份。市面上大多數虛擬機器和實體機器的備份解決方案都提供"應用程式感知型備份"功能,讓應用程式在虛擬機器或實體機器恢復後能立即正常運作。
應用程式感知的一致性備份:其運作原理
一致性備份是一種能確保應用程式內所有資料均以一致狀態被擷取的備份方式,從而保證這些資料在還原時不會出現損毀或完整性問題。此類備份不僅僅是複製檔案或磁碟資料,而是透過與應用程式協調,使其運作進入靜止狀態(暫時暫停或穩定),並確保所有正在處理中的資料在備份程序開始前已提交至磁碟。
應用程式一致性備份在崩潰一致性備份的基礎上更進一步。雖然崩潰一致性備份是透過利用 Volume Shadow Copy Service,他們並不知道記憶體中可能存有應用程式的資料,以及任何待處理的 I/O 運作。應用程式感知型備份利用由 Volume Shadow Copy Service,名為 VSS writers.
VSS writers 是專為特定應用而設計的元件 Microsoft’s Volume Shadow Copy Service. 它們扮演著特殊的角色,確保應用程式資料能從記憶體中正確地清除,並保持凍結狀態足夠長的時間,以便 VSS 系統會先暫時凍結,待快照完成後再解除凍結。此過程通常僅需數秒。
對於需要事務一致性的應用程式(例如 Microsoft SQL Server),此過程至關重要。該 Microsoft VSS writers 針對 SQL Server 的快照功能能夠將資料從記憶體中沖洗出來、凍結 SQL 操作,並在快照完成後發布凍結。這確保了記憶體中的資料以及待處理的資料 I/O 在執行快照操作之前,已妥善清理並處理所有運作 VSS 磁碟快照。
這使得備份操作達到"應用程式一致性",因為不僅是磁碟,連應用程式本身也都在維持交易一致性的狀態下被備份。如果我們僅使用"崩潰一致性"備份,且未啟用應用程式感知特點,那麼應用程式很可能最終會處於非一致狀態。
應用程式一致性不僅是備份操作進行時的考量,對於還原操作而言,這同樣是且理應是重要的考量。我們可以成功地從崩潰一致性備份中還原應用程式伺服器,例如 Microsoft Exchange Server 或 SQL Server。 然而,我們必須遵循這些應用程式所要求的流程,才能將應用程式恢復至一致狀態。這可能包含重播日誌等步驟。正因如此,還原這些伺服器所需的時間,不僅包含還原原始檔案資源的時間(無論是 VMware 或 Hyper-V 虛擬機器,還是實體機器),還包含將應用程式恢復至一致狀態所需的時間。
使用應用程式感知備份技術 NAKIVO Backup & Replication
以下是一個備份工作範例,位於 NAKIVO Backup & Replication. 您應選擇 App-aware mode 以及當遇到錯誤時,我們希望這項工作如何繼續進行 VSS 關於 Options 精靈的頁面。

若將滑鼠懸停在 App-ware 方塊旁的"問號"圖示上,即可查看 App-ware 程序及其依賴項的詳細說明。請注意,針對 VMware 虛擬機器,其中提到 VMware Tools. VMware Tools 用於客體作業系統 進入休眠狀態 用於應用程式資料。

VSS Writers 以及故障排除
如前所述, VSS writers 是微軟的 Volume Shadow Copy Service. 這些可能是 Microsoft 或第三方元件,通常會隨應用程式本身一併安裝。在 Microsoft VSS writer 這些元件可根據特定應用情境進行安裝。網域控制器將具備"NTDS” 撰寫者,SQL Server 將具備"SqlServerwriter”,而 Exchange Server 將具有"Microsoft Exchange Writer""。談到故障排除時 VSS writers 若在執行應用程式感知備份時遇到問題,我們有數種工具和資源可供進行疑難排解。
這是個很棒的命令列工具,可用於檢視並排除特定 VSS writers 這些活躍的作家,以及他們的現況,是 vssadmin 命令。如果您開啟命令提示字元並直接輸入 vssadmin 您可以查看可用的具體指令 vssadmin.

使用 vssadmin list writers 透過此指令,我們可以查看特殊項目的詳細清單 VSS writers 用於各種應用。請注意,以下我們是在 Microsoft SQL Server 上執行該指令。我們有 SqlServerWriter 已列出。此外,請注意 State 以及 Last error 這些標記對於了解當前狀態以及特定情況下可能存在的任何錯誤非常有幫助 VSS writer.

下圖截圖取自一個 Windows Server 2016 網域控制器。請注意,對於這台伺服器, vssadmin list writers 該指令顯示 NTDS 寫入者,這是 Active Directory 網域服務所特有的。

如上所述, VMware Tools 是虛擬機器內應用程式感知處理不可或缺的一部分。預設情況下,針對 VMware Tools 未開啟。在排除與 VSS 在虛擬機器上,我們可能需要啟用記錄功能 VMware Tools 在客體作業系統內部。要做到這一點,我們需要編輯或建立該檔案 tools.conf 在我們的虛擬機器中。
如下所示,該檔案並未出現在我們的 Windows Server 2016 虛擬機器。導航至 C:ProgramdataVMwareVMware Tools 目錄中,我們已建立配置檔案。請確保已開啟副檔名顯示功能,以便正確命名檔案。

建立檔案後,我們需要編輯該檔案,並根據對應的作業系統加入以下內容。請注意,在 Windows 系統中,工具資料路徑需使用雙反斜線。您也可以在 Windows 系統中使用單一正斜線。
Windows 虛擬機器
[logging]
log = true
vmtoolsd.level = debug
vmtoolsd.handler = file
vmtoolsd.data = c:windowstempvmtoolsd.log
Linux 虛擬機器
vmtoolsd.data = /tmp/vmtoolsd.log
建立或編輯檔案後,只需重新啟動 VMware Tools service.

生成的日誌檔案包含除錯資訊,包括 VSS 運作資訊。以下是啟用 VMware Tools 除錯模式後,一段相當完整的除錯日誌片段。

此外,建議在排除任何 VSS 若要查看相關錯誤,請檢查 Windows 事件日誌,尤其是"應用程式"和"系統"日誌。"應用程式"日誌的記錄會顯示為來源 VSS 系統日誌條目將顯示在 volsnap此外還有 具體的 VMware VSS 疑難排解步驟 在檢視及排除與 VMware Tools 相關的問題時,需進行的步驟 VSS 錯誤。
結論
對於依賴事務一致性的應用程式而言,採用"應用程式感知型"虛擬機器備份來備份業務關鍵型應用程式,是建立穩健災難還原策略的關鍵。應用程式感知型備份能完整擷取記憶體中的所有資料,以及待處理的 I/O 在執行磁碟的一致性備份之前,需將相關操作寫入磁碟。這透過特殊 Volume Shadow Copy Service 能針對特定應用程式進行操作,並適當暫停運作足夠長的時間,以確保應用程式能在具備事務一致性的情況下完成備份。對於希望同時保護資料並盡可能快速還原應用程式資料的組織而言,還原"應用程式感知型"備份可免去需另行還原應用程式資料(例如重播日誌等)的步驟。這確保了組織能夠同時達成還原點目標與還原時間目標。