创建逻辑卷

逻辑卷管理器LVM(Logical Volume Manager)可将多块数据盘或分区“合并”成一个可动态扩容的存储池。

工作原理

创建逻辑卷主要包含四个步骤:

  1. 创建物理卷 (pvcreate): 将数据盘标记为LVM专用。

  2. 创建卷组 (vgcreate): 将标记为LVM专用的物理卷合成一个存储资源池。

  3. 创建逻辑卷 (lvcreate): 从卷组中划分出指定大小的逻辑分区。

  4. 创建并挂载文件系统 (mkfs & mount): 为逻辑卷建立文件读写规则并分配访问路径,完成此步后逻辑卷即可投入使用。

image

如图所示,两块40 GiB的数据盘(/dev/vdb 和 /dev/vdc)被初始化为物理卷后加入名为 vg_01的卷组,形成80 GiB的存储池。随后从中划出55 GiB的逻辑卷 lv01 供系统使用。

操作步骤

步骤一:创建物理卷

重要

创建物理卷会删除数据盘中数据,请确保数据盘为空。

  1. 登录ECS实例。

    1. 访问ECS控制台-实例。在页面左侧顶部,选择目标资源所在的资源组和地域。

    2. 进入目标实例详情页,单击远程连接,选择通过Workbench远程连接。根据页面提示登录,进入终端页面。

  2. 安装LVM工具。

    Alibaba Cloud Linux、CentOS类型

    sudo yum install -y lvm2

    Debian、Ubuntu类型

    sudo apt-get install -y lvm2
  3. 运行sudo lsblk -f命令,获取目标设备名称。

    sudo lsblk -f
    NAME   FSTYPE LABEL UUID                                 MOUNTPOINT
    vda                                                      
    ├─vda1                                                   
    ├─vda2 vfat         7938-FA03                            /boot/efi
    └─vda3 ext4   root  33b46ac5-7482-4aa5-8de0-60ab4c3a4c78 /
    vdb                                                      
    vdc                                                      
    vdd                                                      
    └─vdd1                                   
    • 如果FSTYPE非空,则表示已初始化,不可创建物理卷。

    • 如果FSTYPE为空:

      • 当设备不存在分区,目标设备名称与设备名称一致。示例中数据盘vdb目标设备名称vdb。数据盘vdc目标设备名称vdc

      • 当设备存在分区,目标设备名称为期望添加的分区名称。示例中数据盘vdd目标设备名称vdd1

  4. 创建物理卷。

    设备名称之间用空格间隔,将命令中的<目标设备名称>调整为上一步中获取到的目标设备名称后执行。

    sudo pvcreate /dev/<目标设备名称>.../dev/<目标设备名称>
    以目标设备为vdbvdc为例,执行:sudo pvcreate /dev/vdb /dev/vdc生成两个40 GiB的物理卷。

    输出包含successfully created,表示物理卷创建成功。

步骤二:创建卷组

  1. 创建卷组。

    自定义<卷组名称>,并将命令中的<目标设备名称>调整为步骤一获取的目标设备名称后执行。

    sudo vgcreate <卷组名称> /dev/<目标设备名称>.../dev/<目标设备名称>
    以创建卷组名称为vg_01,并添加vdbvdc为例,执行:sudo vgcreate vg_01 /dev/vdb /dev/vdc

    输出包含successfully created,表示卷组创建成功。

  2. 查看卷组剩余可用容量。

    运行sudo vgs命令,根据VFree字段,获取并记录卷组剩余可用容量。

    sudo vgs

步骤三:创建逻辑卷

  1. 创建逻辑卷。

    sudo lvcreate -L <逻辑卷大小> -n <逻辑卷名称> <卷组名称>
    以创建逻辑卷名称为lv01,逻辑卷大小为55 GiB,卷组名称为vg_01为例,执行:sudo lvcreate -L 55g -n lv01 vg_01。

    参数

    说明

    <逻辑卷大小>

    需小于卷组剩余可用容量

    <逻辑卷名称>

    自定义创建的逻辑卷名称。

    <卷组名称>

    替换为创建卷组时自定义的卷组名

    输出 Logical volume "<逻辑卷名称>" created,表示逻辑卷创建成功。

  2. 查看逻辑卷信息。

    运行sudo lvdisplay命令,根据LV Path字段,获取并记录逻辑卷路径,用于后续创建文件系统使用。

    sudo lvdisplay
      --- Logical volume ---
      LV Path                /dev/vg_01/lv01
      LV Name                lv01
      VG Name                vg_01
      LV UUID                NgcCdz-efSY-vCrm-E35b-Dg6p-LNYq-xxxxxx
      LV Write Access        read/write
      LV Creation host, time iZbp13kehgn0kh64txxxxxx, 2025-09-15 16:57:21 +0800
      LV Status              available
      # open                 0
      LV Size                55.00 GiB
      Current LE             14080
      Segments               2
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           252:0

    示例中lv01的逻辑卷路径为/dev/vg_01/lv01

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

  1. 创建文件系统。

    xfs相比,ext4更适合处理小文件。

    ext4

    1. 创建ext4文件系统。

      <逻辑卷路径>替换为步骤三获取的路径后执行。

      sudo mkfs -t ext4 <逻辑卷路径>
      示例中,逻辑卷路径为/dev/vg_01/lv01,需执行sudo mkfs -t ext4 /dev/vg_01/lv01
    2. 验证创建是否成功。

      运行sudo lsblk -f,若输出中目标设备的FSTYPEext4,表示配置成功。

    xfs

    1. 安装xfsprogs工具。

      • Alibaba Cloud Linux、CentOS类型:

        sudo yum install -y xfsprogs
      • Debian、Ubuntu类型:

        sudo apt-get install -y xfsprogs
    2. 创建xfs文件系统。

      <逻辑卷路径>替换为步骤三获取的路径后执行。

      sudo mkfs -t xfs <逻辑卷路径>
      示例中,逻辑卷路径为/dev/vg_01/lv01,需执行sudo mkfs -t xfs /dev/vg_01/lv01
    3. 验证创建是否成功。

      运行sudo lsblk -f,若输出中目标设备的FSTYPExfs,表示配置成功。

  2. 创建并挂载系统目录。

    sudo mkdir <挂载目录> && sudo mount <逻辑卷路径> <挂载目录>

    参数

    说明

    <逻辑卷路径>

    替换为创建逻辑卷时获取的路径

    <挂载目录>

    自定义<挂载目录>,应为以/开头的路径,不可重复,目录需为空,否则会覆盖其下内容,导致原文件无法访问,可能影响业务。

    以将逻辑卷路径/dev/vg_01/lv01挂载至新创建的/mnt/lv01为例,需执行sudo mkdir /mnt/lv01 && sudo mount /dev/vg_01/lv01 /mnt/lv01

  3. 检查文件系统是否挂载成功。

    运行sudo lsblk命令,若目标设备存在挂载目录(MOUNTPOINT)信息,表示文件系统挂载成功。

    重要

    当前为临时挂载,重启后失效。为使重启后数据仍可访问,建议配置开机自动挂载

常见问题

  • 如何添加新的物理卷至已有卷组?

    1. 登录ECS实例。

      1. 访问ECS控制台-实例。在页面左侧顶部,选择目标资源所在的资源组和地域。

      2. 进入目标实例详情页,单击远程连接,选择通过Workbench远程连接。根据页面提示登录,进入终端页面。

    2. 查看物理卷和卷组信息。

      1. 查看已有物理卷。

        运行sudo pvdisplay,根据PV Name字段获取并记录物理卷名称。

      2. 查看已有卷组。

        运行sudo vgs,根据VG字段获取并记录卷组名称。

    3. 添加其他已创建的物理卷。

      <卷组名称><物理卷名称>请替换为上一步获取的已有信息。

      sudo vgextend <卷组名称> <物理卷名称>...<物理卷名称>
  • 安装工具时提示“404 Not Found”如何解决?

    CentOS 6、Debian 9/10/11操作系统已结束生命周期,需要先切换Centos源地址Debian 9/10/11源地址后再进行工具安装。

  • 重启后使用sudo df -Th,没有逻辑卷的挂载信息怎么办?

    问题原因:没有配置开机自动挂载。

    问题处理

    1. 创建并挂载系统目录。

    2. 为保证后续重启挂载信息不丢失,建议配置开机自动挂载

  • 创建逻辑卷时,提示“Volume group "vg01" has insufficient free space (23038 extents): 51200 required.”怎么办?

    创建的逻辑卷大小需小于卷组剩余可用容量

相关文档

若逻辑卷空间不足,可通过lvextend指令扩容逻辑卷