何謂「應用程式感知備份」?
談到備份,您有眾多選項可供考量,以實現成功且快速的還原。這些選項包括備份類型、頻率、來源、目標位置等諸多方面。如今,鑑於多數組織皆使用伺服器來執行應用程式,單純將磁碟上的檔案進行備份已不足以滿足需求。"不一致"的檔案備份無法滿足最佳的還原時間目標(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 能針對特定應用程式進行操作,並將運作暫停足夠長的時間,以確保應用程式能以交易一致性方式完成備份的備份程式。對於希望同時保護資料並能盡快還原應用程式資料的組織而言,還原"應用程式感知型"備份可免除需另行還原應用程式資料(例如重播日誌等)的步驟。這確保了組織能夠同時達成還原點目標與還原時間目標。