2.3.4. Snapshot 卷冊

LVM snapshot 提供了一項在特定一瞬間,建立某個裝置的虛擬映像檔,並且不干擾服務的運作。當針對於原始裝置進行變更,並建立了 snapshot 之後,snapshot 功能會建立一份遭到變更後的部份資料之副本,如此一來它便可重建該裝置的狀態。

注意

LVM snapshot 在叢集環境中的節點之間,並不受到支援。您無法在叢集化的卷冊群組中建立 snapshot 卷冊。

注意

LVM 鏡像邏輯卷冊不支援 LVM snapshot。
因為 snapshot 只會複製建立了 snapshot 之後受到更改的資料部份,因此 snapshot 功能只需要少量的儲存空間。比方說,對於一個極少更新的原始裝置來說,該裝置容量的 3 到 5 % 就已足夠容納 snapshot。

注意

檔案系統的 snapshot 副本屬於虛擬副本,而不是實際的檔案系統媒介備份。Snapshot 無法取代備份程序。
Snapshot 的大小可掌管用來儲存原始卷冊上的變更的所需空間。比方說,若您製作了一個 snapshot,並且完全地覆寫了原始的卷冊,此 snapshot 的大小必須至少要和原始卷冊的大小相同,以保存變更。您必須根據預期的變更程度來配置 snapshot。比方說,一個大部分為唯讀的卷冊的暫時性 snapshot(例如 /usr)之所需空間,會比擁有較多寫入次數的卷冊的長期性 snapshot 之所需空間還要少。
若 snapshot 滿出的話,該 snapshot 將會無法使用,因為它將無法再追蹤原始卷冊上的變更。您應定時監控 snapshot 的大小。Snapshot 的大小能夠完全地重設,因此若您有足夠的儲存容量,您便能增加 snapshot 卷冊的大小來避免它被 drop 掉。相反的,若您發現 snapshot 卷冊的大小比您所需的還要大,您可減少該卷冊的大小,以釋出其它邏輯卷冊所需要的空間。
當您建立了 snapshot 檔案系統時,原始裝置的完整讀取和寫入存取權限還是可被保留。若 snapshot 上有一小區塊受到變更的話,該區塊會被標記並且永遠不會被由原始卷冊中複製出去。
Snapshot 功能有幾種用途:
  • 一般來講,snapshot 會使用於當您需要在邏輯卷冊上進行備份,而不影響持續進行資料更新的即時系統的情況下。
  • 您可在一個 snapshot 檔案系統上執行 fsck 這項指令,以檢查檔案系統的整合性,並判斷原始的檔案系統是否需要進行檔案系統修復。
  • 因為 snapshot 為可讀寫(read/write),因此您可透過製作一個 snapshot,並針對於該 snapshot 執行測試的方式,來使用應用程式針對於生產資料進行測試,並且完全不動到真實的資料。
  • 您可建立 LVM 卷冊,以搭配 Red Hat 虛擬化使用。LVM snapshot 可被使用來建立虛擬客座映像的 snapshot。這些 snapshot 可提供便利的方式來修改既有客座端,或以最少額外儲存空間來建立新客座端。欲取得在 Red Hat Virtualization 中建立以 LVM 為基礎的儲存集區之資訊,請參閱《虛擬管理指南》。
欲取得有關於建立 snapshot 卷冊上的相關資訊,請參閱〈節 4.4.4, “建立快照卷冊(Snapshot Volumes)”〉。
從 RHEL 6 發行版開始,您將可使用 lvconvert 指令的 --merge 選項來將 snapshot 合併入它原始的卷冊中。此功能的用途之一,就是當您遺失資料或檔案時,進行系統復原,或是當您需要將系統回復為先前的狀態時。當您合併了 snapshot 卷冊之後,形成的邏輯卷冊將會擁有原始卷冊的名稱、minor 數字,以及 UUID,並且合併的 snapshot 將會被移除。欲取得使用此選項上的相關資訊,請參閱〈節 4.4.5, “合併 Snapshot 卷冊”〉。