LVM2(Logical Volume Manager 2)
原理:
將底層的物理硬盤抽象地封裝起來,以邏輯卷的方式呈現給上層應用,但對于文件系統而言,對LVM的操作與對硬盤分區的操作并無差別。
實現基礎:
Linux內核的Device mapper機制,將一個或多個底層塊設備組織成一個邏輯設備
基本元素:
-
PP(Physical Partition):物理分區,如硬盤的分區、RAID磁盤陣列
-
PV(Physical Volume):是對底層磁盤的抽象層,是組成VG的基本邏輯單元
-
PE(Physical Extends):物理擴展單元,是PV的基本劃分單元
-
VG(Volume Group):卷組,由PV組成,是LVM的存儲池
-
LE(Logical Extends):邏輯擴展單元,是LV的基本組成單元,與PE一一對應
-
LV(Logical Volume):邏輯卷,位于VG之上,文件系統之下
優缺點
優點:
-
可以實現對上層文件系統的動態擴展
-
突破磁盤限制,文件系統可以跨度多個物理磁盤
-
可以實現以鏡像方式冗余數據到多個物理磁盤
-
可以實現對卷組的導出和導入
缺點
-
當卷組中的物理磁盤損壞是,會引起整個卷組故障
-
從卷組中移除物理磁盤時必須使用reducevg,否則會出問題
-
僅支持有限個文件系統的縮減操作
-
因加入額外操作,存儲性能將受到影響
設備文件
/dev/mapper/VGNAME-LVNAME –> /dev/dm-# /dev/VGNAME/LVNAME –> /dev/dm-#
創建LVM邏輯卷:物理磁盤–>PV–>VG–>LV–>格式化
-
將物理磁盤創建為PV
[root@CentOS7 ~]# pvcreate /dev/sdb1 //--> pvcreate /dev/DEVICE 創建PV WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y Wiping ext4 signature on /dev/sdb1. Physical volume "/dev/sdb1" successfully created [root@CentOS7 ~]# pvs /dev/sdb1 //--> pvs 查看當前PV的信息 PV VG Fmt Attr PSize PFree /dev/sdb1 lvm2 --- 10.00g 10.00g [root@CentOS7 ~]# pvdisplay /dev/sdb1 //--> pvdisplay 查看PV的詳細信息 "/dev/sdb1" is a new physical volume of "10.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb1 VG Name PV Size 10.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID iqzxgD-TV0Z-j8qF-cBD9-qk2v-EQJc-KJc1X6
-
創建VG
[root@CentOS7 ~]# vgcreate test /dev/sdb1 //-->vgcreate [-s #[kKmMgGtTpPeE]] VG_NAME PhysicalDevicePath 創建VG Volume group "test" successfully created [root@CentOS7 ~]# vgs //-->vgs 查看VG的信息 VG #PV #LV #SN Attr VSize VFree centos 1 2 0 wz--n- 19.51g 40.00m test 1 0 0 wz--n- 10.00g 10.00g [root@CentOS7 ~]# vgdisplay test//-->查看VG的詳細信息 --- Volume group --- VG Name test System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 10.00 GiB PE Size 4.00 MiB Total PE 2559 Alloc PE / Size 0 / 0 Free PE / Size 2559 / 10.00 GiB VG UUID KBNCQ1-fT34-5VPp-FFUX-tz7I-NpPL-m2AZu1
-
創建LV
[root@CentOS7 ~]# lvcreate -L 2G -n hello test //-->lvcreate -L #[mMgGtT] -n NAME VolumeGroup 創建LV Logical volume "hello" created. [root@CentOS7 ~]# lvs /dev/test/hello //-->lvs 查看LV信息 LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert hello test -wi-a----- 2.00g [root@CentOS7 ~]# lvdisplay !$ //--> lvdisplay 查看LV詳細信息 lvdisplay /dev/test/hello --- Logical volume --- LV Path /dev/test/hello LV Name hello VG Name test LV UUID VyDN1C-4VUe-fQRd-iD18-bq35-pgR4-C1hY1X LV Write Access read/write LV Creation host, time CentOS7, 2016-08-18 21:04:44 +0800 LV Status available # open 0 LV Size 2.00 GiB Current LE 512 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:2
-
格式化邏輯卷:在使用邏輯卷之前要進行格式化,而后掛載使用。
刪除邏輯卷
邏輯卷的刪除有嚴格的順序:卸載邏輯卷–>刪除LV–>刪除VG–>刪除LV
umount MOUNTPOINT–>lvremove /dev/VGNAME/LVNAME–>vgremove /dev/VGNAME–>pvremove /dev/DEVICE
擴展邏輯卷:可以在線進行,無需卸載卷
-
擴展PV
# pvcreate /dev/DEVICE
-
擴展VG
# vgextend VG_NAME /dev/DEVICE
-
擴展LV
# lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
-
更新文件系統
# resize2fs /dev/VG_NAME/LV_NAME
縮減邏輯卷
-
卸載卷
# umount MOUNT_POINT
-
檢查文件系統
# e2fsck -f /dev/VG_NAME/LV_NAME
-
縮減文件系統
# resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
-
縮減LV
# lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
-
從VG中移除PV
# vgreduce VG_NAME /dev/DEVICE
-
移除PV
# pvremove /dev/DEVICE
創建快照:snapshot
lvcreate -L #[mMgGtT] -p r -s -n snapshot_lv_name original_lv_name 注意:創建快照時不能跨分區,相當于硬鏈接??煺张c原卷在同一個卷組中。
原創文章,作者:Jeason,如若轉載,請注明出處:http://www.www58058.com/37836