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

LVM磁盘扩容实战:如何在已有逻辑卷上直接扩展存储空间

1. LVM磁盘扩容的核心场景与原理想象一下你的手机存储空间快满了但你又不想删除珍贵的照片和视频。这时候最直接的办法就是买一张更大容量的存储卡把数据迁移过去。但在服务器环境中这种换卡操作往往意味着停机、数据迁移等一系列复杂流程。LVMLogical Volume Manager的魅力就在于它能像橡皮筋一样动态调整存储空间让你无需迁移数据就能直接扩容。我最近刚处理过一台云服务器的磁盘告急问题。客户原先的150G数据盘已经使用了92%通过LVM在线扩容到500G后整个过程只用了不到5分钟业务完全无感知。这种丝滑的体验正是LVM的核心价值所在。LVM的三层结构就像俄罗斯套娃PVPhysical Volume相当于原材料可以是整块磁盘如/dev/vdb或磁盘分区VGVolume Group像是一个大池子把多个PV的资源整合在一起LVLogical Volume最终使用的虚拟磁盘可以动态调整大小当底层物理磁盘扩容后比如云平台控制台把磁盘从150G扩展到500G我们需要通过pvresize命令让LVM识别新的空间再用lvextend将空间分配给逻辑卷。这就好比给游泳池加注了水还要调整泳道浮标的位置来扩大游泳区域。2. 整盘扩容实战操作指南先通过lsblk -f确认当前磁盘结构。假设我们面对的是最简单的场景整块磁盘/dev/vdb直接作为PV使用没有分区表这层中间商赚差价。关键检查点# 确认磁盘容量变化 fdisk -l /dev/vdb # 查看LVM结构 lsblk -f pvdisplay vgdisplay lvdisplay最近遇到一个典型案例某客户在阿里云扩容磁盘后发现df -h显示容量没变。检查发现他们漏掉了pvresize这关键一步直接执行lvextend当然会失败。这就好比往油箱里加了油但油表指针没校准。完整扩容流程# 步骤1让PV识别新空间 pvresize /dev/vdb # 步骤2检查VG获得的额外空间 vgs # 步骤3将全部空闲空间分配给LV lvextend -l 100%FREE /dev/mapper/vg--data-lv--data # 步骤4调整文件系统大小 resize2fs /dev/mapper/vg--data-lv--data易错点警示忘记加“号lvextend -l 100%FREE会导致命令被解析为”设置LV大小为剩余空间量而非增加剩余空间量不同文件系统调整命令不同xfs要用xfs_growfs而不是resize2fs在线扩容要求内核支持老旧系统可能需要umount后操作3. 分区场景下的扩容方案当磁盘采用分区方案时比如/dev/vdb1情况会复杂些。上周帮一个客户处理这种情况他们误操作导致分区表损坏差点丢失数据。这里特别强调操作顺序的重要性。分区扩容标准流程使用fdisk删除原分区分区号保持不变新建更大空间的分区起始扇区必须与原来一致设置分区类型为8eLinux LVM执行partprobe让内核重读分区表# 交互式分区调整 fdisk /dev/vdb # 在fdisk中依次执行d(删除)-n(新建)-t(改类型)-w(保存) # 非交互式方案危险建议先备份分区表 echo -e d\nn\np\n1\n\n\nt\n8e\nw | fdisk /dev/vdb分区扩容后的特殊处理# 让PV识别分区扩容 pvresize /dev/vdb1 # 如果新增了第二个分区如vdb2 pvcreate /dev/vdb2 vgextend vg-data /dev/vdb2 # 最后再扩展LV lvextend -l 100%FREE /dev/mapper/vg--data-lv--data曾见过有人直接对分区后的磁盘执行pvresize /dev/vdb这完全无效。就像试图通过摇晃整栋楼来整理某个房间的物品必须精确操作到具体分区才行。4. 疑难问题排查手册案例1扩容后系统不识别新空间症状执行完所有步骤后df -h显示容量未变 解决方案# 检查内核是否识别新分区表 cat /proc/partitions # 强制重读分区表 partprobe -s blockdev --rereadpt /dev/vdb # 对于已挂载的文件系统 umount /data mount /data案例2lvextend报错not larger than existing size根本原因忘记在百分比前加“号导致命令试图将LV设置为剩余空间值而非增加空间 快速修复# 正确写法是加号 lvextend -l 100%FREE /dev/mapper/vg--data-lv--data案例3XFS文件系统扩容失败特殊处理# 先暂停相关服务 systemctl stop mysqld # XFS需要不同的扩容命令 xfs_growfs /data # 验证结果 xfs_info /data有次深夜处理扩容事故发现resize2fs卡住不动。后来发现是磁盘有坏道用fsck修复后才完成扩容。建议重要操作前先用smartctl检查磁盘健康状态。5. 生产环境最佳实践在金融行业的生产系统中我总结出这些黄金准则扩容前双确认云平台控制台确认磁盘扩容完成在系统中用fdisk -l复核物理磁盘大小操作时间窗选择避免业务高峰时段提前告知相关团队回退方案准备拍摄系统快照备份分区表sfdisk -d /dev/vdb vdb-partition-backup.txt监控验证操作后立即检查dmesg | grep -i error观察系统监控15分钟对于超大规模磁盘超过10TB建议分阶段扩容。曾有个客户一次性扩容20TB导致LVM元数据操作超时后来改为每次扩容2TB才成功。最后分享个实用技巧在脚本中加入容量验证步骤自动检查各环节的空间变化#!/bin/bash EXPECTED_SIZE500G FINAL_SIZE$(df -h /data | awk NR2{print $2}) [ $FINAL_SIZE $EXPECTED_SIZE ] || echo 扩容异常实际大小$FINAL_SIZE

相关文章:

LVM磁盘扩容实战:如何在已有逻辑卷上直接扩展存储空间

1. LVM磁盘扩容的核心场景与原理 想象一下你的手机存储空间快满了,但你又不想删除珍贵的照片和视频。这时候最直接的办法就是买一张更大容量的存储卡,把数据迁移过去。但在服务器环境中,这种"换卡"操作往往意味着停机、数据迁移等一…...

c语言的优点介绍

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。接下来,小编为您介绍了c语言的优点介绍,感谢您的阅读! 1、简洁紧…...

从Excel到HTML:RAG分块策略在结构化数据召回中的革新实践

1. 为什么Excel数据需要特殊的分块策略? 在企业级应用中,Excel表格是最常见的数据载体之一。财务报告、销售数据、库存清单等结构化信息通常都以.xlsx格式存储和流转。但当我们尝试将这些数据接入RAG(检索增强生成)系统时&#xf…...

2026年04月10日热门Model/github项目

总结 2026年4月10日 新上榜的 6个GitHub项目 和 5个HuggingFace模型,反映了当前AI领域的几个核心趋势: 关键趋势: AI编程工具链成熟化:从代码生成(Superpowers、Archon)到知识管理(Claudian&…...

一季度收官,AI在交通运输行业表现如何?

公路、铁路、航空、水运,共同构成了这个国家的交通网络。货物经由港口中转,旅客借助铁路和航空流动,城市依靠道路交通维持日常运转。这张网络每天承载着数以亿计的出行和运输需求,任何一个环节的效率与安全,都会影响整…...

YOLO-Master 与 YOLO 开始吭

AI Agent 时代的沙箱需求 从 Copilot 到 Agent:执行能力的质变 在生成式 AI 的早期阶段,应用主要以“Copilot”形式存在,AI 仅作为辅助生成建议。然而,随着 AutoGPT、BabyAGI 以及 OpenAI Code Interpreter(现为 Advan…...

从原理到实践:详解双目散斑结构光的生成与优化

1. 散斑结构光的基础原理 当你用手电筒照射粗糙墙面时,会看到无数闪烁的光点,这就是自然界中最常见的散斑现象。在三维视觉领域,我们通过精心设计的伪随机散斑图案(Pseudorandom Speckle Pattern),将这种物…...

大模型之Linux服务器部署大模型筛

一、各自优势和对比 这是检索出来的数据,据说是根据第三方评测与企业数据,三款产品在代码生成质量上各有侧重: 产品 语言优势 场景亮点 核心差异 百度 Comate C核心代码质量第一;Python首生成率达92.3% SQL生成准确率提升35%&…...

【Python】CairoSVG实战:从SVG到多格式转换的完整指南

1. 为什么选择CairoSVG进行SVG转换 如果你经常需要处理矢量图形,肯定遇到过这样的场景:设计部门给你发来SVG文件,但你的应用场景需要PNG格式;或者需要把SVG图标批量导出为PDF文档。这时候CairoSVG就是你的瑞士军刀。 我在实际项目…...

AI原生软件技术选型到底怎么选?:一张动态决策树图谱,覆盖LLM接入、向量基建、Agent编排与合规审计4大生死关

第一章:AI原生软件技术选型的底层逻辑与决策范式 2026奇点智能技术大会(https://ml-summit.org) AI原生软件并非传统应用叠加模型API的简单拼接,而是以模型为一等公民、数据流为骨架、推理生命周期为驱动内核的全新构造范式。其技术选型本质是权衡“表达…...

MinIO初始化报错`Invalid endPoint`全解析:从URL规范到调试技巧

1. 为什么你的MinIO客户端总是报Invalid endPoint错误? 最近在帮团队排查MinIO集成问题时,发现超过60%的初始化错误都源于endPoint配置不当。很多开发者习惯性复制浏览器地址栏的URL直接粘贴到代码里,结果运行时却收到冰冷的Invalid endPoint…...

MySQL锁机制:从全局锁到行级锁的深度解读挚

如果有多个供应商,你也可以使用 [[CC-Switch]] 来可视化管理这些API key,以及claude code 的skills。 # 多平台安装指令 curl -fsSL https://claude.ai/install.sh | bash ## Claude Code 配置 GLM Coding Plan curl -O "https://cdn.bigmodel.cn/i…...

GME多模态向量-Qwen2-VL-2B多场景落地:已支持12类垂直领域图文Schema定制扩展

GME多模态向量-Qwen2-VL-2B多场景落地:已支持12类垂直领域图文Schema定制扩展 你是不是经常遇到这样的问题?想找一张图,却只能用文字描述,结果搜出来的图片总是不对劲;或者有一张图片,想找和它内容相关的文…...

告别网络依赖!手把手教你本地部署Element UI v2.15.13离线文档(附Nginx/VSCode两种方法)

告别网络依赖!手把手教你本地部署Element UI v2.15.13离线文档(附Nginx/VSCode两种方法) 作为一名长期在咖啡厅、地铁等弱网环境下工作的前端开发者,我深刻体会到离线文档的重要性。Element UI作为Vue.js生态中最受欢迎的UI框架之…...

Linux内核中的KVM虚拟化详解

Linux内核中的KVM虚拟化详解 引言 KVM(Kernel-based Virtual Machine)是Linux内核中的虚拟化模块,它允许Linux内核作为 hypervisor 运行虚拟机。KVM将Linux内核转变为一个功能完整的虚拟化平台,支持硬件辅助虚拟化。本文将深入探讨…...

Linux内核中的RCU机制详解

Linux内核中的RCU机制详解 引言 RCU(Read-Copy-Update)是Linux内核中一种高效的读写同步机制,特别适合读多写少的场景。它允许多个读者同时访问数据,写者通过复制和更新的方式来修改数据,避免了传统锁机制带来的性能开…...

PyTorch 2.8镜像中的模型安全与鲁棒性测试:对抗样本生成

PyTorch 2.8镜像中的模型安全与鲁棒性测试:对抗样本生成 1. 为什么我们需要关注模型安全性 想象一下,你开发了一个用于医疗影像诊断的AI系统,准确率高达99%。但在实际部署后,有人通过微小的图像改动就让系统做出完全错误的判断。…...

数字孪生与工业大脑:SOP+VisuCAD 的协同中枢

数字孪生是物理实体的数字化镜像,通过实时数据同步、动态仿真与虚拟映射,实现物理世界与数字世界的双向映射与闭环优化。工业大脑是工业智能的决策中枢,整合数据、模型、知识与算力,完成全局分析、智能决策与协同调度。在 JBoltAI…...

JBoltAI框架4.2发布!八大核心升级重塑AI开发全场景

深耕AI开发领域,聚焦开发者实际需求,JBoltAI框架持续迭代优化。今日,我们正式宣布JBoltAI框架升级至V4.2版本,带来9大核心功能升级,覆盖语音交互、文件处理、文档生成、知识库优化等全场景,进一步降低AI应用…...

使用Alpine配置WSL ssh门户攘

1. 哑铃图是什么? 哑铃图(Dumbbell Plot),有时也称为DNA图或杠铃图,是一种用于比较两个相关数据点的可视化图表。 它源于人们对更有效数据比较方式的持续探索。 在传统的时间序列比较中,我们通常使用两条折…...

分享 种 .NET 桌面应用程序自动更新解决方案檀

一、Actor 模型:不是并发技巧,而是领域单元 Actor 模型的本质是: Actor 是独立运行的实体 Actor 之间只通过消息交互 Actor 内部状态不可被外部直接访问 Actor 自行决定如何处理收到的消息 Actor 模型真正解决的是: 如何在不共享状…...

我用 AI 辅助开发了一系列小工具():文件提取工具挖

从0构建WAV文件:读懂计算机文件的本质 虽然接触计算机有一段时间了,但是我的视野一直局限于一个较小的范围之内,往往只能看到于算法竞赛相关的内容,计算机各种文件在我看来十分复杂,认为构建他们并能达到目的是一件困难…...

5分钟快速上手:抖音批量下载神器完整使用指南

5分钟快速上手:抖音批量下载神器完整使用指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音…...

代码之外周刊(第期):当技术让一切趋同,我们还剩什么?衬

1. 前言 本文详细介绍如何使用 kylin v10 iso 文件构建出 docker image,docker 版本为 20.10.7。 2. 构建 yum 离线源 2.1. 挂载 ISO 文件 mount Kylin-Server-V10-GFB-Release-030-ARM64.iso /media 2.2. 添加离线 repo 文件 在/etc/yum.repos.d/下创建kylin…...

从一次真实的头像上传功能审计说起:我是如何发现并修复那个差点被利用的‘安全’校验逻辑的

从一次真实的头像上传功能审计说起:我是如何发现并修复那个差点被利用的‘安全’校验逻辑的 那天下午,我正在为一个企业级SaaS平台开发用户头像上传功能。这个功能看似简单——用户上传图片,后端校验后存储。但当我深入代码审计时&#xff0c…...

LLM 算法岗 | 八股问答()· 多模态与主流模型架构瞪

7.1 初识三维模型 7.1.1 三维模型的数据载体 随着计算机图形技术的发展,我们或多或少都会见过或者听说过三维模型。笔者始终记得小时候第一次在电视上看到三维动画《变形金刚:超能勇士》的震撼感受;而现在我们已经可以在手机上玩三维游戏《王…...

别再被P0127吓到了!手把手教你读懂汽车仪表盘上的DTC故障码(附ISO15031-6标准解读)

汽车故障码解密指南:从P0127到U0105的实战解读 当仪表盘突然亮起黄色发动机灯,伴随着一串像是外星密码的字母数字组合时,大多数车主的第一反应都是心头一紧。上周我的老伙计张伟就遇到了这种情况——他的SUV在高速公路上突然显示"P0172&…...

zq—算法基础:时空复杂度()咸

一、什么是setuptools? setuptools 是一个用于创建、分发和安装 Python 包的核心库。 它可以帮助你: 定义 Python 包的元数据(如名称、版本、作者等)。 声明包的依赖项,确保你的包能够正确运行。 构建源代码分发包&…...

HFSS新手避坑指南:用FR-4板材搞定双频Wi-Fi单极子天线(含S11优化技巧)

HFSS新手避坑指南:用FR-4板材搞定双频Wi-Fi单极子天线(含S11优化技巧) 刚接触HFSS的天线设计新手,往往会在仿真过程中遇到各种"坑":明明按照教程操作,S11曲线却离奇偏移;谐振频率与预…...

面试官总爱问的LRU缓存,我用Java手写了一个(附完整代码和避坑点)

面试官最爱问的LRU缓存:从原理到Java实战的深度解析 为什么LRU缓存是面试中的常青树? 在技术面试中,设计一个高效的缓存系统几乎是必考题,而LRU(Least Recently Used)算法则是这类问题中最经典的考察点。…...