運用 Microsoft 的卷影複本技術進行一致性備份

在備份正在執行應用程式的虛擬或實體機器時,尤其是那些會頻繁將資料寫入檔案和資料庫的應用程式,確保備份資料的一致性至關重要。具備一致性的備份資料有助於在還原時避免資料損毀或延遲。為此,微軟開發了 VSS 技術。

這篇部落格文章將說明”卷影複本服務”(VSS)是什麼、其運作原理,以及為何這項技術對於備份基於 Windows 的虛擬與實體機器至關重要。

什麼是 VSS?

“卷影複本服務”(VSS)是 Windows 作業系統的原生特點,可協助建立一致且應用程式感知的備份。為確保備份資料的一致性,系統會執行以下操作:

  • VSS 會暫時中斷應用程式執行的寫入操作。
  • 記憶體中的緩衝區會寫入磁碟,也就是說,會進行沖洗,而檔案系統則會被凍結。
  • 在 Windows 作業系統中,會建立一個卷宗快照,亦稱為影子副本。

“卷影副本”(亦稱為”卷快照服務”)是一組 COM(元件物件模型) Windows 中的介面,提供用於為不同應用程式建立一致性備份的框架。VSS 首次隨 Windows XP 和 Windows Server 2003 一起發布。

為何您需要 VSS 技術

應用程式資料的一致性對於虛擬機器(VM)和實體伺服器的備份至關重要。一致性可確保在從備份還原後,運行於虛擬或實體機器上的應用程式能完全具有功能性。

若未使用 VSS,所獲得的備份將不具一致性。此類備份僅是將每個區塊以其被複製當下的狀態直接複製而生成。假設某個檔案正持續被應用程式(例如資料庫或系統應用程式)所使用。 該應用程式會透過寫入/刪除區塊,持續變更已開啟檔案中的資料。當檔案的前段正在被複製時,檔案其他部分所使用的區塊卻在持續變更。等到檔案的其他部分被複製到備份儲存庫時,前段的區塊早已發生變更。最終得到的將是資料區塊之間不一致,且無法代表單一特定時間點的備份。

避免這種情況的一種方法是 基於快照的 虛擬機器備份。當備份程序開始時,系統會建立一個快照,也就是虛擬機器的精確副本。在此過程中,所有虛擬機器磁碟(以 .vmdk (VMware 環境中的檔案)會變成唯讀。為了將備份過程中對主磁碟所做的變更儲存下來,VMware ESXi 會建立一個與主磁碟相連的增量檔案 .vmdk 檔案。在建立增量檔案後,備份軟體便會開始從唯讀的 .vmdk 檔案。備份程序完成後,差異檔將與 .vmdk 檔案。

這種方法對於負載不太高的檔案系統(例如內部檔案儲存或網頁伺服器)可能效果良好。然而,若備份程序在某些交易正在執行且 I/O(輸入/輸出)操作正在進行的時刻啟動,則可能會導致資料遺失。當您使用 Microsoft SQL Server、Active Directory 或 Exchange Server 等應用程式或資料庫時,無法僅透過關閉檔案後再對其追加資料來進行備份。 此時,”卷影複本服務”(VSS)便能派上用場。這項技術允許對已開啟且正在使用的檔案建立特定時間點的複本,同時不會影響這些複本的完整性與可用性。

“卷影複本服務”的運作方式

要了解 VSS 的運作原理,我們首先需要概述構成此特點的各組件。VSS 的主要組件包括:

  • 該 VSS 服務供應商 是 VSS 的核心組件,負責建立卷的影子副本(快照)。VSS 提供者可以採用軟體或硬體實作。Windows 作業系統內建了基於”寫入時複製”原理的軟體型 VSS 提供者。硬體型提供者通常用於 SAN 儲存(儲存區域網路)。在建立影子副本時,硬體型提供者會將此任務從主機作業系統中卸載。
  • 該 作家 這些是將資料寫入檔案和資料庫以確保一致性的軟體元件。每個支援 VSS 的應用程式,都會在安裝過程中將其寫入程式加入作業系統。提供 VSS 寫入程式的應用程式範例包括 Microsoft SQL Server 和 Exchange Server。
  • 該 申請人 這是一個軟體元件,用以指令 VSS 提供者開始或停止運作(建立、刪除或匯入影子副本)。請求者可能是 Windows 原生元件(例如 NTBackup 或 Hyper-V 的快照管理員),也可能是第三方應用程式(例如備份軟體)。
  • 該 VSS 服務 是一種作業系統元件,用以確保所有其他元件能夠相互通訊並協同運作。

How does VSS work?

快照是在磁碟區層級建立的,而 VSS 是以區塊為單位運作(檔案也是以區塊為單位)。這就是為什麼無法對檔案或資料夾建立快照。影子副本可以儲存於同一磁碟區,也可以儲存於其他磁碟區。磁碟區中分配給儲存影子副本的空間稱為”差異區”。

“System Volume Information”資料夾是用來儲存 VSS 影子副本檔案的。這些檔案的識別碼類似於 3517271a-d214-3a47-c5ea-01137a4fe675.

VSS 技術可作為 Windows 的原生工具,用於儲存磁碟卷的特定時間點快照。透過這些快照,您可以撤銷變更,並將整個卷或特定檔案恢復至已保存的狀態。儘管如此,為了實現更可靠的数据保護,仍建議建立真正的備份並儲存於外部媒體上。

VSS 是一種增量式程序——Windows 可以連續建立多個卷快照。 建立第一個影子副本後,VSS 會將資料分割為 16 KB 的區塊,藉此追蹤磁碟上的變更。若磁碟上有變更,該服務便會將整個區塊寫入影子副本。因此,無需在建立每個新快照時複製完整的資料集,僅需複製已變更的區塊即可。

VSS 的主要需求與限制:

  • 建立 VSS 快照至少需要 300 MB 的磁碟空間。
  • 預設情況下,卷快照的最大數量為 64 個。
  • Windows 系統會為影子副本分配 10% 的磁碟空間。

請注意,由備份應用程式觸發的 VSS 快照,通常會在備份工作完成後被刪除。

用於管理 VSS 影子副本的原生工具

您可以使用 Windows 原生工具來管理卷影副本。了解它們如何與快照協同運作,有助於更深入理解 VSS 技術,並排除可能出現的問題(例如,在完成備份後,臨時 VSS 快照未被刪除)。

雖然 Windows 圖形化使用者介面(GUI)中提供部分 VSS 選項,但所有選項皆可透過命令列存取,這對我們而言更具實用價值。有兩款 VSS 工具可供您在 Windows PowerShell 或 CMD 中使用:

  • vssadmin – 適用於所有自 Windows XP 起(包含 Windows 10)的 Windows 版本,唯獨不適用於 Windows 8。
  • diskshadow – 僅適用於 Windows Server 版本。這是對 vssadmin,這不僅讓您能夠在互動模式下工作,還能建立腳本。

請注意,這兩項工具是不同的,且運作於不同的情境中。在 vssadmin 無法在 diskshadow 反之亦然。您可以查看使用其他工具建立的快照,但無法對其執行任何操作。

卷影複本服務 (VSS) API 可供備份應用程式使用 VSS,並建立”應用程式感知”備份,以確保備份資料的一致性。

執行 Windows 的 VMware 虛擬機器會使用 VMware VSS 元件,作為客體 Windows 作業系統中的 VSS 驅動程式,以進行靜止處理。當您 安裝 VMware Tools. 在其他使用情境下,若使用舊版 Windows,則會採用 SYNC 驅動程式。

陰影副本是如何建立的

一旦建立陰影副本(卷快照),其大小即為 0 位元組。當寫入新資料時,資料會寫入磁碟(通常應存放的位置),但舊資料則會寫入陰影副本中,以便您日後能還原該舊資料。因此,陰影副本的大小會隨之增加。

建立快照時,資料寫入主要有兩種方式:

  • Redirect on write (RoW): 將新區塊寫入快照(影子副本),並儲存包含這些區塊應寫入磁碟上哪些位置之資訊的元資料。此方法雖能快速寫入資料,但讀取資料的速度較慢。若需回滾至建立快照時的初始狀態,只需刪除快照即可(幾乎瞬間完成),此過程僅需數秒。RoW 方法用於 建立虛擬機器虛擬磁碟的快照 (VMDK) 在 VMware ESXi 和 VMware 工作站中。
  • Copy on Write (CoW): 將新區塊寫入磁碟上的指定位置,並將重寫後區塊的內容傳送至快照。寫入速度較慢,但讀取速度較快。先前快照(先前資料狀態)會在幾秒內(近乎瞬間)被刪除。VSS 快照採用”寫入一次,讀取多次”(CoW)的方法。

由於有如此多不同的應用程式能夠將資料寫入磁碟,微軟透過 VSS 建立了一個統一的介面,用以在啟動快照建立程序後,通知所有應用程式即將建立快照。此通知訊息的原理如下:系統即將建立快照——請停止寫入操作,並將寫入緩衝區的內容寫入磁碟,以使資料進入一致狀態。

建立 VSS 快照的工作流程如下:

  1. VSS 請求方會檢查其可進行通訊的可用服務,列舉寫入者,並彙整元資料。
  2. 在彙整完一組寫入者清單後,請求者會與 VSS 提供者進行通訊,並告知其欲建立的快照內容以及快照應存放的位置。在大多數情況下,快照會存放於原始磁碟上的同一個卷上。在其他情況下,SAN 硬體供應商可以為快照建立一個獨立的卷,此類快照稱為”儲存快照”。
  3. 備份準備。此步驟包括查詢 VSS 寫入器的實際狀態(在取得元資料之後),並為寫入器必須依序執行的最重要操作做好準備。 系統會通知各寫入器,須為快照的建立做好準備。系統緩衝區將被清空,且應用程式會被凍結,以確保能建立一致的資料副本。每個寫入器必須在預設的 60 秒分配時間內完成作業。Microsoft Exchange Server 僅有 20 秒的時間執行此操作(此時間由 Microsoft 設定)。

    註: 20 秒是一段很短的時間。如果應用程式無法在這個時間內完成作業,寫入程式會回傳錯誤,且不會建立快照。若儲存裝置的效能不足以在這個時間限制內完成作業,您可以嘗試升級硬體來解決此問題。 例如,您可以將 HDD 更換為 SSD 儲存裝置。此外,您也可以嘗試將其他工作負載遷移至另一處儲存空間,並僅將專用儲存空間保留給執行 Microsoft Exchange Server 的電腦使用。請檢查日誌以查明是哪個寫入程式在建立快照的任務中發生失敗。

  1. 如果一切正常,且系統活動已凍結,則 VSS 會通知提供者可建立影子副本。建立快照的時間僅有 10 秒。在此期間,檔案系統的 I/O 請求將暫時無法處理。此時您也可以建立虛擬機器快照。一旦 10 秒過去,所有寫入程序便會解除凍結,輸入/輸出(I/O)操作也將恢復正常。

    註: 如果 VSS 提供者耗時超過 10 秒才完成影子副本的提交,則該操作將失敗。

  1. VSS 會通知寫入程式,應用程式可以解除 I/O 請求的凍結狀態,並繼續將資料寫入磁碟。如果我們使用備份應用程式,且已建立一個使用 Windows VSS 服務的備份,則可以刪除該 VSS 快照。此操作可由備份應用程式自行執行。此外,您也可以透過以下方式刪除卷冊快照: diskshadow 或 vssadmin.

    若遇到 VSS 問題,當其他方法無效時,重新啟動電腦通常能解決問題。 部分與時間限制相關的問題(例如,建立快照需在 10 秒內完成),可透過升級硬體(包括磁碟裝置)或降低系統負載來解決。

    請嘗試手動建立快照,並確認是否能在 20 秒的時限內完成(以 Exchange Server 為例)。若操作失敗,請重新啟動系統、降低系統負載,然後再次嘗試。

自 Windows Server 2012 起,VSS 便支援 Windows 中的 SMB 檔案分享。VSS 技術對於檔案分享而言非常實用,因為使用者和應用程式可能會持續寫入檔案,若沒有 VSS 的協助,備份檔案分享將是一項挑戰。 NAKIVO Backup & Replication 10.7 支援 檔案分享備份.

“卷陰影副本服務”在 NAKIVO 解決方案中的運作方式

我們已經探討了 VSS 的基本運作原理。現在,讓我們來看看在使用專用的備份軟體(例如)建立 VMware vSphere 虛擬機器備份時,VSS 技術是如何運作的 NAKIVO Backup & Replication.

簡而言之,卷陰影複本服務(VSS)的運作方式如下:請求者啟動 VSS 提供者。提供者將寫入者重定向至日誌檔案中寫入資料,並開始建立卷快照。當請求者向提供者發出停止訊號後(通常是在快照準備就緒之後),提供者便開始將資料從日誌檔案移回卷上。

在這種情況下, NAKIVO Backup & Replication 在使用 VSS 備份 VMware vSphere 虛擬機器時,會成為 VSS 請求者。

  1. 在虛擬機器備份開始之前,NAKIVO 解決方案會透過其 VSS 寫入器寫入資料。

VSS writer services are working with applications

  1. 當備份開始時, NAKIVO Backup & Replication 要求 VSS 提供者開始運作。當卷”凍結”時,寫入程式會將資料重定向至日誌檔案中。

VSS backup has been started

  1. NAKIVO Backup & Replication 開始在虛擬機器層建立快照。此過程可能需要幾秒鐘到幾分鐘不等,具體取決於 VMFS 儲存系統的負載。在此期間,寫入器會持續將資料寫入日誌檔案。
  2. 已成功建立虛擬機器的快照。 NAKIVO Backup & Replication, 作為請求方,向提供方發出停止運作的訊號。

VM backup using VSS software is in process

  1. VSS 提供者會將變更從日誌檔案移至卷。 NAKIVO Backup & Replication 將虛擬機器快照的資料區塊複製到備份儲存庫中。

    您可以在精靈中的 Options 步驟。如此一來,您便能在運行 Windows 的電腦上啟用 VSS,以便備份該電腦。
    The app-aware mode is used to enable VSS for VM backup

結論

卷影複本服務(VSS)是一項能確保虛擬機器備份一致性的優秀技術,但僅適用於基於 Windows 的系統。若要為基於 Linux 的系統建立一致性備份,您應實作特殊的”凍結前”與”解凍後”腳本。NAKIVO 解決方案亦提供針對 Linux 伺服器與工作站的自動化一致性備份。

試試看 NAKIVO Backup & Replication

試試看 NAKIVO Backup & Replication

立即申請免費試用,全面探索本解決方案的所有資料保護特點。15 天免費試用,特點與容量完全不受限制,無需提供信用卡資訊。

People also read