LVM原理
PE:physical Extend
PV:physical volume
VG:volume group
LV:logical volume
1.将物理硬盘切分为多个可扩展的物理小单位PE(physical Extend)。
白话理解:使用pvcreate 格式化硬盘(可以为多个或单个)为多个PE,即切分硬盘为很多个4M的小块。
2.使用卷组PV(physical valume)把PE管理起来。
白话理解:把上面的PE都加入PV卷组管理起来。
3.将PV加入逻辑卷VG(volume group)
白话理解:从PV卷组总申请使用多少个PE
4.将VG格式化为指定文件系统
白话理解:通过1、2、3步,将很多硬件切分后重组,然后再重组的逻辑卷中申请部分容量空间作为一个逻辑卷(类似一个盘),把这个逻辑卷格式化为对应的文件系统(例如ext4、xfs等)
5.将格式化后的逻辑卷挂在到系统盘上。
白话理解:将第4步生成的虚拟硬盘挂在到一个目录上(例如/data)
然后就可以正常使用了
LVM的好处
1.可以动态增加空间,不需要停止使用该虚拟硬盘的应用程序
2.可用空间足够情况下,可以动态删除硬盘(比如硬盘坏了)。但是需要停止使用改虚拟硬盘的应用程序
LVM的缺点
一个硬盘坏了,会影响其它硬盘的使用
LVM的基本操作
一。新建一个LVM
1.将物理硬盘初始化为物理卷(PV)
例如,将物理硬盘/dev/sdb、/dev/sdc初始化为PV。 --- 注意:此操作会格式化/dev/sdb、/dev/sdc硬盘
pvcreate /dev/sdb /dev/sdc
可能遇到的问题
问题:Device /dev/nvme3n1 excluded by a filter
解决办法:
# parted /dev/nvme3n1
GNU Parted 3.2
Using /dev/nvme3n1
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel
New disk label type? msdos
Warning: The existing disk label on /dev/nvme3n1 will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? yes
(parted) quit
Information: You may need to update /etc/fstab.
2. 创建卷组,将PV加入卷组VG中
将/dev/sdb、/dev/sdc加入到vgname的卷组中(名字可以自定义,英文),会创建一个名为vgname的卷组
vgcreate vgname /dev/sdb /dev/sdc
3.基于卷组创建一个逻辑卷LV
从上面的vgname卷组中申请空间,并加入LV中。
例如,下面新建lvname的LV逻辑卷,并从vgname中申请3G大小
lvcreate -n lvname -L 3G vgname
4.为创建好的逻辑卷创建文件系统
例如,将上面的逻辑卷lvname格式化为ext4格式文件系统
mkfs.ext4 /dev/vgname/lvname
5.将格式化好的逻辑卷挂在到系统目录使用
将文件系统挂载到/mnt/lvm_sdb_sdc目录下
mount /dev/vgname/lvname /mnt/lvm_sdb_sdc
二。查看LVM
1.查看PV
# 详细信息
pvdisplay
pvs
2.查看卷组VG
vgdisplay
vgs
3.查看逻辑卷信息
lvdisplay
lvs
三。删除LVM
1.删除LV
lvremove /dev/vgname/lvname
2.删除VG
vgremove vgname
3.删除物理卷
例如删除/dev/sdb
pvremove /dev/sdb
四。给一个逻辑卷LV扩容
1.保证VG有足够的空闲空间
vgdisplay
2.扩充逻辑卷
lvextend -L +2G /dev/vgname/lvname
3.查看扩充后的LV大小
lvdisplay
4.更新文件系统
resize2fs /dev/vgname/lvname
5.查看更新后的文件系统
df -h
五。拉伸一个卷组VG
1.将要添加到VG的硬盘格式化为PV
pvcreate /dev/sdd
2.将新的PV添加到指定的卷组VG中
vgextend vgname /dev/sdd
3.查看扩充后的VG大小
vgdisplay
六。缩小一个逻辑卷
1.卸载已经挂在的逻辑卷
umount /dev/vgname/lvname
2.缩小文件系统
(提示需要检查文件系统,进行检查就好)
resize2fs /dev/vgname/lvname 1G
3.缩小LV
lvreduce -L -1G /dev/vgname/lvname
4.查看缩小后的LV
lvdisplay
5.挂在缩小后的lv卷
mount /dev/vgname/lvname /mnt/dev_sdb_sdc
七。删除卷组
1.将一个PV从指定卷组中删除
vgreduce vgname /dev/sdd
2.查看缩小后的卷组大小
vgdisplay
学习内容来自bilibili:Linux LVM分区与应用与详解_哔哩哔哩_bilibili