创建逻辑卷

逻辑卷管理LVM(Logical Volume Manager)是Linux系统下的一种管理硬盘分区机制,在磁盘和分区之上建立一个逻辑层,可以灵活、高效地管理磁盘分区,简化了磁盘管理操作。逻辑卷的大小可以动态调整,而且不会丢失现有数据;即使新增了磁盘,也不会改变现有的逻辑卷。本文以使用2块新云盘(/dev/vdb/dev/vdc)为例,介绍如何通过LVM在多块云盘上创建逻辑卷。

本文LVM配置示意图如下所示。

image
说明

使用LVM可以帮助您灵活管理磁盘分区,但是会增加运维复杂度。您也可以直接选择使用多块云盘来进行隔离,达到类似分区的效果,单块云盘不需要进行分区,请参考在裸设备上创建文件系统。云盘支持扩容,请参考云盘扩容指引

操作步骤

步骤一:创建物理卷

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

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

  2. 远程连接ECS实例。

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

  3. 运行以下命令安装LVM工具。

    sudo yum install -y lvm2
  4. 运行以下命令,查看ECS实例上的所有云盘。

    lsblk

    回显类似如下,表示您有2块云盘(vdb、vdc),通过LVM创建弹性可扩展的逻辑卷。

    image.png

  5. 运行以下命令用云盘设备创建物理卷,多个设备之间用空格间隔。

    sudo pvcreate <云盘设备名称> ... <云盘设备名称>

    示例命令:使用设备/dev/vdb/dev/vdc创建2块物理卷。

    sudo pvcreate /dev/vdb /dev/vdc

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

    image.png

步骤二:创建卷组

  1. 运行以下命令创建卷组。

    sudo vgcreate <卷组名称> <物理卷名称> …… <物理卷名称>

    示例命令:创建vg_01卷组,并添加/dev/vdb/dev/vdc这2块物理卷。

    sudo vgcreate vg_01 /dev/vdb /dev/vdc

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

    image..png

  2. (可选)如果您需要在卷组中添加新的物理卷,运行以下命令添加其他已创建的物理卷。

    sudo vgextend <卷组名称> <物理卷名称> …… <物理卷名称>
  3. 运行以下命令查看卷组信息。

    sudo vgs

    结果如下所示,已创建卷组vg_01,容量约为80 GiB(文件系统本身会占用部分存储空间)。

    image.png

步骤三:创建逻辑卷

  1. 运行以下命令创建逻辑卷。

    sudo lvcreate -L <逻辑卷大小> -n <逻辑卷名称> <卷组名称>
    • 逻辑卷大小:逻辑卷的大小应小于卷组剩余可用空间。

    • 逻辑卷名称:由您自定义,例如lv01

    • 卷组名称:步骤二:创建卷组已经创建的卷组的名称,例如vg_01

    示例命令:创建一个55 GiB的逻辑卷lv01

    sudo lvcreate -L 55g -n lv01 vg_01

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

    image.png

  2. (可选)如果您需要在卷组中创建多个逻辑卷,请重复步骤1。

步骤四:创建并挂载文件系统

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

    sudo lvdisplay

    image..png

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

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

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

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

  2. 运行以下命令在逻辑卷上创建文件系统。

    sudo mkfs.<文件系统格式> <逻辑卷路径>

    您可以根据需要创建文件系统类型,以逻辑卷路径为/dev/vg_01/lv01、文件系统为ext4xfs为例,则命令为:

    创建一个ext4文件系统

    sudo mkfs.ext4 /dev/vg_01/lv01

    创建一个xfs文件系统

    sudo mkfs.xfs /dev/vg_01/lv01
  3. 创建新挂载点,例如/media/lv01

    说明

    如果您想使用已有的挂载点,可以跳过此步骤。

    sudo mkdir /media/lv01
  4. 运行以下命令,将文件系统挂载至挂载点。

    sudo mount <逻辑卷路径> <挂载点>

    示例命令:将逻辑卷(路径为/dev/vg_01/lv01)挂载至/media/lv01目录下。

    sudo mount /dev/vg_01/lv01 /media/lv01
  5. 运行以下命令查看逻辑卷的挂载结果。

    df -h

    回显类似如下信息,表示挂载成功(文件系统本身会占用部分存储空间)。

    image.png

步骤五:配置开机自动挂载

如果您需要设置开机自动挂载逻辑卷,需要在/etc/fstab中添加该逻辑卷的挂载信息,实现系统开机重启时自动挂载该逻辑卷。

  1. 运行以下命令备份etc/fstab文件。

    sudo cp /etc/fstab /etc/fstab.bak
  2. 运行以下命令,在/etc/fstab文件中添加目标逻辑卷的挂载信息。

    sudo sh -c "echo `blkid <逻辑卷路径> | awk '{print $2}' | sed 's/\"//g'` <逻辑卷挂载点> <逻辑卷的文件系统类型> defaults 0 0 >> /etc/fstab"

    示例命令:在开机重启时自动将逻辑卷(路径为/dev/vg_01/lv01)挂载至/media/lv01目录下,文件系统类型为ext4

    sudo sh -c "echo `blkid /dev/vg_01/lv01 | awk '{print $2}' | sed 's/\"//g'` /media/lv01 ext4 defaults 0 0 >> /etc/fstab"
  3. 运行以下命令,查询逻辑卷的挂载信息是否添加成功。

    cat /etc/fstab

    结果如下所示,返回结果里出现了目标逻辑卷信息,说明已添加挂载信息至/etc/fstab文件。

    image.png

  4. 验证自动挂载功能是否生效。

    1. 运行以下命令,重新挂载/etc/fstab配置的文件系统。如果无报错输出,说明逻辑卷已经成功挂载到指定的挂载点。

      sudo mount -a
    2. 运行以下命令,检查逻辑卷挂载的设备或分区。

      df -Th

      回显类似如下信息,逻辑卷已经重新挂载到设置的目录和文件系统,自动挂载功能生效。

      image.png

相关文档

如果逻辑卷的使用空间不足,您可以扩容逻辑卷。

  1. 在控制台扩容云盘容量。具体操作,请参见步骤一:扩容云盘容量

  2. 通过LVM扩容逻辑卷。具体操作,请参见扩容逻辑卷