Linux实例磁盘扩容后同步空间到逻辑卷分区

说明

本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。

问题描述

在ECS管理控制台扩容了50G的数据磁盘空间,但是在ECS实例中的系统显示分区容量没有增加。

问题原因

系统分区做了逻辑分区,磁盘扩容成功后,没有进行相应的逻辑分区扩容。

解决方案

说明
  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。

  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。

  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

本文通过如下案例进行说明。

实验背景描述

扩容Linux系统的ECS实例的25G数据盘,扩容后为30G。系统中该数据盘的磁盘标识为/dev/vdb,该数据盘只有1个主分区/dev/vdb1,且LVM逻辑分区有一个VG为vg_ssy,一个LV为lv_ssy

实验步骤

  1. 登录ECS实例,执行如下命令,确认当前磁盘扩容成功。

    fdisk -l

    系统返回类似如下,说明系统已正确识别。

    说明

    扩容前该磁盘的容量为25G。

  2. 执行如下命令,增加一个新磁盘主分区/dev/vdb2

    fdisk /dev/vdb

    系统显示类似如下。

  3. 执行如下命令,修改/dev/vdb2分区类型为8e。

    fdisk /dev/vdb

  4. 执行如下命令,查看LVM的PV相关信息。

    pvdisplay
  5. 执行如下命令,创建新的PV卷。

    pvcreate /dev/vdb2

    系统显示类似如下,添加成功。

    Physical volume "/dev/vdb2" successfully created.
  6. 执行如下命令,查看当前VG信息。

    vgdisplay

    系统显示类似如下。

  7. 执行如下命令,扩容VG。

    vgextend vg_ssy /dev/vdb2 

    系统显示类似如下,扩容成功。

    Volume group "vg_ssy" successfully extended
  8. 执行如下命令,查看并记录当前LV的LV Path信息。

    lvdisplay

    系统显示类似如下。

  9. 执行如下命令,扩容LV。

    lvextend -L +[$Size] /dev/vg_ssy/lv_ssy
    说明

    [$Size]为需要扩容的空间大小数值。列如 5G,10G,100M等。

    系统显示类似如下。

     Size of logical volume vg_ssy/lv_ssy changed from 10.00 GiB (2560 extents) to 15.00 GiB (3840 extents).
      Logical volume vg_ssy/lv_ssy successfully resized.
  10. 执行如下命令,扩容文件系统,扩容成功则停止执行后续步骤。

    resize2fs /dev/vg_ssy/lv_ssy

    如果扩容失败,系统显示类似如下,请继续以下步骤。

    resize2fs 1.42.9 (28-Dec-2013)
    resize2fs: Bad magic number in super-block while trying to open /dev/vg_ssy/lv_ssy
    Couldn't find valid filesystem superblock.
  11. 执行如下命令,确认文件系统的类型。根据文件系统类型,执行对应的扩容命令。比如,xfs的文件系统需要通过xfs_growfs命令进行扩容。

    fsck -N /dev/vg_ssy/lv_ssy

适用于

  • 云服务器ECS