LVM磁盘管理
定义
LVM(Logical Volume Manager,逻辑卷管理器)是硬盘设备资源管理技术。可以实现对硬盘分区的动态调整(可以理解为Windows系统硬盘的分区)。
核心
- PE(Physical Extent,物理区域):是LVM中最小的存储单位,PE的大小是4MB,一个VG是N个组成的。PE的数量等于VG的大小/PE的大小。
- PV(Physical Volume,物理卷):处于LVM最底层,指一个物理盘或分区,将物理磁盘创建成为PV(物理卷)。
- VG(Volume Group,卷组):多个PV(物理卷)组成的逻辑盘。卷组的大小是所有物理卷的大小之和。 VG(卷组)由PE(物理区域)组成。
- LV(Logical Volume,逻辑卷):可指VG(卷组)的一个分区,由VG(卷组)的大小组成。 文件系统创建在LV(逻辑卷)上。
动态调整大小
创建LV时(分配PE的多少给LV),当LV空间不够时,就可从VG中调整更多的PE分配给LV,然后扩容LV上的文件系统,实现在线动态调整文件系统大小。
部署逻辑卷
部署命令
功能/命令 | 物理卷 | 卷组 | 逻辑卷 |
扫描 | pvscan | vgscan | lvscan |
建立 | pvcreate | vgcreate | lvcreate |
显示 | pvdisplay | vgdisplay | lvdisplay |
删除 | pvremove | vgremove | lvremove |
扩展 | - | vgextend | lvextend |
缩小 | - | vgreduce | lvreduce |
添加逻辑卷
下面操作逻辑卷以虚拟机拥有三个硬盘(/nvme0n3、/nvme0n4、/nvme0n5)为例:
添加两块硬盘设备支持LVM技术
pvcreate /dev/nvme0n3 /dev/nvme0n4
将两块硬盘设备添加到storage卷组中,查看卷组状态
vgcreate storage /dev/nvme0n3 /dev/nvme0n4
vgdisplay
切割出一个约为150M的逻辑卷设备
切割有两种计量单位:
1.lvcreate -L 150M 生成一个大小为150MB的逻辑卷
2.lvcreate -l 37 生成一个大小为37×4的逻辑卷(每个基本单位大小默认为4MB)
lvcreate -n vo -L 150M storage
lvdisplay
格式化逻辑卷并挂载
Linux系统会将LVM的逻辑卷设备存放于/dev目录中,同时建立以卷组为名的目录,
其中保存了逻辑卷的设备文件(/dev/卷组名称/逻辑卷名称)。
mkfs.ext4 /dev/storage/vo //格式化为以ext4格式的文件系统
mkdir /Mysqldata //创建挂载目录以便挂载
mount /dev/storage/vo /Mysqldata
查看挂载状态,并写入配置文件,使开机自动永久生效
df -h 或 lsblk
vim /etc/fstab //文件末尾写入/dev/storage/vo /Mysqldata ext4 defaults 0 0
echo "/dev/storage/vo /Mysqldata ext4 defaults 0 0" >> /etc/fstab //或用echo命令写入文件
扩容逻辑卷
扩展前一定要卸载设备和挂载点的关联
增加新的物理卷到卷组
当卷组没有足够的空间分配时,可以为卷组增加物理卷来增加卷组空间。
umount /Mysqldata
pvcreate /dev/nvme0n5
vgextend storage /dev/nvme0n5
vgdisplay
将逻辑卷vo扩展至7G
lvextend -L 7G /dev/storage/vo
检查硬盘完整性,并重置硬盘容量
fsck -t ext4 /dev/storage/vo //检查硬盘完整性,各种文件系统的检查
e2fsck -f /dev/storage/vo //或用该行命令强制检查,此命令一般用于ext2,3,4的文件系统检查
resize2fs /dev/storage/vo //重置硬盘容量
重新挂载硬盘设备并查看挂载状态
mount -a
df -h //或lsblk
缩容逻辑卷
相较于扩容,其丢失数据风险更大。执行操作前务必提前备份数据且卸载文件系统。
Linux系统规定对逻辑卷进行缩容,需先检查文件系统的完整性。
检查文件系统完整性
umount /Mysqldata
e2fsck -f /dev/storage/vo
将逻辑卷vo的容量缩小到150MB
resize2fs /dev/storage/vo 150M
lvreduce -L 150M dev/storage/vo
重新挂载文件系统并查看系统状态
mount -a
df -h //或lsblk
删除逻辑卷
当需要重新部署LVM或不再使用LVM时,需执行LVM的删除操作。
备份好数据后,依此删除逻辑卷、卷组和物理卷设备,顺序不可颠倒。
卸载逻辑卷与目录的挂载关联,删除配置文件中永久生效的设备参数。
umount /Mysqldata
vim /etc/fstab
删除逻辑卷设备,输入y确认操作
lvremove /dev/storage/vo
删除卷组(只写卷组名称即可,不需要设备的绝对路径)
vgremove storage
删除物理卷设备
pvremove /dev/nvme0n3 /dev/nvme0n4 /dev/nvme0n5
总结
理解LVM技术的定义,重复部署逻辑卷,提高对代码记忆。