云计算百科
云计算领域专业知识百科平台

Linux 服务器 LVM 根分区在线动态扩容

文章目录

    • 1. 扩容背景与现状排查
      • 1.1 容量与设备检查
      • 1.2 LVM 卷组检查
    • 2. 扩容操作步骤
      • 步骤一:创建物理卷(Physical Volume)
      • 步骤二:扩展卷组(Volume Group)
      • 步骤三:按需扩展逻辑卷(Logical Volume)
      • 步骤四:在线调整文件系统大小(Resize Filesystem)
    • 3. 扩容结果校验与服务恢复
      • 3.1 磁盘空间校验
      • 3.2 受影响服务重启与状态核查
    • 4. 常见问题与注意事项

1. 扩容背景与现状排查

服务器根分区出现容量告警(空间使用率达到 100%),导致相关数据库及容器服务异常或写入受限。需要通过添加新硬盘并在不停机、不影响数据的前提下对根分区进行在线扩容。

1.1 容量与设备检查

使用 df 及 lsblk 命令确认当前存储使用情况与磁盘设备分布:

对比维度lsblk (List Block Devices)df (Disk Free)
关注对象 硬件与逻辑结构(块设备、分区、LVM 卷) 已挂载的文件系统(磁盘空间使用率)
视角 物理/逻辑设备的“树状结构图” 挂载点上的“剩余空间统计表”
未挂载设备 能识别(即使没有挂载也能列出) 无法识别(只统计已挂载的分区)
显示指标 设备名、容量大小、设备类型(disk/part/lvm)、挂载点 总容量、已用空间、可用空间、使用率、挂载点

  • 磁盘现状:
  • 原系统盘 /dev/sda 为 80G,根分区 /dev/mapper/ubuntu–vg-lv–0 仅 76G 且已满(使用率 100%)。
  • 新增物理磁盘 **<font style="color:#DF2A3F;">/dev/sdb</font>**(容量 1000G/1TB),目前未格式化且未分配。

1.2 LVM 卷组检查

检查当前卷组(Volume Group)状态:

sudo vgs

  • 卷组现状:卷组名称为 ubuntu-vg,目前仅由 1 个 PV 组成,剩余可分配空间仅约 1GB。

2. 扩容操作步骤

步骤一:创建物理卷(Physical Volume)

将新加入的块设备 /dev/sdb 初始化为 LVM 物理卷:

sudo pvcreate /dev/sdb

  • 输出验证:Physical volume "/dev/sdb" successfully created.

步骤二:扩展卷组(Volume Group)

将新建的物理卷 /dev/sdb 加入到目标卷组 ubuntu-vg 中:

sudo vgextend ubuntu-vg /dev/sdb

  • 输出验证:Volume group "ubuntu-vg" successfully extended
  • 状态核查:运行 sudo vgs 可查看到 ubuntu-vg 的容量已由 78G 扩充至约 1.05T,未分配空间(VFree)增加约 1000G。

步骤三:按需扩展逻辑卷(Logical Volume)

查看当前的逻辑卷名称:

sudo lvs

  • 确认识别:卷组 ubuntu-vg 下的根分区逻辑卷名称为 lv-0(对应设备路径 /dev/ubuntu-vg/lv-0 或 /dev/mapper/ubuntu–vg-lv–0)。

针对逻辑卷分配新增空间(例如分配未分配空间的 50%):

sudo lvextend -l +50%FREE /dev/ubuntu-vg/lv-0

  • 输出验证:Size of logical volume ubuntu-vg/lv-0 changed from 77.00 GiB … to <577.50 GiB

补充说明:若需使用剩余的全部空闲空间,可执行 sudo lvextend -l +100%FREE /dev/ubuntu-vg/lv-0。

步骤四:在线调整文件系统大小(Resize Filesystem)

将逻辑卷扩容的空间同步扩展至底层 Ext4 文件系统:

sudo resize2fs /dev/mapper/ubuntu–vg-lv–0

  • 输出验证:
  • Filesystem at /dev/mapper/ubuntu–vg-lv–0 is mounted on /; on-line resizing required
  • The filesystem on /dev/mapper/ubuntu–vg-lv–0 is now 151387136 (4k) blocks long.

3. 扩容结果校验与服务恢复

3.1 磁盘空间校验

再次检查挂载点空间:

df -h

  • 结果分析:根分区 /dev/mapper/ubuntu–vg-lv–0 容量已成功由 76G 扩充至 568G,使用率降至 14%,扩容完成。

3.2 受影响服务重启与状态核查

由于磁盘空间曾经耗尽,需对依赖磁盘写入的基础服务(如 PostgreSQL)进行重启与集群在线状态确认:

# 重启 PostgreSQL 服务
sudo systemctl restart postgresql

# 查看 PostgreSQL 服务状态
sudo systemctl status postgresql

# 检查 PostgreSQL 集群运行状态
pg_lsclusters

  • 状态确认:PostgreSQL 12 (main) 状态显示为 online,端口 5432 正常监听,数据文件目录 /opt/postgres/data 读写恢复正常。

4. 常见问题与注意事项

  • 权限问题:
    • 在非 root 权限下运行 vgs 或 lvs 会提示 Permission denied 或 Functionality may be unavailable,所有 LVM 相关指令建议使用 sudo 或在 root 用户下执行。
  • 逻辑卷路径识别错误:
    • 默认 Ubuntu 安装程序自动生成的 LV 名称可能为 lv-0 而非 ubuntu-lv。在执行 lvextend 前务必先通过 sudo lvs 确认准确的 LV 名称,避免出现 Logical volume … not found 错误。
  • 文件系统命令选择:
    • 本例中使用 resize2fs 适用于 Ext2/Ext3/Ext4 文件系统。
    • 若服务器根分区采用的是 XFS 文件系统,则需使用 xfs_growfs <挂载点> 命令进行在线扩展(如 xfs_growfs /)。
    赞(0)
    未经允许不得转载:网硕互联帮助中心 » Linux 服务器 LVM 根分区在线动态扩容
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!