如何在 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-based 執行個體將磁碟區公開為 NVMe 裝置。區塊裝置名稱遵循模式 /dev/nvme1n1/dev/nvme2n1/dev/nvme3n1,依此類推。如果您使用的是 Nitro-based 執行個體,請使用適當的裝置名稱取代下列步驟中的裝置名稱。如需有關裝置命名的詳細資訊,請參閱 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 命令,將檔案系統掛載到您在上一個步驟中建立的 mount 目錄上:

$ sudo mount /dev/examplegroup1/lvexample1 /mnt1

2.    編輯 /etc/fstab 檔案中的掛載選項,讓新的掛載在重新開機後仍然存在。

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

**注意:**如果您的檔案系統類型不是 xfs,請以 /etc/fstab 檔案中的類型取代 xfs

擴充邏輯磁碟區

擴充邏輯磁碟區有兩個選項:

  • 選項 1: 增加現有 EBS 磁碟區的大小。
  • 選項 2: 將其他 EBS 磁碟區新增至您的磁碟區群組。

選項 1: 增加現有 EBS 磁碟區的大小

**注意:**增加現有磁碟區的大小時,磁碟區進入最佳化狀態時,大小變更通常會在數秒內生效。處於最佳化狀態時,磁碟區的效能會受到影響,但不會低於來源組態規格。視您的磁碟區類型而定,效能變更可能需要幾分鐘到幾小時。如需詳細資訊,請參閱監視磁碟區修改進度

1.    修改現有 EBS 磁碟區的大小。

2.    安裝生長部分實用程序:

$ sudo yum install cloud-utils-growpart

**注意:**使用以下命令在 Debian 或基於 UBUNTU 的系統上安裝成長部分實用程序:

$ 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 指令。下列範例顯示範例 group1 磁碟區群組中現在有兩個 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 年前