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中右键点击虚拟机选择编辑设置找到硬盘设备将容量从20GB调整为40GB确认变更注意这里只是扩展了虚拟磁盘的容量操作系统还无法识别这部分新增空间。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的分区通常是第二个分区但必须保留分区类型为8eLinux LVM。操作步骤fdisk /dev/nvme0n1在fdisk交互界面中输入d删除分区选择分区号2输入n创建新分区选择主分区分区号保持为2起始扇区保持默认必须与原来一致结束扇区使用默认最大值输入t设置分区类型选择8eLinux LVM输入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. 常见问题排查在实际操作中可能会遇到各种问题。这里分享几个我踩过的坑分区起始扇区不一致重建分区时如果修改了起始扇区会导致数据丢失。一定要记下原分区的起始扇区。LVM签名丢失如果在fdisk中误删了LVM签名可以使用pvcreate --restorefile恢复但最好还是提前备份。空间未释放有时删除分区后系统可能仍然缓存旧的分区表信息。可以尝试重启或使用partprobe命令刷新。XFS扩容失败确保文件系统没有挂载为只读并且有足够的剩余空间用于XFS的元数据。7. 自动化扩容脚本对于需要频繁执行扩容操作的环境我整理了一个自动化脚本#!/bin/bash # 定义磁盘和分区 DISK/dev/nvme0n1 PARTITION${DISK}p2 VGrl LVroot # 重新扫描磁盘 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. 进阶技巧与建议预留空间不要将所有空间都分配给根分区建议保留5-10%的未分配空间以备不时之需。监控预警设置磁盘空间监控在利用率达到80%时就应开始规划扩容。LVM快照在操作前可以创建LVM快照这样即使操作失误也能快速回滚。多磁盘管理对于生产环境建议使用多个物理磁盘组成VG这样不仅容量更大还能提高IO性能。文档记录详细记录每次扩容操作的时间、原容量、新容量等信息便于后续维护和审计。经过多次实战我发现Rocky Linux 9.4与VMware的兼容性非常好磁盘扩容过程稳定可靠。只要按照正确的步骤操作几乎不会遇到数据丢失的风险。记住关键一点操作前备份操作中验证操作后检查。