扩容逻辑卷

如果您使用LVM(Logical Volume Manager)创建的逻辑卷使用空间不足时,您可以扩容逻辑卷。本文介绍了如何通过LVM扩容一个逻辑卷。

前提条件

已创建一个逻辑卷。具体操作,请参见创建逻辑卷

操作步骤

您可以通过以下两种方式来扩容逻辑卷。

方式一:扩容云盘以扩容逻辑卷容量

扩容原理

如下图所示,当逻辑卷容量不能满足您当前业务需求时,您可以通过扩容已有云盘容量,来扩展逻辑卷的容量。

image

扩容步骤

下文通过扩容云盘/dev/vdb,为逻辑卷lv01增加10 GiB容量为例,指导您如何扩容逻辑卷。

  1. (可选)通过快照一致性组进行备份数据。具体操作,请参见创建快照一致性组

  2. 远程连接ECS实例。

    关于连接方式的介绍,请参见连接方式概述

  3. 扩容云盘(例如扩容云盘/dev/vdb)。

    1. 为目标云盘扩容容量(例如新增10 GiB容量)。具体操作,请参见步骤一:扩容云盘容量

    2. (可选)若云盘已分区,需为云盘扩容分区。具体操作,请参见步骤1:扩容分区。如果云盘未分区,则跳过该步骤。

      您可以通过lsblk命令查看云盘是否分区。如下图的示例,则表示云盘/dev/vdb未分区,/dev/vdc已分区。

      image.png

  4. 扩容物理卷。

    1. 执行以下命令,确定已扩容的云盘或云盘分区对应的物理卷名称,后续命令需使用。

      PV列为物理卷名称,Devices列为物理卷对应的云盘或云盘分区。

      sudo pvs -a -o +devices

      image.png

      上图示例,云盘/dev/vdb对应的物理卷名称为/dev/vdb

    2. 运行以下命令,扩容云盘对应的物理卷。

      sudo pvresize <物理卷名称>

      以扩容物理卷/dev/vdb为例,则命令为:

      sudo pvresize /dev/vdb

      回显类似如下信息,表示扩容物理卷成功。

      image.png

  5. 扩容逻辑卷和文件系统。

    1. 运行以下命令,获取逻辑卷路径、名称、所属卷组等信息,后续操作步骤需使用。

      sudo lvdisplay
      • LV Path:逻辑卷路径,例如/dev/vg_01/lv01

      • LV Name:逻辑卷名称,例如lv01

      • VG Name:逻辑卷所属的卷组名称,例如vg_01

      • LV Size:逻辑卷的大小,图示信息为59 GiB。

      image.png

    2. 运行以下命令,扩容逻辑卷。

      sudo lvextend -L <增/减逻辑卷容量> <逻辑卷路径>

      示例命令:为逻辑卷(路径为/dev/vg_01/lv01)新增10 GiB容量。

      sudo lvextend -L +10G /dev/vg_01/lv01

      回显类似如下信息,表示您为逻辑卷(lv01)新增了10 GiB空间。

      image.png

    3. 运行以下命令,扩容逻辑卷文件系统。

      执行df -Th命令,查询逻辑卷的文件系统类型(即Type列的值),根据文件系统类型选择扩容命令。

      image.png

      ext4文件系统

      sudo resize2fs <逻辑卷路径>

      以扩容逻辑卷lv01(路径为/dev/vg_01/lv01)为例,则命令为:

      sudo resize2fs /dev/vg_01/lv01

      xfs文件系统

      sudo xfs_growfs <逻辑卷挂载点>

      以扩容逻辑卷lv01(挂载点为/media/lv01)为例,则命令为:

      sudo xfs_growfs /media/lv01
  6. 运行以下命令,查看逻辑卷扩容结果。

    df -h

    回显类似如下信息,表示已为逻辑卷新增10 GiB容量(文件系统本身会占用部分存储空间)。

    image.png

方式二:新增云盘以扩容逻辑卷容量

扩容原理

如下图所示,当逻辑卷容量不能满足您当前业务需求时,您可以通过新增云盘,来扩展逻辑卷(LV)的容量。

image

扩容步骤

下文通过新创建云盘(云盘设备名为/dev/vdd、容量为20 GiB)、创建物理卷、然后将物理卷添加到卷组中等操作,指导您如何扩容逻辑卷。

  1. 为ECS实例新创建并挂载1块云盘,无需初始化。

    具体操作,请参见创建云盘挂载数据盘

  2. 远程连接ECS实例。

    关于连接方式的介绍,请参见连接方式概述

  3. 运行以下命令,用新增云盘创建物理卷。

    sudo pvcreate <云盘设备名称>

    示例命令:使用新增云盘/dev/vdd创建1块物理卷。

    sudo pvcreate /dev/vdd

    回显类似如下信息,表示创建物理卷成功。

    image.png

  4. 扩容卷组。

    1. 运行以下命令,查看卷组信息。

      sudo vgs

      回显类似如下信息,表示卷组名称vg_01,当前卷组容量为 59.99GiB,剩余空间不足 1GiB。

      image.png

    2. 运行以下命令,扩容卷组。

      sudo vgextend <卷组名称> <物理卷名称>

      示例命令:将物理卷/dev/vdd添加至卷组vg_01中。

      sudo vgextend vg_01 /dev/vdd

      回显类似如下信息,表示扩容卷组成功。

      image.png

    3. 运行以下命令,查看卷组信息。

      sudo vgs

      回显类似如下信息,卷组vg_01的容量由59.99 GiB增加至79.99 GiB,说明卷组扩容成功。

      image.png

  5. 扩容逻辑卷和文件系统。

    1. 运行以下命令,获取逻辑卷路径、名称、所属卷组等信息,后续操作步骤需使用。

      sudo lvdisplay
      • LV Path:逻辑卷路径,例如/dev/vg_01/lv01

      • LV Name:逻辑卷名称,例如lv01

      • VG Name:逻辑卷所属的卷组名称,例如vg_01

      • LV Size:逻辑卷的大小,图示信息为59 GiB。

      image.png

    2. 运行以下命令,扩容逻辑卷。

      sudo lvextend -L <增/减逻辑卷容量> <逻辑卷路径>

      示例命令:为逻辑卷(路径为/dev/vg_01/lv01)新增20 GiB容量。

      sudo lvextend -L +20G /dev/vg_01/lv01

      回显类似如下信息,表示您为逻辑卷(lv01)新增了20 GiB空间。

      image.png

    3. 运行以下命令,扩容逻辑卷文件系统。

      执行df -Th命令,查询逻辑卷的文件系统类型(即Type列的值),根据文件系统类型选择扩容命令。

      image.png

      ext4文件系统

      sudo resize2fs <逻辑卷路径>

      以扩容逻辑卷lv01(路径为/dev/vg_01/lv01)为例,则命令为:

      sudo resize2fs /dev/vg_01/lv01

      xfs文件系统

      sudo xfs_growfs <逻辑卷挂载点>

      以扩容逻辑卷lv01(挂载点为/media/lv01)为例,则命令为:

      sudo xfs_growfs /media/lv01
    4. 运行以下命令,查看逻辑卷扩容结果。

      df -h

      回显类似如下信息,表示已为逻辑卷新增20 GiB容量(文件系统本身会占用部分存储空间)。

      image.png