当前位置: 首页 > news >正文

Linux中LVM逻辑卷扩容

在Linux系统中对根目录所在的LVM逻辑卷进行扩容,需要依次完成 物理卷扩容卷组扩容逻辑卷扩容文件系统扩容 四个步骤。以下是详细操作流程:


一、确认当前磁盘和LVM状态

# 1. 查看磁盘空间使用情况
df -h /# 2. 查看块设备及LVM层级关系
lsblk# 3. 查看LVM详细信息(物理卷PV、卷组VG、逻辑卷LV)
pvdisplay
vgdisplay
lvdisplay

二、扩容物理卷(PV)

场景1:已有未分配的磁盘空间(例如虚拟机已扩容磁盘但未分区)
# 1. 创建新分区(假设新增空间在/dev/sda)
fdisk /dev/sda
# 进入交互模式后按序操作:
#   n → 新建分区
#   p → 主分区
#   选择默认分区号(如已存在分区则需选新编号)
#   起始扇区默认(直接回车)
#   结束扇区默认(直接回车)
#   t → 修改分区类型
#   输入分区号 → 输入类型代码8e(LVM类型)
#   w → 保存退出# 2. 让内核重新读取分区表
partprobe /dev/sda# 3. 将新分区初始化为物理卷
pvcreate /dev/sdaX  # X为新创建的分区号
场景2:已有物理卷需扩展(例如云平台直接扩容原有磁盘)
# 1. 调整物理卷大小(假设原PV为/dev/sda2)
pvresize /dev/sda2

三、扩展卷组(VG)

# 将新物理卷加入现有卷组(假设卷组名为vg_root)
vgextend vg_root /dev/sdaX# 或使用已有物理卷的扩容空间
vgextend vg_root /dev/sda2# 验证卷组可用空间
vgdisplay vg_root | grep "Free  PE"

四、扩展逻辑卷(LV)

# 1. 扩展逻辑卷(假设逻辑卷名为lv_root)
# 使用全部可用空间:
lvextend -l +100%FREE /dev/vg_root/lv_root# 或指定具体大小(例如+20G):
lvextend -L +20G /dev/vg_root/lv_root# 2. 验证逻辑卷大小
lvdisplay /dev/vg_root/lv_root | grep "Size"

五、扩展文件系统

ext4文件系统
# 在线扩容(无需卸载)
resize2fs /dev/vg_root/lv_root
xfs文件系统
# 要求内核≥3.6且xfsprogs≥3.1.0
xfs_growfs /

六、验证最终结果

df -h /  # 确认根目录容量已增加
lsblk    # 查看整体层次结构

完整操作示例(基于ext4文件系统)

# 假设原根目录LV路径为/dev/vg_root/lv_root# 查看初始状态
df -h /# 创建新分区并初始化为PV
fdisk /dev/sda          # 创建新分区/dev/sda3
partprobe /dev/sda
pvcreate /dev/sda3# 扩展卷组
vgextend vg_root /dev/sda3# 扩展逻辑卷
lvextend -l +100%FREE /dev/vg_root/lv_root# 扩展文件系统
resize2fs /dev/vg_root/lv_root# 验证结果
df -h /

注意事项

  1. 数据备份:操作前务必对重要数据进行备份
  2. 快照保护:虚拟机环境下建议先创建快照
  3. 文件系统类型:确认文件系统类型(df -T /
  4. 在线扩容:ext4/xfs支持在线扩容,无需卸载文件系统
  5. 云平台操作:AWS/Aliyun等需先扩容云盘,再执行本流程
  6. 分区对齐:云环境建议使用parted工具确保4K对齐

故障排查

  • 空间未生效:检查是否遗漏resize2fs/xfs_growfs
  • VG无空闲空间:确认vgextend是否成功
  • 分区未识别:执行partprobe或重启系统
  • LVM缓存问题:使用vgscan --cache刷新缓存

通过以上步骤,可安全完成根目录LVM磁盘扩容。

http://www.dtcms.com/a/274626.html

相关文章:

  • 第七章 愿景05 莹姐画流程图
  • 企业采购成本越来越贵?根源在哪,数据怎么分析?
  • Linux操作系统从入门到实战:怎么查看,删除,更新本地的软件镜像源
  • Python 类型注解实战:`Optional` 与安全数据处理的艺术
  • 递归与树形结构在前端的应用
  • 林吉特危机下的技术革命:马来西亚金融系统升维作战手册
  • 【深度探究系列(5)】:前端开发打怪升级指南:从踩坑到封神的解决方案手册
  • U-Net网络学习笔记(1)
  • ARM单片机OTA解析(二)
  • cesium添加原生MVT矢量瓦片方案
  • 在 Spring Boot 中使用 WebMvcConfigurer
  • 【SpringBoot】配置文件学习
  • linux kernel struct regmap_config结构详解
  • 力扣242.有效的字母异位词
  • MySQL5.7版本出现同步或插入中文出现乱码或???显示问题处理
  • vector之动态二维数组的底层
  • django queryset 去重
  • JavaSE -- StreamAPI 详细介绍(上篇)
  • Java开发新宠!飞算JavaAI深度体验评测
  • 获取华为开源3D引擎 (OpenHarmony),把引擎嵌入VUE中
  • string模拟实现
  • 信号肽预测工具PrediSi本地化
  • 《打破预设的编码逻辑:Ruby元编程的动态方法艺术》
  • 内存踩踏全解析:原理 + 实战案例 + 项目排查技巧
  • 2025十大免费销售管理软件推荐
  • 基于物联网的智能体重秤设计与实现
  • 测试第一定律
  • 如何通过公网IP访问部署在kubernetes中的服务?
  • AVL平衡二叉树
  • 为什么必须掌握Java异常处理机制?——从代码健壮性到面试必考题全解析