逻辑卷管理LVM(Logical Volume Manager)是Linux系统的一种管理硬盘分区机制,具有动态管理硬盘的能力。本文介绍了如何通过LVM在多块云盘上创建一个逻辑卷,适用于Linux实例。

前提条件

背景信息

LVM在硬盘和分区之上建立一个逻辑层,提高了硬盘分区管理的灵活性。 逻辑卷的大小可以动态调整,而且不会丢失现有数据。即使您新增了数据盘,也不会改变现有的逻辑卷。

重要
  • 为了防止数据丢失,不能在已有数据的云盘上创建逻辑卷。
  • 由于云盘快照只能备份单块云盘数据,使用LVM后,回滚单个云盘时会造成数据差异。因此,建议您通过快照一致性组进行备份数据。更多信息,请参见创建快照一致性组
本文中,LVM配置示意图如下所示。lvm和云盘

步骤一:创建物理卷

  1. 远程连接ECS实例。
    关于连接方式的介绍,请参见 连接方式概述
  2. 使用以下命令查看ECS实例上所有云盘信息。
    lsblk
    结果如下所示,表示您有五块云盘可以通过LVM创建弹性可扩展的逻辑卷。lsblk
  3. 如果您的ECS实例未安装LVM2工具,使用以下命令安装LVM2。
    yum install -y lvm2
  4. 使用以下命令创建物理卷PV(Physical Volume)。
    pvcreate <数据盘设备名称1> ... <数据盘设备名称N>
    以下示例表示添加/dev/vdb、/dev/vdc、/dev/vdd、/dev/vde、/dev/vdf这5块新创建的数据盘,多个数据盘设备名称之间以空格间隔。您需要根据您的实际情况修改设备名称。
    pvcreate /dev/vdb /dev/vdc /dev/vdd /dev/vde /dev/vdf
    结果如下所示。pvcreate
  5. 使用以下命令查看ECS实例已经创建的物理卷(PV)信息。
    lvmdiskscan | grep LVM
    结果如下所示。lvmdiskscan

步骤二:创建卷组

  1. 使用以下命令创建卷组VG(Volume Group)。
    vgcreate <卷组名> <物理卷名称1>……<物理卷名称N>
    以下示例表示创建lvm_01卷组,并添加/dev/vdb、/dev/vdc、/dev/vdd、/dev/vde、/dev/vdf这5块物理卷,多个物理卷名称之间以空格间隔。您需要根据您的实际情况修改卷组名称和物理卷名称。
    vgcreate lvm_01 /dev/vdb /dev/vdc /dev/vdd /dev/vde /dev/vdf
    结果如下所示。vgcreate
  2. 可选:如果您需要在卷组中添加新的物理卷,使用以下命令添加新的物理卷。
    vgextend 卷组名称  <物理卷名称1>……<物理卷名称N>
    以下示例表示在卷组lvm_01中添加新的物理卷/dev/vdg,如果添加多个物理卷,则物理卷名称之间以空格间隔。
    vgextend lvm_01 /dev/vdg
    结果如下所示。vgextend
  3. 使用以下命令查看卷组信息。
    vgs
    结果如下所示。vgs

步骤三:创建逻辑卷

  1. 使用以下命令创建逻辑卷LV(Logical Volume)。
    lvcreate [-L <逻辑卷大小>][ -n <逻辑卷名称>] <卷组名称>
    说明
    • 逻辑卷大小:逻辑卷的大小应小于卷组(VG)剩余可用空间,容量单位支持M、G或者T。
    • 逻辑卷名称:由您自定义。
    • 卷组名称:已经创建的卷组的名称。
    以下示例创建一个150 GiB的逻辑卷(LV)。
    lvcreate -L 150g -n lv01 lvm_01
    结果如下所示。lvcreate
  2. 使用以下命令查看逻辑卷详细信息。
    lvdisplay
    结果如下所示。lvdisplay

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

  1. 使用以下命令在逻辑卷(LV)上创建文件系统。
    mkfs.<文件系统格式> <逻辑卷路径>
    您可以根据需要创建文件系统类型,以下以ext4和xfs文件系统为例:
    • 创建一个ext4文件系统
      mkfs.ext4 /dev/lvm_01/lv01
      结果如下所示。ext4
    • 创建一个xfs文件系统
      mkfs.xfs /dev/lvm_01/lv01
      结果如下所示。xfs
  2. 可选:创建挂载点,例如/media/lv01
    如果您使用已有的挂载点,可以跳过此步骤。
    mkdir /media/lv01
  3. 使用以下命令挂载文件系统。

    本示例中,逻辑卷路径为/dev/lvm_01/lv01,挂载点为/media/lv01,您需要根据实际情况修改。

    mount /dev/lvm_01/lv01 /media/lv01
  4. 使用以下命令查看逻辑卷的挂载信息。
    df -h
    结果如下所示。df

步骤五:配置/etc/fstab文件并挂载逻辑卷

如果您需要设置开机自动挂载逻辑卷,需要在/etc/fstab中写入新逻辑卷的信息,启动开机自动挂载逻辑卷。

  1. 使用以下命令备份etc/fstab文件。
    cp /etc/fstab /etc/fstab.bak
  2. 使用以下命令在/etc/fstab文件中写入新逻辑卷信息。
    echo `blkid <逻辑卷路径> | awk '{print $2}' | sed 's/\"//g'` <逻辑卷挂载点> <逻辑卷的文件系统类型> defaults 0 0 >> /etc/fstab
    以下示例逻辑卷路径为/dev/lvm_01/lv01,挂载点为/media/lv01,文件系统类型为ext4,您需要根据实际情况修改。
    echo `blkid /dev/lvm_01/lv01 | awk '{print $2}' | sed 's/\"//g'` /media/lv01 ext4 defaults 0 0 >> /etc/fstab
  3. 使用以下命令查看/etc/fstab的新逻辑卷信息。
    cat /etc/fstab
    结果如下所示,返回结果里出现了新逻辑卷信息,说明写入成功。查看逻辑卷信息
  4. 使用以下命令挂载/etc/fstab配置的文件系统。如果无报错输出,表示您的/etc/fstab配置无误。
    mount -a
  5. 使用以下命令检查挂载结果是否符合您的预期。
    df -Th
    结果如下所示,如果出现新建文件系统的信息,表示文件系统挂载成功。检查挂载结果