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

4 分钟阅读
0

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

简短描述

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

要在 EBS 卷上使用 LVM 并扩展分区,请按照以下步骤进行操作:

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

解决方法

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

在 EBS 卷的分区上创建物理卷

LVM 逻辑卷的底层物理存储单元是块设备,例如 EBS 卷的分区或者整个 EBS 卷。

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

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

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

3.    使用 gdisk 命令创建分区。对于变量的十六进制代码或 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.

使用 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

4.    使用 pvcreate 命令从分区创建物理卷。以下示例从 /dev/xvdh1 创建物理卷:

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

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

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

$ sudo vgcreate examplegroup1 /dev/xvdh1    
  Volume group "examplegroup1" successfully created

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

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

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

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

$ sudo lvcreate -n lvexample1 -L 9G examplegroup1
  Logical volume "lvexample1" created

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

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

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

$ sudo mkdir /mnt1

创建和挂载文件系统

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

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

$ sudo mkfs -t xfs /dev/examplegroup1/lvexample1

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

$ 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

运行 mount 命令将文件系统挂载到您在上一步中创建的挂载目录上:

$ sudo mount /dev/examplegroup1/lvexample1 /mnt1

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

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

**注意:**如果文件系统类型不是 xfs,请将 xfs 替换为 /etc/fstab 文件中的类型。

扩展逻辑卷

扩展逻辑卷有两种方法:

  • 方法 1: 增加现有 EBS 卷的大小。
  • 方法 2: 向卷组添加其他 EBS 卷。

方法 1: 增加现有 EBS 卷的大小

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

1.    修改现有 EBS 卷的大小

2.    安装 growpart 实用程序:

$ sudo yum install cloud-utils-growpart

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

$ sudo apt install -y cloud-guest-utils

3.    运行 growpart 命令以扩展分区,然后运行 pvresize 命令以调整 PV 的大小。在以下示例中,分区 /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

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

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

$ sudo pvs
  PV         VG            Fmt  Attr PSize   PFree
  /dev/xvdh1 examplegroup1 lvm2 a--  <20.00g <13.00g

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

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

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

$ sudo lvextend -L 19G /dev/examplegroup1/lvexample1

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

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

5.    扩展文件系统:

**注意:**确保在 /etc/fstab 条目中输入正确的文件系统类型。

Ext2Ext3Ext4 文件系统:

$ sudo resize2fs /dev/examplegroup1/lvexample1

XFS 文件系统:

$ sudo yum install x    rogs
$ sudo xfs_growfs /dev/examplegroup1/lvexample1

方法 2: 向卷组添加其他 EBS 卷

1.    创建另一个 10 GB 的 EBS 卷,然后将该卷附加到该实例。按照在 EBS 卷的分区上创建物理卷_的步骤 3,在设备 /dev/xvdi 上创建分区。_然后运行 pvcreate 命令。在以下示例中,卷的块设备名称为 /dev/xvdi1

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

2.    使用 vgextend 命令扩展卷组并添加新卷。以下示例扩展了卷组 examplegroup1 以包括卷 /dev/xvdi1

$ sudo vgextend examplegroup1 /dev/xvdi1
  Volume group "examplegroup2" successfully extended

要确认扩展,请运行 vgsvgdisplay 命令。以下示例显示 examplegroup1 卷组中现在有两个 PV:

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

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

$ sudo lvextend -L 29G /dev/examplegroup1/lvexample1

4.    调整文件系统大小:

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

Ext2Ext3Ext4 文件系统:

$ sudo resize2fs /dev/examplegroup1/lvexample1

XFS 文件系统:

$ sudo xfs_growfs /dev/examplegroup1/lvexample1

相关信息

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

AWS 官方
AWS 官方已更新 2 年前