Skip to content

如何使用 LVM 在 EBS 卷的分区上创建逻辑卷?

4 分钟阅读
0

我想使用逻辑卷管理器 (LVM) 在我的 Amazon Elastic Block Store (Amazon EBS) 卷的分区上创建 LV。

解决方法

如果您已经创建并挂载 LV,请继续查看 Extend the LV(扩展 LV)部分。

在卷的分区上创建 PV

LV 的底层物理存储单元是块设备,例如卷的分区或整个卷。

**注意:**基于 Nitro 的实例会将卷作为 NVMe 设备公开。块设备名称遵循模式 /dev/nvme1n1、/dev/nvme2n1、/dev/nvme3n1,以此类推。如果使用的是基于 Nitro 的实例,请将以下步骤中的设备名称替换为相应的设备名称。有关详细信息,请参阅 Amazon EC2 实例上卷的设备名称

要在卷的分区上创建物理卷,请完成以下步骤:

  1. 打开 Amazon Elastic Compute Cloud (Amazon EC2) 控制台

  2. 创建 EBS 卷,然后将该卷附加到您的 Amazon EC2 实例

  3. 运行以下命令安装 LVM:

    sudo yum install lvm2 -y

    **注意:**对于基于 Debian 或 Ubuntu 的系统,运行以下命令安装 growpart 实用程序:

    sudo apt-get install -y lvm2
  4. 运行 gdisk 命令创建分区。对于命令提示符,输入 n。对于变量十六进制代码或 GUID,输入 8e00。
    以下示例在 /dev/xvdh 上创建了 /dev/xvdh1 分区:

    sudo gdisk /dev/xvdh
    Command (? for help): n
    Partition number (1-1218, default 1): 1
    First sector (34-20971486, default = 2048) or {+-}size{KMGTP}:
    Last sector (2048-20971486, default = 20971486) or {+-}size{KMGTP}:
    Current type is 'Linux filesystem'
    Hex code or GUID (L to show codes, Enter = 8300): 8e00

    输出示例:

    Changed type of partition to 'Linux LVM'
    
    OK; writing new GUID partition table (GPT) to /dev/xvdh.
    The operation has completed successfully.
  5. 运行 lsblk 命令确认分区已创建:

    lsblk

    输出示例:

    NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    xvda    202:0    0   8G  0 disk
    └─xvda1 202:1    0   8G  0 part /
    xvdh    202:80   0  10G  0 disk
    └─xvdh1 202:81   0  10G  0 part
  6. 运行 pvcreate 命令从分区创建物理卷 (PV)。以下示例从 /dev/xvdh1 创建了 PV:

    sudo pvcreate /dev/xvdh1

    输出示例:

    Physical volume "/dev/xvdh1" successfully created.

创建卷组并将 PV 添加到卷组中

完成以下步骤:

  1. 运行 vgcreate 命令创建组合新 PV 的卷组。以下示例使用一个 PV 创建 examplegroup1 卷组:

    sudo vgcreate examplegroup1 /dev/xvdh1

    输出示例:

    group "examplegroup1" successfully created
  2. 运行 vgsvgdisplay 命令查看卷组详细信息:

    sudo vgs

    输出示例:

    VG             #PV #LV #SN Attr   VSize  VFree  
    examplegroup1   1   0   0 wz--n- <10.00g <10.00g

创建 LV 和挂载目录

完成以下步骤:

  1. 运行 lvcreate 命令从您的卷组创建 LV。以下示例从 examplegroup1 卷组创建了一个 9GB 的 LV lvexample1

    sudo lvcreate -n lvexample1 -L 9G examplegroup1

    输出示例:

    volume "lvexample1" created
  2. 运行 lvslvdisplay 命令查看 LV 详细信息:

    sudo lvs

    输出示例:

    LV          VG             Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
    lvexample1  examplegroup1  -wi-a----- 9.00g
  3. 运行 mkdir 命令创建挂载目录。以下示例创建了 /mnt1 目录:

    sudo mkdir /mnt1

创建和挂载文件系统

完成以下步骤:

  1. 运行 mkfs -t 命令以创建文件系统:

    sudo mkfs -t xfs /dev/examplegroup1/lvexample1

    **注意:**将 xfs 替换为您的文件系统类型。例如,使用 ext2、ext3 或者 ext4。

  2. 运行 lsblk -f 命令以验证文件系统是否已创建:

    lsblk -f

    输出示例:

    NAME                         FSTYPE      LABEL UUID                                   MOUNTPOINT
    xvda                                                                            
    ├─xvda1                                                                         
    └─xvda2                      xfs               66e5e079-770e-4359-a9da-5205c3d8d5af   /
    xvdh                                                                            
    └─xvdh1                      LVM2_member       0UnOic-e2ng-XxH5-z0UW-7aTh-RxQK-KMrDqo
      └─examplegroup1-lvexample1 xfs              5db36052-81d5-4762-8502-6986ff3964e7

    **注意:**文件系统类型显示在 FSTYPE 下。

  3. 运行 mount 命令将文件系统挂载到挂载目录上:

     sudo mount /dev/examplegroup1/lvexample1 /mnt1
  4. 编辑 /etc/fstab 文件中的挂载选项,以便在重启后新挂载仍然存在:

    /dev/examplegroup1/lvexample1 /mnt1   xfs     defaults,nofail   0   0

    **注意:**将 xfs 替换为您的文件系统类型。

扩展 LV

要扩展 LV,请增加现有 EBS 卷的大小,或将 EBS 卷添加到卷组中。

增加现有 EBS 卷的大小

**注意:**在增加现有卷的大小时,大小更改通常在卷进入 Optimizing(正在优化)状态后的几秒钟内生效。但是,如果卷处于 Optimizing(正在优化)状态,则卷性能介于源和目标配置规格之间。根据卷类型,性能更改可能需要几分钟到几小时不等。有关详细信息,请参阅监控 Amazon EBS 卷修改的进度

要增加现有 EBS 卷的大小,请完成以下步骤:

  1. 修改现有 EBS 卷的大小

  2. 安装 growpart 实用程序:

    sudo yum install cloud-utils-growpart -y

    **注意:**要在基于 Debian 或 Ubuntu 的系统上安装 growpart 实用程序,请运行以下命令:

    sudo apt install -y cloud-guest-utils
  3. 运行 growpart 命令来扩展分区。在以下示例中,/dev/xvdh1 分区已扩展:

    sudo growpart /dev/xvdh 1    

    输出示例:

    CHANGED: disk=/dev/xvdh partition=1: start=2048 old: size=20971519,end=16777182 new: size=41940958,end=41943006
  4. 运行 pvresize 命令来调整 PV 的大小:

    sudo pvresize /dev/xvdh1   

    输出示例:

    Physical volume "/dev/xvdh1" changed
    1 physical volume(s) resized or updated / 0 physical volume(s) not resized
  5. 运行 pvspvdisplay 命令查看 PV 详细信息:

    sudo pvs

    输出示例:

    PV         VG            Fmt  Attr PSize   PFree
    /dev/xvdh1 examplegroup1 lvm2 a--  <20.00g <13.00g
  6. 运行 vgsvgdisplay 命令查看卷组详细信息:

    sudo vgs  

    输出示例:

    VG            #PV #LV #SN Attr   VSize   VFree
    examplegroup1   1   1   0 wz--n- <20.00g <13.00g
  7. 运行 lvextend 命令来扩展 LV:

    sudo lvextend -L 19G /dev/examplegroup1/lvexample1
  8. 运行 lvslvdisplay 命令查看 LV 详细信息:

     sudo lvs  

    输出示例:

    LV          VG             Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
    lvexample1  examplegroup1  -wi-a----- 19.00g
  9. 运行以下命令之一来扩展文件系统。
    Ext2Ext3Ext4 文件系统:

    sudo resize2fs /dev/examplegroup1/lvexample1

    xfs 文件系统:

    sudo yum install xfsprogs

将 EBS 卷添加到卷组

完成以下步骤:

  1. 创建另一个 10 GB 的 EBS 卷,然后将该卷附加到实例。

  2. /dev/xvdi 设备上创建分区。

  3. 运行 pvcreate 命令创建 PV。在以下示例中,卷的块设备名称为 /dev/xvdi1

    sudo pvcreate /dev/xvdi1

    输出示例:

    Physical volume "/dev/xvdi1" successfully created.
  4. 运行 vgextend 命令扩展卷组并添加新卷。以下示例扩展了 examplegroup1 卷组以包括 /dev/xvdi1 卷:

    sudo vgextend examplegroup1 /dev/xvdi1

    输出示例:

    Volume group "examplegroup2" successfully extended
  5. 运行 vgsvgdisplay 命令以确认扩展:

     sudo vgs  

    以下输出示例显示 examplegroup1 卷组中现在有两个 PV:

                           #PV #LV #SN Attr   VSize   VFree
    examplegroup1           2   1   0 wz--n-  29.99g   20.99g
  6. 运行 lvextend 命令来扩展 LV:

    sudo lvextend -L 29G /dev/examplegroup1/lvexample1
  7. 运行以下命令之一来扩展文件系统。
    Ext2Ext3Ext4 文件系统:

    sudo resize2fs /dev/examplegroup1/lvexample1

    XFS 文件系统:

    sudo xfs_growfs /dev/examplegroup1/lvexample1
AWS 官方已更新 8 个月前