Linux中國

在 LVM中 錄製邏輯卷快照並恢復(第三部分)

LVM中錄製快照

如果我們在創建快照後意外地刪除了無論什麼文件,我們沒有必要擔心,因為快照里包含了我們所刪除的文件的原始文件。創建快照時,很有可能文件已經存在了。不要改變快照卷,保持創建時的樣子,因為它用於快速恢復。

快照不可以用於備份選項。備份是某些數據的基礎副本,因此我們不能使用快照作為備份的一個選擇。

前置閱讀

我的伺服器設置

  • 操作系統 — 安裝有LVM的CentOS 6.5
  • 伺服器IP — 192.168.0.200

步驟1: 創建LVM快照

首先,使用『vgs』命令檢查卷組中的空閑空間以創建新的快照。

# vgs
# lvs

Check LVM Disk Space

檢查LVM磁碟空間

正如你所見,在vgs命令輸出中,我們可以看到有8GB的剩餘空閑空間。所以,讓我們為我的名為tecmint_datas的卷創建快照。處於演示的目的,我將會使用以下命令來創建1GB的快照卷。

# lvcreate -L 1GB -s -n tecmint_datas_snap /dev/vg_tecmint_extra/tecmint_datas        

或者

# lvcreate --size 1G --snapshot --name tecmint_datas_snap /dev/vg_tecmint_extra/tecmint_datas

上面的兩個命令都是幹得同一件事:

  • -s – 創建快照
  • -n – 為快照命名

Create LVM Snapshot

創建LVM快照

此處,是對上面高亮要點的說明。

  1. 我在此創建的快照的大小。
  2. 創建快照。
  3. 創建快照名。
  4. 新的快照名。
  5. 要創建快照的卷。

如果你想要移除快照,可以使用『lvremove』命令。

# lvremove /dev/vg_tecmint_extra/tecmint_datas_snap

Remove LVM Snapshot

移除LVM快照

現在,使用以下命令列出新創建的快照。

# lvs

Verify LVM Snapshot

驗證LVM快照

上面的你看到了吧,成功創建了一個快照。上面我用箭頭標出了快照創建的源,它就是tecmint_datas。是的,因為我已經為tecmint_datas l-volume創建了一個快照。

Check LVM Snapshot Space

檢查LVM快照空間

讓我們添加一些新文件到tecmint_datas裡頭。現在卷里大概有650MB左右的數據,而我我們的快照有1GB大。因此,有足夠的空間在快照卷里備份我們的修改。這裡我們可以使用下面的命令來查看到,我們的快照當前的狀態。

# lvs

Check Snapshot Status

檢查快照狀態

你看到了,現在已經用掉了51%的快照卷,你要對你的文件作更多的修改都沒有問題。使用下面的命令來查看更多詳細信息。

# lvdisplay vg_tecmint_extra/tecmint_data_snap

View Snapshot Information

查看快照信息

再來對上面圖片中高亮的要點作個清楚的說明。

  1. 快照邏輯卷名稱。
  2. 當前使用的卷組名。
  3. 讀寫模式下的快照卷,我們甚至可以掛載並使用該卷。
  4. 快照創建時間。這個很重要,因為快照將跟蹤此時間之後的每個改變。
  5. 該快照屬於tecmint_datas邏輯卷。
  6. 邏輯卷在線並可用。
  7. 我們錄製快照的源卷大小。
  8. 寫時複製表大小,Cow = copy on Write,這是說對tecmint_data卷所作的任何改變都會寫入此快照。
  9. 當前使用的快照大小,我們的tecmintdata有10GB,而我們的快照大小是1GB,這就意味著我們的數據大概有650MB。所以,如果tecmintdatas中的文件增長到2GB,現在的51%中的內容將增加到超過所分配的快照的大小,當然,我們在創建快照時會出現問題。這就意味著我們需要擴展邏輯卷大小(快照邏輯卷)
  10. 給出快照組塊的大小。

現在,讓我們複製超過1GB的文件到tecmint_datas。讓我們看看會發生什麼。如果你那麼做了,你將會見到『Input/output error』這樣的錯誤信息,它告訴你快照超出空間大小了。

Add Files to Snapshot

添加文件到快照

如果該邏輯卷滿了,它就會自動丟失新的數據,我們就不能再使用了,就算我們去擴展快照卷的大小也不行。最好的方法就是在創建快照時,創建一個和源一樣大小的快照卷。tecmint_datas的大小是10GB,如果我們創建一個10GB大小的快照,它就永遠都不會像上面那樣超載,因為它有足夠的空間來錄製你的邏輯卷的快照。

步驟2: 在LVM中擴展快照

如果我們需要在超過容量前擴展快照卷的大小,我們可以使用以下命令來完成此項任務。

# lvextend -L +1G /dev/vg_tecmint_extra/tecmint_data_snap

現在,那裡有總計2GB大小的快照空間。

Extend LVM Snapshot

擴展LVM快照

接下來,使用以下命令來驗證新的大小和寫時複製表。

# lvdisplay /dev/vg_tecmint_extra/tecmint_data_snap

要知道快照卷的大小使用%

# lvs

Check Size of Snapshot

檢查快照大小

然而,如果你的快照大小和源卷一樣,我們就沒有必要擔心這些問題了。

步驟3: 恢復快照或合併

要恢復快照,我們首先需要卸載文件系統。

# unmount /mnt/tecmint_datas/

Un-mount File System

卸載文件系統

只想檢查掛載點是否卸載成功,可以使用下面的命令。

# df -h

Check File System Mount Points

檢查文件系統掛載點

這裡,我們的掛載已經被卸載,所以我們可以繼續恢復快照。要恢復快照,可以使用lvconvert命令。

# lvconvert --merge /dev/vg_tecmint_extra/tecmint_data_snap

Restore LVM Snapshot

恢復LVM快照

在合併完成後,快照卷將被自動移除。現在我們可以使用df命令來查看分區大小。

# df -Th

Check Size of Snapshot

在快照卷自動移除後,你可以用下面的命令查看邏輯卷大小。

# lvs

Check Size of Logical Volume

檢查邏輯卷大小

重要:要自動擴展快照,我們可以通過修改配置文件來進行。對於手動擴展,我們可以使用lvextend。

使用你喜歡的編輯器打開lvm配置文件。

# vim /etc/lvm/lvm.conf

搜索單詞autoextend。默認情況下,該值和下圖中的類似。

LVM Configuration

LVM配置

修改此處的10075,這樣自動擴展的起始點就是75,而自動擴展百分比為20,它將自動擴容百分之20

如果快照卷達到75%,它會自動為快照卷擴容20%。這樣,我們可以自動擴容了。使用wq!來保存並退出。

這將把快照從超載導致下線事故中拯救出來,這也會幫助你節省更多時間。LVM是我們擴容以及獲得其它眾多特性如精簡資源調配、拆卸、虛擬卷和使用精簡池的唯一方法,讓我們在下一個話題中來討論吧。

via: http://212.71.234.61/take-snapshot-of-logical-volume-and-restore-in-lvm/

作者:Babin Lonston 譯者:GOLinux 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國