LVM還具備有「快照卷」功能,該功能類似於虛擬機器器軟體的還原時間點功能。例如,可以對某一個邏輯卷裝置做一次快照,如果日後發現資料被改錯了,就可以利用之前做好的快照捲進行覆蓋還原。LVM的快照卷功能有兩個特點:
快照卷的容量必須等同於邏輯卷的容量;
快照卷僅一次有效,一旦執行還原操作後則會被立即自動刪除。
往邏輯卷裝置新建一個檔案。然後為邏輯卷建立快照卷。再在邏輯卷目錄生成一個垃圾檔案。後先解除安裝邏輯卷與掛載點關聯,再嘗試快照還原操作(lvconvert --merge),再重新掛載,檢視邏輯卷目錄是否回到建立快照前的狀態。
echo "Welcome to Linuxprobe.com" > /linuxprobe/readme.txt #往邏輯卷裝置寫入一個檔案
ls -l /linuxprobe #檢視邏輯卷目錄的內容
lvcreate -L 120M -s -n SSS /dev/storage/vo #為邏輯卷vo生成一個快照卷,命名為SSS,指定切割大小為120M,
lvdisplay #檢視邏輯卷詳細資訊,可以看到SSS是vo的快照卷(snapshot)
dd if=/dev/zero of=/linuxprobe/files count=1 bs=100M #在邏輯卷vo的目錄下建立一個100M的檔案
lvdisplay #檢視邏輯卷詳細資訊,可以發現vo的空間佔用量上升
umount /linuxprobe #解除安裝邏輯卷與掛載點關聯
lvconvert --merge /dev/storage/SSS #對邏輯卷vo進行快照還原操作 mount -a #重新掛載
ls /linuxprobe/ #檢視邏輯卷目錄,可以發現建立快照後再建立的100M檔案不見了,邏輯卷恢復成設定快照前的狀態
先建立一個檔案使他有內容,查詢內容並加入快照並使用lvdistory命令查詢
[root@lizhiqiang /]# echo "dasdsad" > /zhuxx/zx
[root@lizhiqiang /]# cd /zhuxx
[root@lizhiqiang zhuxx]# cat zx
dasdsad
[root@lizhiqiang zhuxx]# lvcreate -L 200M -s -n SSS /dev/zhuxing/zhu
Logical volume "SSS" created
[root@lizhiqiang zhuxx]# lvdisplay
--- Logical volume ---
在使用dd命令模擬記憶體,使他佔有46%的空間,再使用lvconvert 命令使快照還原,並查詢之前創造的檔案,試驗成功!
lvcreate -L 150 -s -n zhuxi /dev/zhuxing/zhu
恢復快照 lvconvert --merge /dev/zhuxing/zhuxi
[root@lizhiqiang zhuxx]# dd if=/dev/zero of=/zhuxx/dd count=1 bs=100M
1+0 records in
1+0 records out
104857600 bytes (105 MB) copied, 2.73658 s, 38.3 MB/s
[root@lizhiqiang zhuxx]# lvdisplay
--- Logical volume ---
LV Path /dev/zhuxing/zhu
LV Name zhu
VG Name zhuxing
LV UUID xY84bO-xpFi-9zhw-8iDK-Yjbm-7fer-L8Bete
LV Write Access read/write
LV Creation host, time lizhiqiang, 2020-10-21 07:14:35 -0400
LV snapshot status source of
SSS [active]
LV Status available
# open 1
LV Size 200.00 MiB
Current LE 50
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
--- Logical volume ---
LV Path /dev/zhuxing/SSS
LV Name SSS
VG Name zhuxing
LV UUID Mu5O01-RYev-TX61-ceUW-30f5-Eezh-NEj9fC
LV Write Access read/write
LV Creation host, time lizhiqiang, 2020-10-22 07:04:56 -0400
LV snapshot status active destination for zhu
LV Status available
# open 0
LV Size 200.00 MiB
Current LE 50
COW-table size 200.00 MiB
COW-table LE 50
Allocated to snapshot 46.69%
[root@lizhiqiang zhuxx]# cd /
[root@lizhiqiang /]# umount /zhuxx
[root@lizhiqiang /]# lvconvert --merge /dev/zhuxing/SSS
Merging of volume SSS started.
zhu: Merged: 55.8%
zhu: Merged: 100.0%
Merge of snapshot into logical volume zhu has finished.
Logical volume "SSS" successfully removed
[root@lizhiqiang /]# cd /zhuxx
[root@lizhiqiang zhuxx]# ls
[root@lizhiqiang zhuxx]# cd /
[root@lizhiqiang /]# mount -a
[root@lizhiqiang /]# cd /zhuxx
[root@lizhiqiang zhuxx]# ls
lost+found zx
[root@lizhiqiang zhuxx]# cat zx
dasdsad
當生產環境中想要重新部署LVM或者不再需要使用LVM時,則需要執行LVM的刪除操作。為此,需要提前備份好重要的資料資訊,然後依次刪除邏輯卷、卷組、物理卷裝置,這個順序不可顛倒。
umount /linuxprobe #解除安裝
vim /etc/fstab
/dev/storage/vo /linuxprobe ext4 defaults 0 0 #刪除掛載資訊
lvremove /dev/storage/vo #刪除邏輯卷,要按y確認
vgremove storage #刪除卷組
pvremove /dev/sdb /dev/sdc #刪除物理卷
刪除邏輯卷
實驗操作:
[root@lizhiqiang /]# umount /zhuxx
[root@lizhiqiang /]# lvremove /dev/zhuxing/zhu
Do you really want to remove active logical volume zhu? [y/n]: y
Logical volume "zhu" successfully removed
[root@lizhiqiang /]# vgremove zhuxing
Volume group "zhuxing" successfully removed
[root@lizhiqiang /]# pvremove /dev/sdc /dev/sdd
Labels on physical volume "/dev/sdc" successfully wiped
Labels on physical volume "/dev/sdd" successfully wiped