LVM
一、簡介
LVM是邏輯盤卷管理(Logical Volume Manager)的簡稱,它是Linux環境下對磁盤分區進行管理的一種機制,LVM是建立在硬盤和分區之上的一個邏輯層,來提高磁盤分區管理的靈活性。
二、原理
LVM通過將底層的物理硬盤抽象的封裝起來,然后以邏輯卷的方式呈現給上層應用。在傳統的磁盤管理機制中,我們的上層應用是直接訪問文件系統,從而對底層的物理硬盤進行讀取,而在LVM中,其通過對底層的硬盤進行封裝,當我們對底層的物理硬盤進行操作時,其不再是針對于分區進行操作,而是通過一個叫做邏輯卷的東西來對其進行底層的磁盤管理操作。比如說我增加一個物理硬盤,這個時候上層的服務是感覺不到的,因為呈現給上層服務的是以邏輯卷的方式。
三、特點
LVM最大的特點就是可以對磁盤進行動態管理。因為邏輯卷的大小是可以動態調整的,而且不會丟失現有的數據。如果我們新增加了硬盤,其也不會改變現有上層的邏輯卷。作為一個動態磁盤管理機制,邏輯卷技術大大提高了磁盤管理的靈活性。
四、相關管理工具命令
pv管理工具:
pvs:簡要pv顯示信息
pvdisplay:顯示pv的詳細信息
pvcreate /dev/DEVICE:創建pv
vg管理工具:
vgs:簡要vg顯示信息
vgdisplay:顯示vg的詳細信息
vgcreate [-s #[mMgGtT]] VolumeGroupNAME PhysicalDevicePath[PhysicalDevicePath…]:創建VG
vgextend VolumeGroupNAME PhysicalDevicePath[PhysicalDevicePath…]:擴展VG
vgreduce VolumeGroupNAME PhysicalDevicePath[PhysicalDevicePath…]:縮減VG
注意:對VG做減法時,先做pvmove:將需要移除的pv上的pe先移到同一卷組中其他pv上
vgremove :移除VG
lv管理工具:
lvs:簡要LV顯示信息
lvdisplay:顯示LV的詳細信息
lvcreate -L #[mMgGtT] -n NAME VolumeGroup:創建LV
lvremove /dev/VG_NAME/LV_NAME:移除LV
擴展邏輯卷:
lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
-L #:擴展到#大??;
-L +#:擴展了#大?。?br />
resize2fs /dev/VG_NAME/LV_NAME:重新定義文件系統的大小
縮減邏輯卷:
umount /dev/VG_NAME/LV_NAME:卸載文件系統
e2fsck -f /dev/VG_NAME/LV_NAME :文件系統的強制檢測和修復
resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]:縮減邏輯邊界
lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME:縮減LV大小
mount
快照:snapshot
lvcreate -L #[mMgGtT] -p r -s -n snapshot_lv_name original_lv_name
五、實驗
實驗目的:熟悉LV創建,擴展和縮減的流程及相關命令。試驗中我們用/dev/md5、/dev/sdf1、/dev/sdg 來完成LVM實驗。
步驟:1、創建PV:pvcreate /dev/md5 /dev/sdf1 /dev/sdg(NOTE:此實驗中的/dev/md5在上一個實驗中被創建且掛載,需要先卸載才能進行PV的創建否則會報錯)
2、分別用pvs和pvdisplay來查看剛剛創建的PV信息
3、創建VG:vgcreate vg0 /dev/md5 /dev/sdf1 /dev/sdg
4、用vgdisplay來查看剛剛創建的VG信息
主要信息說明:VG Name VG的名稱
VG Size VG的總大小
PE Size PE的大小,默認為4MB
Total PE PE的總數量,5114 x 4MB = 19.98GB
Free PE / Size 剩余空間大小
5、創建大小為5G的LV:lvcreate -L 5G -n lv0 vg0
6、用lvdisplay來查看剛剛創建的LV信息
主要信息說明:LV PATH LV的路徑,全名
LV NamE LV的名稱
VG NAME 所屬的VG
LV SIZE LV的總大小
7、創建LV后再使用命令查看VG情況,此時VFree的大小減少了5G分給了剛剛創建的LV
8、對剛剛創建的lv0格式化:mkfs.ext4 /dev/vg0/lv0
9、在/下創建/testlv目錄,并將格式化后的lv0掛載上去
10、將lv0信息寫入配置文件/etc/fstab
11、至此,lv0的創建過程結束,下面對創建好的lv0進行擴容,要求擴容到10G
# lvextend -L10G /dev/vg0/lv0
# resize2fs /dev/vg0/lv0
12、查看磁盤信息,發現已經擴容到10G
13、下面對lv0進行縮減,要求縮減到2G,注意:對lv進行縮減時需要離線操作,否則容易出現問題
首先,我們需要卸載lv0:umount /dev/vg0/lv0
然后,強制檢查文件系統,確認沒有壞塊:e2fsck -f /dev/vg0/lv0
接著,縮小文件系統大小到2G:resize2fs /dev/vg0/lv0 2G
最后,縮減lv大小到2G并掛載:# lvreduce -L 2G /dev/vg0/lv0
# mount /dev/vg0/lv0 /testlv/
14、lv0縮減成功
原創文章,作者:Net18-天津-康康,如若轉載,請注明出處:http://www.www58058.com/14724