LVM的縮減、擴展以及快照的使用

LVM:邏輯卷的縮減、擴展、快照使用

一、什麼是LVM?
LVM是邏輯盤卷管理(LogicalVolumeManager)的簡稱,它是Linux環境下對磁盤分區進行管理的一種機制。
LVM是建立在硬盤和分區之上的一個邏輯層,來提高磁盤分區管理的靈活性。
LVM可分爲三層。底層爲物理卷(Physical Volume),簡寫爲PV;中間層爲卷組(Volume Group),簡寫爲VG;頂層爲邏輯卷(Logical Volume),簡寫爲LV。
上層的大小取決於下層的大小。

二、如何創建LVM系統?(我用的磁盤是/dev/sdb)
1、首先創建LVM分區/dev/sdb6、/dev/sdb7、/dev/sdb8,大小分別爲7G、3G、2G,類型均爲8e。
可以使用fdisk /dev/sdb命令創建分區,如下
LVM的縮減、擴展以及快照的使用
完成之後使用partprobe通知內核分區,可查看/proc/partitions內核是否讀取
#partprobe
#cat /proc/partitions
LVM的縮減、擴展以及快照的使用

2、創建物理卷PV
#pvcreate /dev/sdb{7,6}
#pvs //查看當前系統PV
LVM的縮減、擴展以及快照的使用
從中可以看到pv有/dev/sdb6、/dev/sdb7,其大小分別爲5G、3G。

3、創建卷組GV
#vgcreate myvg /dev/sdb6 /dev/sdb7
LVM的縮減、擴展以及快照的使用
#vgs //查看當前系統VG
LVM的縮減、擴展以及快照的使用
可以看到創建的VG爲myvg,大小基本等於(5+3)G
#vgdisplay myvg //顯示指定vg的詳細信息
LVM的縮減、擴展以及快照的使用

4、創建邏輯卷LV
#lvcreate -n testlv -L 65M myvg
LVM的縮減、擴展以及快照的使用
此處創建了65M大小的邏輯卷,但是創建之後大小爲68M,是因爲在創建VG時其PE大小默認爲4M,創建的邏輯卷大小必須時PE的整數倍。創建VG時可用選項-s #(#爲數字)指定PE大小
#lvs //查看當前系統lv
LVM的縮減、擴展以及快照的使用
#lvdisplay /dev/myvg/testlv //顯示指定lv的詳細信息。
注:指定lv在vg目錄下的lv,不是直接指定lv名字
LVM的縮減、擴展以及快照的使用

#mke2fs -j /dev/myvg/testlv //格式化
LVM的縮減、擴展以及快照的使用

#mount /dev/myvg/testlv /mnt //掛載到/mnt下
LVM的縮減、擴展以及快照的使用

#mount
LVM的縮減、擴展以及快照的使用
使用mount可以看到掛載/mnt的是/dev/mapper/mylv-testlv。

#ls -l /dev/mapper
LVM的縮減、擴展以及快照的使用
這裏面的纔是真正的設備文件

三、在不影響原數據的前提下擴展、縮減邏輯卷和使用快照卷
邏輯邊界時緊靠在物理邊界大小上創建的,可以理解爲邏輯邊界微小於物理邊界。
所以,存取數據取決於物理邊界和邏輯邊界

擴展邏輯卷LVM
先擴展物理邊界,再擴展邏輯(文件系統)邊界
注:邏輯邊界一定要小於物理邊界,否則文件系統可能會崩潰

lvextend:擴展物理邊界
    -L +# /PATH/TO/LV :給lv增加#大小的物理邊界
    -L # /PATH/TO/LV :給lv增加到#大小的物理邊界

resize2fs(ext2/3):擴展文件系統邊界
    resize2fs /PATH/TO/LV #G :增加文件系統邊界到#G大小
    -p 擴展文件系統到最大值
例子:在2G大小的名爲testlv的LV擴展到5G大小(還是在先前的/dev/myvg上)
#lvcreate -n testlv -L 2G myvg

#lvs
LVM的縮減、擴展以及快照的使用
之後格式化再掛載到/mnt上
#cp /etc/inittab /mnt // 拷貝一份文件到掛載目錄下作爲原數據
#cat /mnt/inittab //查看此目錄下的內容
LVM的縮減、擴展以及快照的使用
#df -lh /查看邏輯卷testlv爲2G
LVM的縮減、擴展以及快照的使用
#vgs //查看vg中free是否能夠擴展到5G大小
LVM的縮減、擴展以及快照的使用
圖中可以看到還剩餘約6G,增加3G,足夠

#lvextend -L 5G /dev/myvg/testlv //擴展物理邊界
#resize2fs -p /dev/myvg/testlv //擴展邏輯邊界
LVM的縮減、擴展以及快照的使用
#df -lh //查看邏輯卷testlv爲5G(有誤差)
LVM的縮減、擴展以及快照的使用
#cat /mnt/inittab //查看原數據是否改變
LVM的縮減、擴展以及快照的使用
從圖中看出數據未曾改變

縮減邏輯卷LVM
先縮減邏輯邊界,再縮減物理邊界
注:1、不能在線縮減,得先卸載
2、確保縮減後的空間大小依然能存儲原有所有的數據
3、再縮減前應該先檢查文件,以確保文件處於移植狀態

df -lh :查看所用空間大小    
umount :卸載
e2fsck -f /PATH/TO/LV :強行檢查文件系統

resize2fs(ext2/3):縮減文件系統邊界
resize2fs /PATH/TO/LV #G :縮減文件系統邊界到#G大小

lvreduce -L -# /PATH/TO/LV   //縮減#G大小的物理邊界
lvreduce -L # /PATH/TO/LV    //縮減物理邊界到#G大小

重新掛載

例子:接着將上述中5G大小縮減爲3G大小。
#df -lh
#umount /mnt
#e2fsck -f /dev/myvg/testlv
LVM的縮減、擴展以及快照的使用
#resize2fs /dev/myvg/testlv 3G //縮減邏輯邊界
LVM的縮減、擴展以及快照的使用
#lvreduce -L 3G /dev/myvg/testlv //縮減物理邊界
LVM的縮減、擴展以及快照的使用
#mount /dev/myvg/testlv /mnt //重新掛載
#cat /mnt/inittab //查看原數據
LVM的縮減、擴展以及快照的使用
#df -lh //查看大小
LVM的縮減、擴展以及快照的使用
大小變爲了3G,且原數據並未受到影響

快照卷
1、生命週期爲整個數據時長:在這段時長內,數據的增長量不能超過快照卷的大小(超過的話快照卷就會掛掉)
2、快照卷應該是隻讀的
3、快照卷應該跟原卷在同一卷組內

命令:lvcreate -s
-p r|w 指定權限 只讀|讀寫

lvcreate -s -L # -n SLVNAME -p r /PATH/TO/LV
掛載: mount /PATH/TO/SLV /指定目錄
備份: 壓縮快照中的文件 tar

移除:
卸載 umount /指定目錄
lvremove /PATH/TO/SLV
還原數據:tar 解壓

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章