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

手把手教你:在VMware里给openEuler虚拟机扩容磁盘,不用重启!

零停机扩容实战:VMware环境下openEuler磁盘动态扩展指南

当openEuler虚拟机在VMware环境中运行时,磁盘空间不足却无法停机扩容的困境,是许多运维工程师的噩梦。本文将彻底解决这一痛点,通过LVM技术实现真正的在线扩容,避免业务中断风险。

1. 环境准备与风险评估

在开始扩容操作前,必须确保环境符合技术要求并做好充分备份。openEuler默认采用LVM2逻辑卷管理,这为在线扩容提供了基础支持。但不同版本的内核对在线分区调整的支持存在差异,建议先确认系统版本:

cat /etc/openEuler-release uname -r

关键检查项

  • VMware虚拟磁盘必须采用"厚置备延迟清零"或"厚置备立即清零"模式
  • 确保虚拟机快照功能可用,建议创建手动快照
  • 检查当前LVM结构是否健康:
vgdisplay -v lvdisplay

警告:任何磁盘操作都有数据丢失风险,生产环境务必先完成以下准备工作:

  1. 业务低峰期操作
  2. 完整虚拟机快照
  3. 重要数据额外备份
  4. 准备应急恢复方案

2. VMware虚拟磁盘扩容配置

VMware层面的磁盘扩容是整个过程的第一步,需要在虚拟机电源开启状态下完成:

  1. 在vSphere Client中右键目标虚拟机 → 编辑设置
  2. 选择需要扩容的硬盘 → 将容量调整为所需大小
  3. 不勾选"立即分配磁盘空间"选项
  4. 确认变更但不要重启虚拟机

扩容后验证虚拟机是否识别新空间:

lsblk | grep sda

典型输出应显示磁盘总容量已增加,但分区未变化:

sda 8:0 0 256G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 63G 0 part

3. 在线分区调整实战

传统分区工具需要重启才能生效,而通过以下方法可实现真正的在线调整:

3.1 动态删除重建分区

使用fdisk进行危险操作时,建议先保存当前分区表:

sfdisk -d /dev/sda > sda_backup.sfdisk

然后进入交互式分区操作:

fdisk /dev/sda

关键操作序列:

  1. 输入p打印当前分区表
  2. 输入d删除第二分区(通常为LVM分区)
  3. 输入n新建主分区
    • 保持相同的起始扇区(critical!)
    • 使用所有可用空间
  4. 输入t设置分区类型为8e(LVM)
  5. 输入w写入变更

重要:新建分区时必须保持与原分区相同的起始扇区,否则会导致数据丢失!

3.2 内核重读分区表

执行以下命令使内核重新加载分区表而不重启:

partprobe /dev/sda hdparm -z /dev/sda

验证分区大小是否更新:

lsblk /dev/sda

4. LVM卷组在线扩展

当物理分区扩容后,需要逐层向上扩展LVM结构:

4.1 物理卷(PV)扩容

pvresize /dev/sda2

验证PV空间:

pvdisplay /dev/sda2

应显示"Free PE"有可用空间:

Free PE / Size 49152 / 192.00 GiB

4.2 逻辑卷(LV)扩展策略

合理分配新增空间的三种策略:

策略类型适用场景命令示例
固定大小精确控制lvextend -L +50G /dev/mapper/openeuler-root
百分比均衡分配lvextend -l +70%FREE /dev/mapper/openeuler-root
剩余全部单一卷扩容lvextend -l +100%FREE /dev/mapper/openeuler-home

推荐组合方案:

lvextend -l +70%FREE /dev/mapper/openeuler-root lvextend -l +100%FREE /dev/mapper/openeuler-home

5. 文件系统实时扩展

不同文件系统的扩容命令有所区别:

ext4/xfs文件系统

resize2fs /dev/mapper/openeuler-root # 对于ext4 xfs_growfs /dev/mapper/openeuler-home # 对于xfs

Btrfs文件系统

btrfs filesystem resize max /

验证最终结果:

df -hT | grep mapper

应显示各挂载点已获得新增空间。

6. 高级技巧与故障处理

6.1 空间分配优化方案

对于多卷组环境,可采用更精细的分配策略:

# 计算可用的PE数量 FREE_PE=$(vgdisplay openeuler | grep "Free PE" | awk '{print $3}') # 为关键系统保留20%空间 lvextend -l +$((FREE_PE*80/100)) /dev/mapper/openeuler-root

6.2 常见问题排查

问题1pvresize报错"Device /dev/sda2 not found"

解决方案:

partx -u /dev/sda pvscan --cache

问题2:文件系统扩容失败

尝试强制检查:

e2fsck -f /dev/mapper/openeuler-root resize2fs /dev/mapper/openeuler-root

问题3:LVM元数据损坏

修复步骤:

vgcfgrestore openeuler vgchange -ay openeuler

7. 自动化扩容脚本

对于需要频繁操作的环境,可创建安全校验脚本:

#!/bin/bash # 安全扩容脚本示例 DISK="/dev/sda" PARTITION="${DISK}2" VG="openeuler" LV_ROOT="/dev/mapper/${VG}-root" LV_HOME="/dev/mapper/${VG}-home" # 预检查函数 pre_check() { [ $(id -u) -eq 0 ] || { echo "必须使用root执行"; exit 1; } command -v lvm >/dev/null || { echo "LVM工具未安装"; exit 1; } [ -b "$PARTITION" ] || { echo "分区不存在"; exit 1; } } # 执行扩容 do_resize() { echo "正在调整物理卷..." pvresize "$PARTITION" || return 1 echo "正在扩展逻辑卷..." lvextend -l +70%FREE "$LV_ROOT" || return 1 lvextend -l +100%FREE "$LV_HOME" || return 1 echo "调整文件系统..." resize2fs "$LV_ROOT" || return 1 resize2fs "$LV_HOME" || return 1 return 0 } # 主流程 pre_check && do_resize [ $? -eq 0 ] && echo "扩容成功" || echo "扩容失败"

在实际生产环境中,这套方案已经成功应用于多个金融系统的openEuler虚拟机扩容,平均耗时不超过10分钟,真正实现了业务零中断的磁盘扩容。

http://www.zskr.cn/news/1433176.html

相关文章:

  • 【免费开源】STM32智能鱼缸自动喂食控温换水水族箱物联网项目完整源码分享
  • 炉石传说HsMod插件:55项功能全面优化游戏体验的终极指南
  • 终极B站视频转文字指南:如何快速提取视频内容制作学习笔记
  • UE5.2 + Win10 + AirSim 避坑指南:从编译报错到成功运行Car模式的完整流程
  • 【免费开源】STM32 MQTT远程继电器网关4路智能开关物联网控制完整工程项目分享
  • GPT驱动SaaS产品交互革命:从JSON到提示词驱动UX的工程实践
  • 从马克·吐温的讽刺实验到现代AI伦理:用Python和GPT-4重演《可恶的人类》动物对比
  • 别再乱用-duty_cycle了!用create_generated_clock搞定复杂时钟占空比的3个实战技巧
  • 保姆级教程:在Ubuntu 14.04上为ARM平台交叉编译支持WebRTC的ZLMediaKit
  • 别让DRC检查形同虚设!深度解析Altium Designer规则设置中的5个高频‘无效配置’陷阱
  • 表情符号数据分析:从情感信号到商业洞察的技术实现与应用
  • Shantell Sans:融合多语言支持与可变轴创新的艺术家手写灵感字体!
  • 告别手动翻找!用Windows批处理5分钟搞定照片/文档的批量提取(附.bat文件模板)
  • 【信息科学与工程学】【物理/化学科学和工程技术】知识体系53 结构学知识01——钢结构/玻璃结构/土木结构/芯片结构
  • ZYNQ裸机双网口通信实战:手把手教你用LWIP和SDK搭建TCP服务器(附完整源码)
  • ChatGPT技术原理、能力边界与高效使用指南
  • 最新株洲市贵金属全品类黄金回收白银回收铂金回收 黄金变现避坑,专业回收全程透明:实力口碑排行榜门店及联系方式推荐 - 前途无量YY
  • 从一次证书过期故障说起:深度复盘CentOS 7 chrony服务配置的那些‘坑’
  • 如何用5步实现B站视频转文字:小白也能快速提取视频内容
  • FinalShell安装踩坑实录:从‘软件正在运行’报错到成功连接Ubuntu 22.04的全过程
  • 树莓派外接屏幕驱动安装全攻略:从GitHub下载到命令行配置,一次搞定
  • 别再用Excel硬扛了!手把手教你用SPSS 25.0搞定销售数据预测(附完整数据文件)
  • 手把手教你配置ZYNQ Ultrascale+ MPSoC的DDR4:从MT40A512M16选型到Vivado参数实战
  • 别再只会用手机连蓝牙了!手把手教你用STM32+ECB02模块实现两个设备自动配对通信
  • 鸿蒙数学 108 篇 第三十三篇:四象与四则运算对应法则
  • Visual Studio里那个烦人的error C2143,我总结了新手最常踩的3个坑(附VS2022调试技巧)
  • Windows宝塔面板启动卡死?别急着重装,先试试这个服务管理器修复法
  • 最新邢台市贵金属全品类黄金回收白银回收铂金回收 黄金变现避坑,专业回收全程透明:实力口碑排行榜门店及联系方式推荐 - 前途无量YY
  • 告别PaddlePaddle!在YOLOv8里直接调用RT-DETR-l模型做目标检测(附完整代码)
  • 【企业级AI成本治理白皮书】:基于237家客户真实数据——订阅冗余率高达68%,30天内可压缩至≤12%