LVM逻辑卷
一、LVM
LVM逻辑卷管理,是一种将一个或者多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘分区加入其中,这样可以实现一种磁盘空间动态管理。
1. 基于分区创建lvm
硬盘的多个分区由lvm统一为卷组,可以弹性的调整卷组的大小,充分利用硬盘容量。
文件系统创建在逻辑卷上,逻辑卷可以根据需求改变大小(卷组总容量范围内)
2. 基于硬盘创建lvm
多块硬盘做成逻辑卷,将整个逻辑卷统一管理,可以动态对分区进行扩缩空间容量。
二、图解LVM
PP:物理分区,LVM建立在物理分区之上
PV:物理卷,处于LVM最底层,一般一个PV对应一个PP
PE:物理区域,PV中可以用于分配的最小存储单元,同一个VG中所有的PV的PE大小相同,如1M、2M
VG:卷组,建立在PV之上,可以划分多个PV
LE:逻辑扩展单元,组成LV的基本单元,一个LE对应一个PE
LV:逻辑卷,建立在VG之上,是一个可以动态改变大小的分区
三、LVM原理
LVM是通过交换PE的方式,达到弹性变更文件系统大小的
剔除原本LV中的PE,可以减少LV的容量
把其他PE添加到LV,可以扩容LV容量
一般默认PE大小为4M,LVM最多有65534个PE,所以LVM最大的VG是256G单位
PE 是LVM最小的存储单位,类似文件系统的block单位,因此PE大小直接影响VG容量。
LV如同/dev/sd[a-z]的分区概念
四、LVM优点
1. 文件系统可以跨多个磁盘,大小不会受到磁盘限制
2. 可在系统运行的情况下,动态扩展文件系统大小
3. 可以增加新的磁盘到LVM的存储池中
五、LVM配置流程
1.物理分区阶段:将物理磁盘fdisk 格式化修改system ID为LVM标记(8e)
2.PV阶段:通过pvcreate、pvdisplay将Linux分区处理为物理卷PV
3.VG阶段:通过vgcreate、vgdisplay将创建好的物理卷PV处理为卷组VG
4.LV阶段:通过lvcreate将卷组分成若干个逻辑卷LV
5.开始使用:通过mkfs对LV格式化,最后挂载LV使用
六、LVM管理相关命令
1. 物理卷(PV)管理命令
pvcreate命令:将普通分区加上pv属性—pvcreate /dev/sdb5
pvremove命令:删除分区的pv属性—pvremove /dev/sdb5
pvscan/pvdisplay命令:查看pv的信息
2.卷组(VG)管理相关命令
3.逻辑卷(LV)管理相关命令
lvcreate
-L 指定逻辑卷的大小,单位为“kKmMgGtT”字节
-l 指定逻辑卷的大小(LE个数)
-n 后面跟逻辑卷名
-s 创建快照
七、创建LVM案例
1. 选择两块硬盘,创建pv:pvcreate /dev/sdb /dev/sdc
2. 创建卷组:vgcreate storage /dev/sdb /dev/sdc
3. 查看pv和卷组信息:pvs、pvdisplay 、vgs、vgdisplay
4. 扩展、缩减卷组VG:
1)添加新的pv到卷组: pvcreate /dev/sdd
2) 扩展卷组容量:vgextend storage /dev/sdd
3)检查卷组容量
4)移除卷组,把新物理卷从卷组中删除:vgreduce storage /dev/sdd
5)把pv从vg中删除:pvremove /dev/sdd
5.创建逻辑卷:lvcreate -n lv1 -L 200M storage
6. 检查逻辑卷信息:lvs、lvdisplay
7. 对新生的逻辑卷格式化,然后挂载使用:mkfs.xfs /dev/storage/lv1;mkdir /data_lvm;mount /dev/storage/lv1 /data_lvm
8. 检查此时的分区使用量:df -hT |grep data_lvm
向lvm中写入数据:echo {1..100} > test_lvm.txt;touch /data/test{1..10}.txt
检查此时的分区使用量:df -hT | grep data_lvm
八、LVM逻辑卷扩容
实验中使用了2块硬盘,创建物理卷,然后创建出10G的卷组,且创建了200M的逻辑卷,若逻辑卷空间不够,可进行动态扩容,只要卷组中的资源足够,就可以一直扩容。
先查看物理卷,卷组,逻辑卷情况:pvs,vgs,lvs
1. 卸载挂载的设备: umount /data_lvm
2. 把逻辑卷扩容:lvextend -L 1G /dev/storage/lv1
3. 重新挂载:mount /dev/storage/lv1 /data_lvm
4. 调整xfs文件系统的容量大小,xfs只支持增大:xfs_growfs /dev/storage/lv1
若为ext3/ext4文件系统,则用resize2fs命令调整文件系统的容量大小
5. 检查分区大小: df -hT
调整xfs文件系统失败,必须先挂载,再调整。
解决办法:先挂载,在使用命令xfs_growfs /dev/storage/lv1
九、删除逻辑卷
删除逻辑卷,需要提前备份好重要的数据,然后依次删除逻辑卷,卷组,物理卷
1. 取消挂载,删除自动挂载配置 :umount /data_lvm
2. 删除逻辑卷:lvremove /dev/storage/lv1
3. 删除卷组:vgremove storage
4. 删除物理卷设备:pvs;pvremove /dev/sdb /dev/sdc
5. 检查lvm相关信息:lvs,vgs,pvs
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏