一、请看图
二、LVM——Logical Volume Manager
LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理
四个概念:
①PE(Physical Extend) 物理拓展
②PV(Physical Volume) 物理卷
③VG(Volume Group) 卷组
④LV(Logical Volume) 逻辑卷
工作原理:
(1)物理磁盘被格式化为PV,空间被划分为一个个的PE
(2)不同的PV加入到同一个VG中,不同PV的PE全部进入到了VG的PE池内
(3)LV基于PE创建,大小为PE的整数倍,组成LV的PE可能来自不同的物理磁盘
(4)LV现在就直接可以格式化后挂载使用了
(5)LV的扩充缩减实际上就是增加或减少组成该LV的PE数量,其过程不会丢失原始数据
三、操作
0、安装:
yum -y install lvm2 #没有安装的话使用yum安装
1、看:
pes(内容简短)、pedisplay(内容详细) #查看pe的大小(pes==pescan) pvs、pvdisplay #查看物理卷 vgs、vgdisplay、 #查看卷组 lvs、lvdisplay、 #查看逻辑卷 fdisk -L #查看磁盘分区
2、创建:
pvcreate -y 设备路径(/dev/vdb1) #创建物理卷 vgcreate 名字(vg01) pv路径(/dev/vdb1) #创建卷组 vgchange -a y vg名 #重启后会失效,因此需要重新激活,vg激活 lvcreate -n 名字(lv01) -L 文件大小(5G) vg名(vg01) #创建逻辑卷,绑定vg mkfs.ext4 lv完整路径(/dev/vg01/lv01) #格式化逻辑卷(mkfs.文件系统格式或-t 文件系统格式) mount lv完整路径(/dev/vg01/lv01) 挂载点(/mnt/test) #挂载
例子:
pvcreate -y /dev/vdb
lvcreate -n lv-data -L 20g centos mkfs.ext4 /dev/centos/lv-data mount /dev/centos/lv-data /data # 永久挂载 vi /etc/fstab /dev/centos/lv-data /data ext4 defaults 0 0
3、逻辑卷删除:
1.卸载:umount 2.删lv:lvremove lv完整路径 3.删vg:vgremove vg名 #要想移除vg,需要先关闭vg才能移除,这里先关闭:vgchange -a n vg名; 4.删PV:pvremove 设备完整路径 去硬盘
例子
lvremove /dev/vgdata/lv-gitlab
4、逻辑卷扩展:
1.扩展pv:相当于创建pv 2.扩展vg: vgextend vg名 新增pv路径 3.扩展lv: lvextend -L +扩展量(+1G) lv完整名(/dev/vg01/lv01) 4.刷新文件系统:xfs_growfs lv完整路径(/dev/vg01/lv01) 注意:灵活运用,看实际情况,注意顺序 (支持在线操作)
例子:
pvcreate -y /dev/sdb vgextend centos /dev/sdb # (centos 为vgs)
# 查看 需要扩容的根目录
df -h|grep root|awk '{print $1}' lvextend -L +14G /dev/mapper/centos-root # /dev/mapper/centos-root为lv
xfs_growfs /dev/mapper/centos-root
df -h
lsblk
fdisk -l
参考:https://www.cnblogs.com/herui1991/p/12052967.html
注意:
- ext系列可以使用resieze2fs去调整。其他的文件系统可以参考http://tldp.org/HOWTO/LVM-HOWTO/extendlv.html
- lvextentd 有个-r选项,自动去调整大小,匹配lv和文件系统大小的。
5、逻辑卷的缩小:
1.首先进行卸载 umount 检查文件系统:e2fsck -f lv完整路径 2.减少文件系统:resize2fs lv完整路径 减少到的大小 3.减少lv卷大小:lvreduce -L -减少量的大小 lv的完整路径 4.挂载使用
例子
umount /gitlab-data e2fsck -f /dev/vgdata/lv-gitlab resize2fs /dev/vgdata/lv-gitlab 1m lvreduce -L 1m /dev/vgdata/lv-gitlab
mount /dev/vgdata/lv-gitlab /gitlab-data
更多参考:https://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_042_lvm.html