一、LVM簡介
LVM是邏輯盤卷管理(LogicalVolumeManager)的簡稱,它是Linux環境下對磁盤分區進行管理的一種機制,LVM是建立在硬盤和 分區之上的一個邏輯層,來提高磁盤分區管理的靈活性。通過LVM系統管理員可以輕松管理磁盤分區,如:將若干個磁盤分區連接為一個整塊的卷組 (volumegroup),形成一個存儲池。
管理員可以在卷組上隨意創建邏輯卷組(logicalvolumes),並進一步在邏輯卷組上創建文件系統。
LVM是 Logical Volume Manager(邏輯卷管理)的簡寫
PV:是物理的磁盤分區
VG:LVM中的物理的磁盤分區,也就是PV,必須加入VG,可以將VG理解為一個倉庫統一管理了幾個大的硬盤,形成了一個統一虛擬的存儲資源池。
LV:也就是從VG中划分的邏輯分區
抽象模型如下:

二、操作實戰
1.1、通過在虛擬機的CentOS7上創建LVM ,使用LV,擴容LV,縮減LV實戰來了解LVM及熟悉對LVM的操作。
准備工作准備虛擬機,操作系統為CentOS7,初始40G的硬盤
1.2、初始狀態共40G的系統盤
1.3、安裝lvm需要用到的命令
yum install -y lvm2
1.4、在虛擬機中添加一塊磁盤,(PS:剛添加的硬盤不會顯示,兩種方法:1.reboot 重啟服務器 2.在不關機的情況下掃描SCSI磁盤。)
echo "- - -" > /sys/class/scsi_host/host0/scan echo "- - -" > /sys/class/scsi_host/host1/scan echo "- - -" > /sys/class/scsi_host/host2/scan
1.5、創建分區
1.6更新內核分區表
partprobe /dev/sdb1
1.7、創建PV、VG
pvcreate /dev/sdb1 vgcreate vg_app /dev/sdb1 ##vg_app為vg的名稱
1.8、創建LV
lvcreate -L 5G -n lv_app vg_app ###-L后面是創建的大小,-n后面是lv的名稱,最后是上面vg的名稱
1.9、格式化
mkfs.xfs /dev/mapper/vg_app-lv_app
1.10、掛載到需要掛載的目錄
mount /dev/mapper/vg_app-lv_app /app
1.11、寫入開機啟動的fstab文件中
vim /etc/fstab
三、關於如何擴容
1.1、示例:擴容2G
lvextend -L +2G /dev/mapper/vg_app-lv_app
1.2、查看pv信息
lvdisplay
1.3、識別磁盤空間
xfs_growfs /dev/mapper/vg_app-lv_app df -h
1.4、擴容對應vg中所有的空間
lvextend -l +100%FREE /dev/mapper/vg_app-lv_app
四、新加的一塊磁盤如何加入已有的LVM中
1.1、新加一塊磁盤
1.2、不重啟識別新加的磁盤
echo "- - -" > /sys/class/scsi_host/host0/scan echo "- - -" > /sys/class/scsi_host/host1/scan echo "- - -" > /sys/class/scsi_host/host2/scan
1.3、分區
1.4、更新內核分區表
partprobe /dev/sdc1
1.5、將新增的磁盤加入pv然后加入對應的vg
pvcreate /dev/sdc1 vgextend vg_app /dev/sdc1
1.6、擴容
lvextend -L +20G /dev/mapper/vg_app-lv_app ####加20G到vg_app-lv_app中
1.7、識別磁盤空間
xfs_growfs /dev/mapper/vg_app-lv_app df -h
1.8、如果需要將新加的剩余所有空間都加進指定vg中,可以按如下操作
lvextend -l +100%FREE /dev/mapper/vg_app-lv_app xfs_growfs /dev/mapper/vg_app-lv_app