LVM
Logical Volume Manager
😄 Written by Zak Zhu
参考
- 马哥linux视频
- RHCE培训(rh133-unit13)
LVM
LVM依赖于内核Device Mapper模块
LV设备文件: /dev/mapper/VG_NAME-LV_NAME
- A layer of abstraction that allows easy manipulation of volumes
- Supports resizing of filesystems
- Allows filesystems to span multiple physical devices
- Block devices are designated as Physical Volumes
- One or more Physical Volumes are used to created a Volume Group
- Volume Groups are defined with Physical Extents of a fixed size
- Logical Volumes are composed of Physical Extents from Volume Group
- Filesystems may be created on Logical Volumes
yum install lvm2 -y
# 安装lvm2
PV相关命令
-
pvcreate
pvcreate /dev/PHYSICAL_PARTION
-
pvs & pvdisplay
pvs # 简要显示 pvdisplay # 详细显示
-
pvremove
pvremove /dev/PHYSICAL_PATIONS
-
pvmove
pvmove SRC_PV DEST_PV
-
pvscan
pvscan # scan all disks for physical volumes
VG相关命令
PE默认大小: 4M
-
vgcreate
vgcreate [-s PE_SIZE[bBkKmMgG]] VG_NAME PV_NAME
-
vgs & vgdisplay
vgs # 简要显示 vgdisplay # 详细显示
-
vgchange
vgchange -s PE_SIZE[bBkKmMgG] # 修改PE的大小
-
vgremove
vgremove VG_NAME
-
vgextend
vgextend VG_NAME PV_NAME
-
vgreduce
务必先考虑
pvmove
迁移数据, 再vgreducevgreduce VG_NAME PV_NAME
-
vgscan
vgscan # scan all disks for volume groups and rebuild caches
LV相关命令
-
lvcreate
lvcreate -L LV_SIZE[mMgGtT] -n LV_NAME VG_NAME
-
lvs & lvdisplay
-
lvremove
lvremove /dev/mapper/VG_NAME-LV_NAME
-
lvscan
lvscan # scan all disks for Logical Volumes
扩展LV
-
查看所属的VG是否有足够的剩余空间
vgs
-
*卸载要扩展的LV
umount /dev/mapper/vg0-lv_data
-
*强制检查要扩展的LV的文件系统
e2fsck -f /dev/mapper/vg0-lv_data
-
扩展LV的大小
lvextend -L +1G /dev/mapper/vg0-lv_data
-
扩展文件系统的范围
resize2fs /dev/mapper/vg0-lv_data
-
*挂载已扩展的LV
mount -a
缩减LV
危险警告: 尽量不要做缩减LV !!
-
一定要先卸载LV
umount /dev/mapper/vg0-lv_data
-
强制检查要缩减的LV的文件系统
e2fsck -f /dev/mapper/vg0-lv_data
-
缩减LV的文件系统的范围
resize2fs /dev/mapper/vg0-lv_data 1G
-
缩减LV的大小
强烈建议: 缩减后的LV大小要求略大于缩减后的文件系统大小 !!!
lvreduce -L 1.2G /dev/mapper/vg0-lv_data
-
挂载已缩减的LV
mount -a
LVM快照
- Snapshots are special Logical Volumes
- Snapshots are perfect for bacups where a temporary copy of an existing dataset is needed
- Snapshots only consume space where they are different from the original Logical Volume
使用快照
-
创建快照
lvcreate -L 200M -s -n snap_data /dev/mapper/vg0-lv_data
-
挂载快照
mount -o ro /dev/mapper/vg0-snap_data /mnt/snap_data
-
压缩备份
tar -Jpcv -f snap_data$(date +"%Y%m%d-%H%M").txz /mnt/snap_data/*
-
卸载删除
umount /dev/mapper/vg0-snap_data
lvremove /dev/mapper/vg0-snap_data