CentOS/RHEL LVM 磁盘扩展完整教程

📝 前言

在Linux系统管理中,磁盘空间不足是经常遇到的问题。特别是在生产环境中,当根分区空间告急时,我们需要通过添加新磁盘来扩展存储空间。本教程将详细介绍如何在CentOS/RHEL系统中使用LVM(Logical Volume Manager)来扩展现有的逻辑卷。

🎯 适用场景

  • 根分区磁盘空间不足(使用率超过80%)
  • 系统使用LVM管理磁盘
  • 需要在线扩展磁盘空间而不停机
  • 有新的物理磁盘可以添加到系统

📚 LVM 基础概念

LVM 三层架构

物理磁盘 → 物理卷(PV) → 卷组(VG) → 逻辑卷(LV) → 文件系统
  1. 物理卷(Physical Volume, PV):实际的物理磁盘或分区
  2. 卷组(Volume Group, VG):多个物理卷组成的存储池
  3. 逻辑卷(Logical Volume, LV):从卷组中分配的逻辑存储单元

LVM 的优势

  • 灵活性:可以动态调整分区大小
  • 扩展性:可以跨多个物理磁盘
  • 快照功能:支持创建快照备份
  • 在线操作:大多数操作可以在不停机的情况下进行

🔍 准备工作:识别可用磁盘

1. 查看系统磁盘状态

# 查看磁盘分区信息
lsblk -l# 查看磁盘使用情况
df -h# 查看磁盘详细信息
fdisk -l

命令说明:

  • lsblk -l:以列表形式显示所有块设备
    image-20250709180854614

  • df -h:显示文件系统磁盘使用情况,-h 参数以可读格式显示
    image-20250709180920952

  • fdisk -l:列出所有磁盘和分区的详细信息

    image-20250709180949783

2. 识别可扩展的磁盘

查看 lsblk 输出,寻找以下特征的磁盘:

  • 未挂载的磁盘:MOUNTPOINT 列为空
  • 未分区的磁盘:只显示磁盘本身,没有分区(如 sdc 但没有 sdc1)
  • 足够大的磁盘:SIZE 列显示的容量满足需求

3. 查看当前LVM状态

# 查看物理卷
pvs
pvdisplay# 查看卷组
vgs  
vgdisplay# 查看逻辑卷
lvs
lvdisplay

命令说明:

  • pvs/pvdisplay:显示物理卷信息,pvs 简洁格式,pvdisplay 详细格式
    image-20250709181130511

  • vgs/vgdisplay:显示卷组信息和可用空间
    image-20250709181114464

  • lvs/lvdisplay:显示逻辑卷信息和使用情况

    image-20250709181201116

🛠️ 磁盘扩展详细步骤

步骤1:确认文件系统类型

# 方法1:查看挂载信息
mount | grep " / "# 方法2:显示文件系统类型
df -T /# 方法3:显示块设备文件系统
lsblk -f

image-20250709181309453
为什么需要确认文件系统类型?

  • 不同文件系统使用不同的扩展命令
  • XFS 使用 xfs_growfs
  • EXT4 使用 resize2fs

步骤2:对新磁盘进行分区

# 使用 fdisk 对磁盘进行分区(假设新磁盘为 /dev/sdc)
fdisk /dev/sdc

在 fdisk 交互界面中的操作:

命令 (m 为帮助): n        # 创建新分区
分区类型: p              # 主分区
分区号: 1                # 分区号为1
起始扇区: 回车            # 使用默认值
结束扇区: 回车            # 使用整个磁盘
命令 (m 为帮助): t        # 修改分区类型
分区号: 1                # 选择分区1
分区类型: 8e             # LVM类型
命令 (m 为帮助): w        # 写入分区表并退出

步骤作用:

  • 创建分区表,让系统能够识别磁盘
  • 设置分区类型为 LVM (8e),便于后续操作
  • 建议使用整个磁盘作为一个分区

步骤3:创建物理卷

# 创建物理卷
pvcreate /dev/sdc1# 验证物理卷创建成功
pvs

image-20250709181418800
命令作用:

  • pvcreate:将分区初始化为LVM物理卷
  • 在分区上创建LVM元数据
  • 使分区能够被LVM管理

步骤4:扩展卷组

# 查看现有卷组名称
vgdisplay# 将新物理卷添加到卷组(假设卷组名为 centos_centos)
vgextend centos_centos /dev/sdc1# 验证卷组扩展成功
vgs

image-20250709181510867
命令作用:

  • vgextend:将新的物理卷添加到现有卷组
  • 增加卷组的总容量
  • 为后续逻辑卷扩展提供空间

步骤5:扩展逻辑卷

# 查看卷组可用空间
vgdisplay centos_centos# 方法1:使用所有可用空间扩展逻辑卷
lvextend -l +100%FREE /dev/mapper/centos_centos-root# 方法2:指定扩展大小(例如500G)
# lvextend -L +500G /dev/mapper/centos_centos-root# 验证逻辑卷扩展成功
lvs

image-20250709181643430
参数说明:

  • -l +100%FREE:使用卷组中所有可用空间
  • -L +500G:指定增加500G空间
  • -L 1T:指定总大小为1T

步骤6:扩展文件系统

# 对于 XFS 文件系统(CentOS 7/8 默认)
xfs_growfs /# 对于 EXT4 文件系统
# resize2fs /dev/mapper/centos_centos-root

image-20250709181707009
命令作用:

  • xfs_growfs:扩展XFS文件系统到逻辑卷的完整大小
  • resize2fs:扩展EXT4文件系统
  • 必须在逻辑卷扩展后执行,否则新空间无法使用

步骤7:验证扩展结果

# 查看磁盘使用情况
df -h# 查看LVM状态
lvs
vgs
pvs# 查看详细的挂载信息
mount | grep mapper

image-20250709181729736

📊 操作前后对比示例

扩展前:

[root@centos ~]# df -h
/dev/mapper/centos_centos-root  641G  601G   41G  94% /[root@centos ~]# vgs
VG            #PV #LV #SN Attr   VSize   VFree
centos_centos   2   2   0 wz--n- 648.99g    0

扩展后:

[root@centos ~]# df -h
/dev/mapper/centos_centos-root  1.2T  601G  541G  53% /[root@centos ~]# vgs
VG            #PV #LV #SN Attr   VSize VFree
centos_centos   3   2   0 wz--n- 1.12t    0

⚠️ 重要注意事项

1. 备份数据

# 创建重要数据备份
tar -czf /tmp/important_data_backup.tar.gz /path/to/important/data# 或使用 rsync 同步到其他服务器
rsync -avz /important/data/ user@backup-server:/backup/path/

2. 确认磁盘没有被使用

# 检查磁盘是否被挂载
mount | grep sdc# 检查磁盘是否有文件系统
blkid /dev/sdc# 确认磁盘不在fstab中
grep sdc /etc/fstab

🔧 故障排除

常见错误及解决方案

1. 分区表错误
错误:Device or resource busy
解决:umount /dev/sdc1 或重启系统
2. 物理卷创建失败
错误:Device /dev/sdc1 not found or ignored by filtering
解决:partprobe /dev/sdc  # 重新读取分区表
3. 文件系统扩展失败
错误:xfs_growfs: /dev/mapper/centos_centos-root is not a mounted XFS filesystem
解决:确认文件系统类型和挂载点正确

回滚操作(如果需要)

# 如果需要移除新添加的磁盘
vgreduce centos_centos /dev/sdc1
pvremove /dev/sdc1

📝 一键脚本示例

#!/bin/bash
# LVM 扩展自动化脚本DISK="/dev/sdc"
VG_NAME="centos_centos"
LV_PATH="/dev/mapper/centos_centos-root"echo "开始LVM磁盘扩展..."# 1. 分区
echo "正在对 $DISK 进行分区..."
(
echo n
echo p
echo 1
echo
echo
echo t
echo 8e
echo w
) | fdisk $DISK# 2. 创建物理卷
echo "创建物理卷..."
pvcreate ${DISK}1# 3. 扩展卷组
echo "扩展卷组..."
vgextend $VG_NAME ${DISK}1# 4. 扩展逻辑卷
echo "扩展逻辑卷..."
lvextend -l +100%FREE $LV_PATH# 5. 扩展文件系统
echo "扩展文件系统..."
xfs_growfs /echo "扩展完成!"
df -h /

🎉 总结

LVM磁盘扩展是Linux系统管理中的常见操作,掌握这项技能对系统管理员来说非常重要。通过本教程,你应该能够:

  1. 理解LVM架构:掌握PV、VG、LV的概念和关系
  2. 识别可用磁盘:使用各种命令查看和分析磁盘状态
  3. 执行扩展操作:按步骤完成完整的磁盘扩展过程
  4. 处理常见问题:识别和解决扩展过程中的常见错误

磁盘操作具有一定风险,建议在生产环境操作前先在测试环境中练习

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/914110.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/914110.shtml
英文地址,请注明出处:http://en.pswp.cn/news/914110.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LVGL应用和部署(用lua做测试)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】嵌入式产品做好了,下面就是测试和量产了。以按键屏幕的开发模式为例,如果仅仅是简单的功能测试,那还比较好解决&…

phpstudy搭建pikachu

一.启动mysql和nginx服务二.修改靶场文件参数点击管理打开根目录,将下载好的靶场源文件解压到www目录下三.找到此文件用记事本打开四.修改配置文件五.打开浏览器,输入127.0.0.1/pikachu六.按照步骤初始化心得体会:如果mysql启动又立刻停止,大…

【Linux】GDB/CGDB 调试器学习笔记

GDB/CGDB 调试器学习笔记🚀 前言 GDB 是 GNU 项目下功能强大的命令行调试器,适用于 C/C 等多种语言。CGDB 则是在 GDB 之上构建的轻量级 curses 界面,适合喜欢终端操作且习惯 vi 风格的人。一、GDB 入门篇 1. 编译时带调试信息 gcc -g -O0 -W…

链接代理后无法访问网络

路由方向的问题 cmd 输入 route print 查看路由多了一个不是你网络的路由 我的嘎嘎好用直接那都通 route add -p 0.0.0.0 mask 0.0.0.0 0.0.0.0 参考这个 固定ip if是代理链路的 链路口又敏感词这个文章不合规两次评论区问我

day37 早停策略和模型权重的保存

DAY 37 我今天的笔记是用cpu训练的,请自行修改为gpu训练 仍然是循序渐进,先复习之前的代码 import torch import torch.nn as nn import torch.optim as optim from sklearn.datasets import load_iris from sklearn.model_selection import train_test_…

网络爬虫分类全解析

网络爬虫作为数据获取的重要工具,其分类方式多样,不同类型的爬虫在技术实现、应用场景和功能特性上存在显著差异。深入理解这些分类,有助于开发者根据实际需求选择合适的爬虫方案。本文将从技术特性、应用场景和架构设计三个维度,系统介绍网络爬虫的主要分类。 一、按技术…

ECR仓库CloudFormation模板完整指南

概述 本文档详细介绍了一个通用的Amazon ECR(Elastic Container Registry)仓库CloudFormation模板,该模板支持多业务组、参数化配置,并包含完整的安全策略、生命周期管理和监控功能。 模板特性 核心功能 ✅ 支持4个业务组:app、ai、mall、frontend✅ 灵活的服务名手动输…

C++(STL源码刨析/List)

一 List 核心字段和接口1. 节点字段template<class T> struct __list_node {typedef void* void_pointer;void_pointer prev;void_pointer next;T data; }由于 链表 不是连续的内存块&#xff0c;所以对每一个申请到的内存块要进行统一组织&#xff0c;也就是封装成一个类…

苹果App上架流程:不用Mac也可以上架的方法

iOS App 的上架流程一直被认为是门槛最高、流程最繁琐的移动端工作之一。对很多使用 Windows 或 Linux 进行开发的跨平台团队来说&#xff0c;Mac 的缺位更放大了每一步的难度。 在我们近期为一款本地生活类 App 进行 iOS 上架时&#xff0c;团队成员几乎没有配备本地 Mac&…

【爬虫】- 爬虫原理及其入门

爬虫01 - 爬虫原理及其入门 文章目录爬虫01 - 爬虫原理及其入门一&#xff1a;爬虫原理1&#xff1a;爬虫的优势‌2&#xff1a;爬虫的核心库3&#xff1a;经典举例4&#xff1a;合规问题一&#xff1a;爬虫原理 学习爬虫之前前置知识需要了解这些&#xff1a; 我的HTTP介绍, 了…

G5打卡——Pix2Pix算法

&#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 Pix2Pix 是一种基于条件生成对抗网络&#xff08;cGANs&#xff09;的图像到图像翻译算法&#xff0c;由 Phillip Isola 等人在 2016 年提出。该算法的核心思想…

动力系统模拟与推导-AI云计算数值分析和代码验证

当系统是连续的&#xff0c;并且其状态变量不仅随时间变化&#xff0c;而且随空间维度变化时&#xff0c;需要使用偏微分方程&#xff08;PDEs&#xff09;来推导运动方程。偏微分方程提供了描述这些空间分布属性如何相互作用和演化的数学框架。 选择使用常微分方程&#xff08…

P4597 序列 sequence题解

P4597 序列 sequence 给定一个数列&#xff0c;每次操作可以使任意一个数1或-1&#xff0c;求小的操作次数&#xff0c;使得数列变成不降数列. 1.对于前面比当前位的数字大的数&#xff0c;设最大数为 xxx &#xff0c;当前的数为 yyy ,则对于 xxx 到 yyy 中间的任意数&#xf…

雨污管网智慧监测系统网络建设方案:基于SD-WAN混合架构的最佳实践

随着城市化的快速推进&#xff0c;雨污管网的管理与运行面临着日益复杂的挑战&#xff0c;例如内涝、污水溢流、非法排污等问题频发。为了更高效地管理分布广泛的监测点&#xff0c;保障系统运行稳定性&#xff0c;构建一套高效、低成本、易运维的网络架构至关重要。本文将分享…

世俱杯直播数据源通过反汇编获取到

在当今的互联网体育赛事直播中&#xff0c;许多平台为了保护其直播资源&#xff0c;会采用加密、混淆或动态加载等方式隐藏真实的视频流地址&#xff08;如 .m3u8 或 .flv&#xff09;。对于普通用户和开发者来说&#xff0c;直接通过网页源码或浏览器调试器难以快速定位这些关…

字节豆包又一个新功能,超级实用,4 种玩法,你肯定用得上!(建议收藏)

前段时间&#xff0c;分享了一个非常好用的视频总结工具——百度网盘和百度文库联合推出的「AI 笔记」。它能自动根据视频内容&#xff0c;生成图文视频总结、表格总结、思维导图等。关键是带时间戳&#xff0c;能直接跳转到视频的位置。但这个功能隐藏在百度网盘里&#xff0c…

AI进化论08:机器学习的崛起——数据和算法的“二人转”,AI“闷声发大财”

上回咱们聊了第二次AI寒冬&#xff0c;AI为了“活下去”&#xff0c;不得不“改头换面”&#xff0c;从“AI”变成了“机器学习”。结果你猜怎么着&#xff1f;这“机器学习”啊&#xff0c;还真就“闷声发大财”了&#xff01;它不再执着于模拟人类的“思维过程”&#xff0c;…

【MySQL】———— 索引

作者主页&#xff1a; 作者主页 本篇博客专栏&#xff1a;Linux 创作时间 &#xff1a;2025年7月11日 Mysql索引 索引介绍 索引是什么 根据官方对索引的介绍&#xff0c;索引是帮助MySQL高效的获取数据的数据结构&#xff0c;在我看来&#xff0c;索引就相当于一本书的目…

页面html,当鼠标点击图标,移开图标,颜色方块消失

html页面代码&#xff1a;<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>颜色选择器</title><style>body {font-family: "Microsoft YaHei", sans-serif;padding: 20px;}.c…

netdxf—— CAD c#二次开发之(netDxf 处理 DXF 文件)

1.创建新项目打开 VS2022&#xff0c;选择 "创建新项目"搜索 "控制台应用"&#xff0c;选择 ".NET 6.0 (C#)" 模板&#xff0c;点击 "下一步"项目名称&#xff1a;"DxfProcessor"&#xff0c;位置&#xff1a;自选&#xff…