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

Rocky Linux 9.4 VMware磁盘扩容实战:从分区调整到文件系统扩展

1. 为什么需要磁盘扩容?

最近在给客户部署Rocky Linux 9.4环境时,遇到了一个典型问题:当初规划的20GB系统盘空间不够用了。这让我想起很多新手常犯的错误 - 在创建虚拟机时为了节省资源,把磁盘空间设置得过小。随着业务增长,日志文件、应用程序和数据不断累积,磁盘空间很快就会告急。

在VMware环境中扩容磁盘其实是个很常见的需求。我遇到过不少运维同事,他们习惯性地选择重建虚拟机来解决问题,这不仅耗时耗力,还可能导致服务中断。实际上,通过LVM(逻辑卷管理)技术,我们可以实现不停机的在线扩容,整个过程就像给房子加建一个房间一样简单。

2. 前期准备工作

2.1 确认系统环境

首先我们需要确认当前系统环境。执行以下命令查看系统版本:

cat /etc/redhat-release

在我的测试环境中,输出显示为:

Rocky Linux release 9.4 (Blue Onyx)

2.2 检查当前磁盘布局

使用lsblk命令可以直观地看到磁盘分区情况:

lsblk

典型输出如下:

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS nvme0n1 259:0 0 20G 0 disk ├─nvme0n1p1 259:1 0 1G 0 part /boot └─nvme0n1p2 259:2 0 19G 0 part ├─rl-root 253:0 0 17G 0 lvm / └─rl-swap 253:1 0 2G 0 lvm [SWAP]

这里可以看到我们的根分区(/dev/mapper/rl-root)只有17GB,确实需要扩容。

3. VMware虚拟机磁盘扩容

3.1 在VMware中扩展虚拟磁盘

首先需要关闭虚拟机(虽然LVM支持在线扩容,但为了保险起见建议关机操作)。在VMware vSphere Client或Workstation中:

  1. 右键点击虚拟机选择"编辑设置"
  2. 找到硬盘设备,将容量从20GB调整为40GB
  3. 确认变更

注意:这里只是扩展了虚拟磁盘的容量,操作系统还无法识别这部分新增空间。

3.2 让系统识别新容量

启动虚拟机后,我们需要让内核重新扫描磁盘设备:

echo 1 > /sys/class/block/nvme0n1/device/rescan

用fdisk验证新容量:

fdisk -l /dev/nvme0n1

现在应该能看到磁盘总容量变成了40GB。

4. 分区调整实战

4.1 备份分区表

在进行任何分区操作前,强烈建议先备份当前分区表:

sfdisk -d /dev/nvme0n1 > nvme0n1.bak

这样万一操作失误,还可以用sfdisk /dev/nvme0n1 < nvme0n1.bak恢复。

4.2 调整分区大小

这里有个关键点:我们需要删除并重建包含LVM的分区(通常是第二个分区),但必须保留分区类型为8e(Linux LVM)。

操作步骤:

fdisk /dev/nvme0n1

在fdisk交互界面中:

  1. 输入d删除分区
  2. 选择分区号2
  3. 输入n创建新分区
  4. 选择主分区
  5. 分区号保持为2
  6. 起始扇区保持默认(必须与原来一致!)
  7. 结束扇区使用默认最大值
  8. 输入t设置分区类型
  9. 选择8e(Linux LVM)
  10. 输入w保存退出

重要提示:当系统询问"是否移除LVM2_member签名"时,一定要选择"N"!这个签名包含了重要的卷组信息。

5. LVM扩容全流程

5.1 刷新物理卷

让LVM识别到物理卷的新容量:

pvresize /dev/nvme0n1p2

用pvdisplay检查:

pvdisplay

应该能看到Free PE增加了。

5.2 扩展逻辑卷

现在我们可以将新增空间分配给根分区:

lvextend -l +100%FREE /dev/rl/root

这个命令会将所有可用空间都分配给根逻辑卷。如果想保留部分空间,可以使用-L +10G这样的形式指定具体大小。

5.3 扩展文件系统

最后一步是扩展XFS文件系统:

xfs_growfs /

对于ext4文件系统,命令略有不同:

resize2fs /dev/rl/root

验证扩容结果:

df -h

现在应该能看到根分区的容量已经增加了。

6. 常见问题排查

在实际操作中,可能会遇到各种问题。这里分享几个我踩过的坑:

  1. 分区起始扇区不一致:重建分区时如果修改了起始扇区,会导致数据丢失。一定要记下原分区的起始扇区。

  2. LVM签名丢失:如果在fdisk中误删了LVM签名,可以使用pvcreate --restorefile恢复,但最好还是提前备份。

  3. 空间未释放:有时删除分区后,系统可能仍然缓存旧的分区表信息。可以尝试重启或使用partprobe命令刷新。

  4. XFS扩容失败:确保文件系统没有挂载为只读,并且有足够的剩余空间用于XFS的元数据。

7. 自动化扩容脚本

对于需要频繁执行扩容操作的环境,我整理了一个自动化脚本:

#!/bin/bash # 定义磁盘和分区 DISK="/dev/nvme0n1" PARTITION="${DISK}p2" VG="rl" LV="root" # 重新扫描磁盘 echo 1 > /sys/class/block/${DISK##*/}/device/rescan # 备份分区表 sfdisk -d $DISK > partition.bak # 交互式调整分区 echo -e "d\n2\nn\np\n2\n\n\nt\n2\n8e\nw" | fdisk $DISK # 刷新物理卷 partprobe pvresize $PARTITION # 扩展逻辑卷 lvextend -l +100%FREE /dev/mapper/${VG}-${LV} # 扩展文件系统 xfs_growfs / echo "Disk expansion completed!"

使用前请根据实际情况修改DISK、VG和LV参数,并确保已做好备份。

8. 进阶技巧与建议

  1. 预留空间:不要将所有空间都分配给根分区,建议保留5-10%的未分配空间以备不时之需。

  2. 监控预警:设置磁盘空间监控,在利用率达到80%时就应开始规划扩容。

  3. LVM快照:在操作前可以创建LVM快照,这样即使操作失误也能快速回滚。

  4. 多磁盘管理:对于生产环境,建议使用多个物理磁盘组成VG,这样不仅容量更大,还能提高IO性能。

  5. 文档记录:详细记录每次扩容操作的时间、原容量、新容量等信息,便于后续维护和审计。

经过多次实战,我发现Rocky Linux 9.4与VMware的兼容性非常好,磁盘扩容过程稳定可靠。只要按照正确的步骤操作,几乎不会遇到数据丢失的风险。记住关键一点:操作前备份,操作中验证,操作后检查。

http://www.jsqmd.com/news/651286/

相关文章:

  • 纸张矫正算法笔记
  • IDEA 的项目 jdk可以切换
  • 简单高效的终极解决方案:3个步骤用猫抓浏览器插件轻松获取网页视频音频资源
  • 使用VS2019将WinForm项目一键打包为exe安装包并配置桌面快捷方式
  • H3C SecPath ACG 1000系列 上网行为管理对接飞书 OAuth2.0 企业认证全流程落地实践
  • AI 热点资讯日报-2026年4月16日
  • 滴滴Tinyid实战:从MySQL到Oracle数据库迁移的完整避坑指南
  • 3个关键步骤:如何让OpenIPC在君正T31ZX平台稳定运行
  • 动态壁纸后台持续耗电的深层原因与优化方案
  • 告别Unchecked Cast警告:Java中Object到List安全转换的5种实战策略
  • 还在用iReport 5.6.0?手把手教你搞定JDK 1.8兼容与中文乱码(附完整Spring Boot集成代码)
  • 4月16日
  • 用NumPy的linalg模块搞定机器学习里的特征值分解:一个PCA降维的实战例子
  • 深入OpenNIC架构:如何利用Alveo FPGA上那两个‘用户Box’玩转自定义数据处理(250MHz vs 322MHz AXI-Stream详解)
  • AI搜索流量突围:成都GEO优化公司选型实用指南(2026版) - 品牌评测官
  • 用TotalSegmentator实现医学影像自动分割:117个解剖结构的一键式解决方案
  • 2025最权威的AI学术网站推荐榜单
  • 闪铸Dreamer Nx 3D打印机WIFI连接保姆级教程(含FlashPrint软件配置与常见问题排查)
  • 第一篇记录
  • OpenRocket完全指南:从零开始掌握开源火箭设计与仿真
  • postgres 控制文件一键重建 - a
  • Docker Desktop容器启动失败:解决Error response from daemon的实用指南
  • drawio插件开发实战:打通Gitee API实现云端文件同步与版本管理
  • VMware NSX-T Data Center 3.2.3.0 部署后账号密码获取及登录配置教程
  • Vue3 全家桶实战指南:从路由配置到状态管理
  • Java的java.util.random.RandomGeneratorFactory随机数生成器工厂选择
  • IJCAI 2024投稿量破纪录,但录用率创新低:给AI研究者的三点投稿启示
  • 【深度学习】【基础】Linear与Flatten层的协同工作原理
  • 暗黑破坏神2存档编辑器:单机玩家的终极自定义工具
  • 别再死记公式!用CubeMX可视化工具搞定STM32 CAN波特率与位时序配置