如何在整个 EBS 卷上创建 LVM 逻辑卷?

上次更新时间:2020 年 6 月 24 日

如何使用逻辑卷管理器 (LVM) 在整个 Amazon Elastic Block Store (Amazon EBS) 卷上创建逻辑卷 (LV)?

简短描述

LVM 允许您分配磁盘空间和条带、重新镜像和调整逻辑卷的大小。使用 LVM,您可以将一个 EBS 卷或一组 EBS 卷分配给一个或多个物理卷。

要在 EBS 卷上使用 LVM 并扩展分区:

  1. 从您的 EBS 卷创建物理卷 (PV)。
  2. 创建一个卷组 (VG) 并将物理卷添加到该卷组。
  3. 在 LVM 上创建逻辑卷 (LV) 和挂载目录。
  4. 创建并挂载文件系统。
  5. 调整逻辑卷的大小。

注意:有关将 LVM 与基于 Nitro 的实例一起使用的更多信息,请参阅 Red Hat 客户门户网站上的第 11 章“LVM(逻辑卷管理器)”

解决方法

注意:如果您已在卷上创建并挂载 LVM 以供使用,请按照扩展逻辑卷中的说明开始操作。

从您的 EBS 卷创建物理卷

LVM 逻辑卷的底层物理存储单元是一个块储存设备,例如 EBS 卷的分区或整个 EBS 卷。您可以在单个 EBS 卷或多个 EBS 卷上创建 PV。

注意:基于 Nitro 的实例会将卷作为 NVMe 设备公开。块储存设备名称遵循模式 /dev/nvme1n1/dev/nvme2n1/dev/nvme3n1 等等。如果您使用的是基于 Nitro 的实例,请使用适当的设备名称替换以下步骤中的设备名称。有关设备命名的更多信息,请参阅设备名称注意事项

1.    打开 Amazon Elastic Compute Cloud 控制台

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

3.    使用 pvcreate 命令创建物理卷。以下示例使用一个卷 /dev/xvdf 来创建物理卷。

$ sudo pvcreate /dev/xvdf
  Physical volume "/dev/xvdf" successfully created.

使用 pvspvdisplay 命令查看物理卷详细信息:

$ sudo pvs
  PV         VG Fmt  Attr PSize  PFree 
  /dev/xvdf      lvm2 ---  10.00g 10.00g

创建卷组并将物理卷添加到该卷组

使用 vgcreate 命令创建一个卷组,以合并新的物理卷。以下示例使用一个物理卷创建卷组 Dock

$ sudo vgcreate Dock /dev/xvdf                     
  Volume group "Dock" successfully created

使用 vgsvgdisplay 查看新卷组的详细信息:

 

$ sudo vgs
  VG             #PV #LV #SN Attr   VSize  VFree 
  Dock           1   0   0 wz--n- <10.00g <10.00g

创建逻辑卷 (LV) 和挂载目录

1.    使用 lvcreate 命令从您的卷组创建逻辑卷(分区)。以下示例从 Dock 卷组创建一个 9GB 逻辑卷 station1

$ sudo lvcreate -n station1 -L 9G Dock
  Logical volume "station1" created.

使用 lvslvdisplay 命令查看逻辑卷详细信息:

$ sudo lvs
  LV          VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  station1   Dock -wi-a----- 9.00g 

2.    使用 mkdir 命令创建一个挂载目录。以下示例创建目录 /mnt1

$ sudo mkdir /dev/Dock/station1 /mnt1

创建并挂载文件系统

1.    使用以下命令创建文件系统并挂载分区以供使用:

运行 mkfs -t 命令以创建文件系统。注意:xfs 替换为您的文件系统类型(如果不同)。例如,ext2、ext3 或 ext4。

 

$ sudo mkfs -t xfs /dev/Dock/station1

运行 lsblk -f 命令以验证是否创建了新文件系统。注意:您在上一步中创建的文件系统类型将显示在 FSTYPE 下方。

$ lsblk -f
NAME                         FSTYPE      LABEL UUID                                   MOUNTPOINT
xvda                                                                                  
├─xvda1                                                                               
└─xvda2                      xfs               66e5e079-770e-4359-a9da-5205c3d8d5af   /
xvdf                         LVM2_member       YeDuj5-YHmY-U0Hx-xJyt-R1BP-SPIj-3uCcGF 
└─Dock-station1              xfs              Feiuj5-kH9Y-UxHx-zJ9t-R7cP-5PIY-7ugcuM     

运行 mount 命令以在上一步中创建的挂载目录下挂载文件系统。

$ sudo mount /dev/Dock/station1 /mnt1 

2.    编辑 /etc/fstab 文件中的挂载选项,以便在重启后新挂载仍然存在。

注意:/etc/fstab 条目中,将 xfs 替换为您的文件系统类型(如果不同)。

/dev/Dock/station1 /mnt1  xfs     defaults,nofail   0   0

扩展逻辑卷

您有两个用于扩展逻辑卷的选项:

  • 选项 1:增加现有 EBS 卷的大小。
  • 选项 2:将其他 EBS 卷添加到您的卷组。

注意:当增加现有卷的大小时,大小更改通常在卷进入优化状态后的几秒钟内生效。在优化状态下,卷的性能会受到影响,但不会低于源配置规范。根据您的卷类型,性能更改可能需要几分钟到几小时。有关更多信息,请参阅监控卷修改的进度

选项 1:增加现有 EBS 卷的大小

1.    修改现有 EBS 卷的大小

2.    运行 pvresize 命令以调整物理卷的大小:

$ sudo pvresize /dev/xvdf
  Physical volume "/dev/xvdf" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized 

使用 pvspvdisplay 查看物理卷详细信息:

$ sudo pvs
  PV         VG            Fmt  Attr PSize   PFree  
  /dev/xvdf  Dock          lvm2 a--  <20.00g <11.00g

使用 vgsvgdisplay 查看卷组详细信息:

$ sudo vgs
  VG            #PV #LV #SN Attr   VSize   VFree  
  Dock            1   1   0 wz--n- <20.00g <11.00g

3.    运行 lvextend 命令以扩展逻辑卷:

$ sudo lvextend -L 19G /dev/Dock/station1

使用 lvslvdisplay 命令查看逻辑卷详细信息:

$ sudo lvs
  LV        VG            Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  station1  Dock          -wi-a----- 19.00g                                  

4.    扩展文件系统:

注意:根据您的使用案例,请按照适用于 XFS 或 Ext2、Ext3 和 Ext4 文件系统的步骤执行操作。

Ext2、Ext3 和 Ext4 文件系统:

$ sudo resize2fs /dev/Dock/station1

XFS 文件系统:

$ sudo yum install xfsprogs
$ sudo xfs_growfs /dev/Dock/station1

选项 2:将其他 EBS 卷添加到卷组

1.    创建另一个 EBS 卷(大小为 10GB),然后将卷附加到实例。在以下示例中,该卷的块储存设备名称为 /dev/xvdi

$ sudo pvcreate /dev/xvdi

2.    使用 vgextend 命令扩展卷组并添加新卷。以下示例将卷组 Dock 扩展为包括卷 /dev/xvdi

$ sudo vgextend Dock /dev/xvdi
  Physical volume "/dev/xvdi" successfully created.
  Volume group "Dock" successfully extended

要确认扩展,请使用 vgsvgdisplay 命令。以下示例指明 Dock 卷组中现在有两个 PV。

$ sudo vgs
  VG            #PV #LV #SN Attr   VSize   VFree   
  Dock            2   1   0 wz--n-  29.99g   20.99g

3.    使用 lvextend 命令扩展逻辑卷:

$ sudo lvextend -L 29G /dev/Dock/station1

4.    调整文件系统的大小。

注意:根据您的使用案例,请按照适用于 XFS 或 Ext2、Ext3 和 Ext4 文件系统的步骤执行操作。

Ext2、Ext3 和 Ext4 文件系统:

$ sudo resize2fs /dev/Dock/station1

XFS 文件系统:

$ sudo xfs_growfs /dev/Dock/station1

这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?