在 LVM中 錄製邏輯卷快照並恢復(第三部分)
在LVM中錄製快照
如果我們在創建快照後意外地刪除了無論什麼文件,我們沒有必要擔心,因為快照里包含了我們所刪除的文件的原始文件。創建快照時,很有可能文件已經存在了。不要改變快照卷,保持創建時的樣子,因為它用於快速恢復。
快照不可以用於備份選項。備份是某些數據的基礎副本,因此我們不能使用快照作為備份的一個選擇。
前置閱讀
我的伺服器設置
- 操作系統 — 安裝有LVM的CentOS 6.5
- 伺服器IP — 192.168.0.200
步驟1: 創建LVM快照
首先,使用『vgs』命令檢查卷組中的空閑空間以創建新的快照。
# vgs
# lvs
檢查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 – 為快照命名
創建LVM快照
此處,是對上面高亮要點的說明。
- 我在此創建的快照的大小。
- 創建快照。
- 創建快照名。
- 新的快照名。
- 要創建快照的卷。
如果你想要移除快照,可以使用『lvremove』命令。
# lvremove /dev/vg_tecmint_extra/tecmint_datas_snap
移除LVM快照
現在,使用以下命令列出新創建的快照。
# lvs
驗證LVM快照
上面的你看到了吧,成功創建了一個快照。上面我用箭頭標出了快照創建的源,它就是tecmint_datas。是的,因為我已經為tecmint_datas l-volume創建了一個快照。
檢查LVM快照空間
讓我們添加一些新文件到tecmint_datas裡頭。現在卷里大概有650MB左右的數據,而我我們的快照有1GB大。因此,有足夠的空間在快照卷里備份我們的修改。這裡我們可以使用下面的命令來查看到,我們的快照當前的狀態。
# lvs
檢查快照狀態
你看到了,現在已經用掉了51%的快照卷,你要對你的文件作更多的修改都沒有問題。使用下面的命令來查看更多詳細信息。
# lvdisplay vg_tecmint_extra/tecmint_data_snap
查看快照信息
再來對上面圖片中高亮的要點作個清楚的說明。
- 快照邏輯卷名稱。
- 當前使用的卷組名。
- 讀寫模式下的快照卷,我們甚至可以掛載並使用該卷。
- 快照創建時間。這個很重要,因為快照將跟蹤此時間之後的每個改變。
- 該快照屬於tecmint_datas邏輯卷。
- 邏輯卷在線並可用。
- 我們錄製快照的源卷大小。
- 寫時複製表大小,Cow = copy on Write,這是說對tecmint_data卷所作的任何改變都會寫入此快照。
- 當前使用的快照大小,我們的tecmintdata有10GB,而我們的快照大小是1GB,這就意味著我們的數據大概有650MB。所以,如果tecmintdatas中的文件增長到2GB,現在的51%中的內容將增加到超過所分配的快照的大小,當然,我們在創建快照時會出現問題。這就意味著我們需要擴展邏輯卷大小(快照邏輯卷)
- 給出快照組塊的大小。
現在,讓我們複製超過1GB的文件到tecmint_datas。讓我們看看會發生什麼。如果你那麼做了,你將會見到『Input/output error』這樣的錯誤信息,它告訴你快照超出空間大小了。
添加文件到快照
如果該邏輯卷滿了,它就會自動丟失新的數據,我們就不能再使用了,就算我們去擴展快照卷的大小也不行。最好的方法就是在創建快照時,創建一個和源一樣大小的快照卷。tecmint_datas的大小是10GB,如果我們創建一個10GB大小的快照,它就永遠都不會像上面那樣超載,因為它有足夠的空間來錄製你的邏輯卷的快照。
步驟2: 在LVM中擴展快照
如果我們需要在超過容量前擴展快照卷的大小,我們可以使用以下命令來完成此項任務。
# lvextend -L +1G /dev/vg_tecmint_extra/tecmint_data_snap
現在,那裡有總計2GB大小的快照空間。
擴展LVM快照
接下來,使用以下命令來驗證新的大小和寫時複製表。
# lvdisplay /dev/vg_tecmint_extra/tecmint_data_snap
要知道快照卷的大小使用%。
# lvs
檢查快照大小
然而,如果你的快照大小和源卷一樣,我們就沒有必要擔心這些問題了。
步驟3: 恢復快照或合併
要恢復快照,我們首先需要卸載文件系統。
# unmount /mnt/tecmint_datas/
卸載文件系統
只想檢查掛載點是否卸載成功,可以使用下面的命令。
# df -h
檢查文件系統掛載點
這裡,我們的掛載已經被卸載,所以我們可以繼續恢復快照。要恢復快照,可以使用lvconvert命令。
# lvconvert --merge /dev/vg_tecmint_extra/tecmint_data_snap
恢復LVM快照
在合併完成後,快照卷將被自動移除。現在我們可以使用df命令來查看分區大小。
# df -Th
在快照卷自動移除後,你可以用下面的命令查看邏輯卷大小。
# lvs
檢查邏輯卷大小
重要:要自動擴展快照,我們可以通過修改配置文件來進行。對於手動擴展,我們可以使用lvextend。
使用你喜歡的編輯器打開lvm配置文件。
# vim /etc/lvm/lvm.conf
搜索單詞autoextend。默認情況下,該值和下圖中的類似。
LVM配置
修改此處的100為75,這樣自動擴展的起始點就是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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive