Linux VPS 服务器使用 LVM 进行磁盘扩容完整指南

linux, vps, 磁盘扩容, LVM, 分区, 逻辑卷, 磁盘空间, 存储管理 0 この回答はお役に立ちましたか?

问题描述

当您的 Linux VPS 服务器磁盘空间不足时,您可能已经通过服务商后台或控制面板为 VPS 增加了额外的磁盘空间或附加了一块新的磁盘。然而,操作系统层面并不会自动识别和使用这些新增的空间。您需要在系统内部手动完成分区创建、物理卷(PV)初始化、卷组(VG)扩展以及逻辑卷(LV)扩容等操作,并最终调整文件系统大小,才能真正使用这些新增的存储空间。

本文将详细介绍在基于 LVM(Logical Volume Manager) 的 Linux VPS 上完成磁盘扩容的完整步骤,适用于 CentOS 7/8、Debian 10/11/12、Ubuntu 18.04/20.04/22.04 等主流发行版。

解决方案步骤

第一步:确认当前磁盘和分区状态

首先,登录您的 VPS 服务器,使用以下命令查看当前磁盘和分区信息:

lsblk

fdisk -l

df -h

pvdisplay

vgdisplay

lvdisplay

通过以上命令,您可以了解:

  • 当前有哪些磁盘(如 /dev/vda/dev/vdb
  • 现有分区的大小和挂载点
  • LVM 的物理卷、卷组和逻辑卷的配置情况

第二步:场景一 —— 原有磁盘扩容

如果您的服务商是对原有磁盘(如 /dev/vda)进行了扩容,那么磁盘的总容量已经增大,但分区表和文件系统尚未更新。请按以下步骤操作:

2.1 检查并安装必要工具

yum install -y cloud-utils-growpart xfsprogs

(CentOS/RHEL 系统)

apt install -y cloud-guest-utils xfsprogs

(Debian/Ubuntu 系统)

2.2 扩展分区

使用 growpart 工具扩展分区到磁盘的全部可用空间:

growpart /dev/vda 2

其中 2 是分区编号,表示扩展 /dev/vda 的第 2 个分区。请根据 lsblk 输出确认您的分区编号。

2.3 扩展物理卷(PV)

pvresize /dev/vda2

此命令将物理卷扩展到分区的全部大小。

2.4 扩展逻辑卷(LV)

lvextend -l +100%FREE /dev/mapper/centos-root

此命令将卷组中所有可用空间分配给指定的逻辑卷。请将 /dev/mapper/centos-root 替换为您实际的逻辑卷路径,可通过 lvdisplay 命令查看。

2.5 扩展文件系统

最后一步是扩展文件系统以使用新增的空间。根据您的文件系统类型选择对应命令:

对于 XFS 文件系统(CentOS 7/8 默认):

xfs_growfs /

对于 ext4 文件系统(Debian/Ubuntu 常见):

resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

或者指定挂载点:

resize2fs /dev/mapper/centos-root

第三步:场景二 —— 附加新磁盘并加入 LVM

如果您的 VPS 附加了一块全新的磁盘(如 /dev/vdb),需要将新磁盘纳入 LVM 管理,请按以下步骤操作:

3.1 确认新磁盘已识别

lsblk

fdisk -l /dev/vdb

确认新磁盘(如 /dev/vdb)已被系统识别。

3.2 创建分区

fdisk /dev/vdb

在交互界面中依次输入:

  1. 输入 n 创建新分区
  2. 输入 p 创建主分区
  3. 输入 1 设置分区编号为 1
  4. Enter 接受默认起始扇区
  5. Enter 接受默认结束扇区(使用全部空间)
  6. 输入 t 更改分区类型,然后输入 8e 设置为 Linux LVM 类型
  7. 输入 w 写入分区表并退出

3.3 创建物理卷(PV)

pvcreate /dev/vdb1

3.4 将新物理卷加入现有卷组(VG)

vgextend centos /dev/vdb1

请将 centos 替换为您实际的卷组名称,可通过 vgdisplay 查看。

3.5 扩展逻辑卷(LV)

lvextend -l +100%FREE /dev/mapper/centos-root

3.6 扩展文件系统

XFS 文件系统:

xfs_growfs /

ext4 文件系统:

resize2fs /dev/mapper/centos-root

第四步:验证扩容结果

执行以下命令确认扩容是否成功:

df -h

lsblk

pvdisplay

vgdisplay

lvdisplay

确认根分区(/)或目标挂载点的可用空间已经增加到预期大小。

附加提示

  • 操作前备份数据:磁盘和分区操作存在数据丢失风险,强烈建议在执行任何扩容操作前对重要数据进行完整备份。
  • 确认文件系统类型:使用 df -Th 命令可以查看每个分区的文件系统类型,XFS 和 ext4 使用不同的扩展命令,不可混用。
  • 非 LVM 场景:如果您的 VPS 未使用 LVM,而是直接使用标准分区,则扩容流程有所不同。对于直接分区扩容,可使用 growpart 扩展分区后直接运行 resize2fsxfs_growfs
  • swap 分区处理:如果新增磁盘需要用于 swap,可创建 swap 分区并使用 mkswapswapon 命令启用。
  • 云平台注意事项:部分云服务商(如 AWS、阿里云、腾讯云)的 VPS 在扩容磁盘后可能需要重启服务器才能被系统识别。如果 lsblk 未显示新的磁盘空间,请尝试重启 VPS。
  • 操作顺序不可颠倒:请严格遵循 "扩展分区 → 扩展物理卷 → 扩展逻辑卷 → 扩展文件系统" 的顺序,跳过任何步骤都可能导致扩容失败。
  • 查看发行版特定卷组名:不同发行版的默认卷组名不同,例如 CentOS 通常为 centos,Ubuntu 可能为 ubuntu-vg,Debian 可能为 debian-vg,请以 vgdisplay 实际输出为准。

この回答はお役に立ちましたか?

チケット送信

サポートが必要な場合はチケットを送信してください。サポートチームが対応します。

チケット送信