https://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_042_lvm.html
rpm -q lvm2 # 查看lvm2是否安装了
yum -y install lvm2 # 没有安装的话使用yum安装
1、格式化硬盘
fdisk /dev/vdb
mkfs.ext4 /dev/vdb
2、创建vg
vgcreate vg-01 /dev/vdb
3、创建lv
lvcreate -L 100G -n lv-01 vg-01 从vg-01里创建一个lv名为lv-01的100G分区
4、格式化
mkfs.ext4 /dev/vg-01/lv-01 -N 5242880
5、挂载
/dev/vg-01/lv-01 /磁盘名/vg名/lv名
mkdir /mysql-data
mount /dev/vg-01/lv-01 /mysql-data/
5、查看结果
df -h
6、扩展lvm
lvextend -L +15G /dev/vg_test-01/lv-20g 原基础上扩大15G
注:我们这里是有vg是有空间的,没有的话就需要创建pv,扩大vg在做
上面命令已经扩大15g了,但需要增长下文件系统的,让文件系统和lv大小匹配下,才能真正的扩大磁盘
resize2fs /dev/mapper/vg_test--01-lv--20g
然后再用df -h就可以看到空间一致了
7、将挂载信息写入/etc/fstab
/dev/vg-01/lv-01 /mysql/data ext4 defaults 0 0
扩容VG
1、查看当前vg大小
vgdisplay -s 或vgs
上面显示有个名为 centos的VG组,但已经没有多少空间了
2、给新的硬盘建分区
fdisk /dev/sdb
mkfs.ext4 /dev/sdb
3、扩容vg,将盘/dev/sdb加入名为centos的VG组
vgextend centos /dev/sdb
再次查看VG 已经扩容完成
4、从centos VG组新建名为minio-data的lv
lvcreate -L 1.5G -n minio-data centos
mkfs.ext4 /dev/centos/minio-data
5、挂载
mount /dev/centos/minio-data /minio-data
6、设置开机自动挂载
/dev/centos/minio-data /minio-data/ ext4 defaults 0 0
7、扩容lv
lvextend -L +1.5G /dev/centos/minio-data
resize2fs /dev/centos/minio-data
df -h 查看结果,已经扩容成功了
缩容
缩容不能动态缩容,只能先卸载目录再缩容
1、卸载文件系统
umount /minio-data/
2、检查磁盘
e2fsck -f /dev/centos/minio-data
3、调整文件系统到2g
resize2fs /dev/centos/minio-data 2G
4、缩容
lvreduce -L 1.5G /dev/centos/minio-data
5、查看结果
lvs |grep minio-data
6、重新挂载
mount /dev/centos/minio-data /minio-data/
注意:在进行扩容,缩容之后进行原有文件完整性校验的时候最好通过比较文件的md5值是否保持不变以判断操作对原有文件没有造成影响
排错
1、新建pv报错
使用pvscan可以看到有个unknown device,且属于centos的VG组
解决方法:从VG中去除PV unknown device
vgreduce --removemissing centos
此时查看结果已正常再次新建pv也正常了