LVM简介
LVM (logical volume manager)逻辑卷管理的简写,可以动态增加或减小逻辑卷的大小。
术语介绍
- 物理存储介质(Physical Storage Media)
通常指硬盘 - 物理卷 (Physical Volume,PV)
是LVM基本的分配单元,1个PV可以包含1个或多个物理磁盘分区分,1个PV只能属于1个VG。 - 卷组 (Volume Group,VG)
VG由1个或多个PV组成,可以在同一个VG上创建多个LV。卷组就像一个资源池,其大小也可以动态增加和减小,创建VG后可以指定PE大小。 - 逻辑卷 (Logical Volume,LV)
LV建立在VG之上,LV不能跨VG创建,1个LV只能从1个VG中创建,LV类似于磁盘分区可以被格式化来使用。 - 物理块 (Physical Extent,PE)
每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。 - 逻辑块 (Logical Extent,LE)
逻辑卷LV也被划分为可被寻址的基本单位,称为LE。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
LVM基础命令
PV命令
- 创建pv:
pvcreate PhysicalVolume [PhysicalVolume...] - 移除pv:
pvremove PhysicalVolume [PhysicalVolume...] - 查看PV:
pvs | pvdisplay
VG命令
- 创建VG:
vgcreate -s pe大小 VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...] - 扩展VG:
vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...] - 减小VG:
vgreduce VolumeGroupName[PhysicalVolumePath...] - 查看VG:
vgs | vgdisplay
LV命令
- 创建LV:
lvcreate -L 大小 -n VolumeGroupName [PhysicalVolumePath...] - 扩展LV:
lvextend -L [+]大小 LogicalVolume[Path] [ PhysicalVolumePath... ] - 减小LV:
lvreduce -L [-]大小 LogicalVolume[Path] - 删除LV:
lvremove LogicalVolume[Path] [LogicalVolume[Path]...] - 查看LV:
lvs | lvdisplay
LVM操作实例
创建步骤
- 创建磁盘分区并指定LVM磁盘类型:
fdisk /dev/sdb
n
t 8e
w
partprobe - 创建PV:
pvcreate /dev/sdb5 /dev/sdb6
- 创建VG:
vgcreate -s 16M vgdata1 /dev/sdb5
- 创建LV:
lvcreate -L 100M -n lvdata1 /dev/sdb5
- 格式化LV:
mkfs.ext4 /dev/vgdata1/lvdata1
mkfs.xfs /dev/vgdata1/lvdata1/ - 挂载LV:
mount /dev/vgdata1/lvdata1/ /lvm_home/
扩展步骤
- 扩展VG:
VG的扩展其实就是将空闲的磁盘分区添加到现在VG中,如果现有VG容量充足可忽略此步。
vgextend vgdata1 /dev/sdb6
- 扩展LV:
LV的扩展是将现有VG的空闲容量增加到LV中
lvextend -L +100M /dev/vgdata1/lvdata1
- 更新LV大小:
ext文件系统:resize2fs /dev/vgdata1/lvdata1
xfs文件系统:xfs_growfs /dev/vgdata1/lvdata1 - 查看结果:
df -Th
减小步骤
- 减小VG:
减小VG就是将物理磁盘分从VG中移除,所有数据会丢失。
vgreduce vgdata1 /dev/sdb6
- 减小LV:
- 卸载挂载点:
umount /lvm_home
- 缩减逻辑边界:
resize2fs 缩减到的大小 /dev/vgdata1/lvdata1
- 缩减物理边界:
lvreduce -L 缩减到的大小 /dev/vgdata1/lvdata1
- 检测文件系统:
e2fsck -f /dev/vgdata1/lvdata1
- 挂载设备并查看大小:
mount /dev/vgdata1/lvdata1 /lvm_home/
df -Th
- 卸载挂载点:
注意:减小有风险,且XFS文件系统不支持缩减