EBS ボリュームに作成されたパーティションに LVM 論理ボリュームを作成する方法を教えてください。

所要時間4分
0

論理ボリュームマネージャ (LVM) を使用して、Amazon Elastic Block Store (Amazon EBS) ボリュームに作成されたパーティションに論理ボリューム (LV) を作成する方法を教えてください。

簡単な説明

LVM によって、ディスク容量を割り当てたり、論理ボリュームを削除したり、再ミラーリングしたり、サイズを変更したりできます。LVM を使用すると、1 つの EBS ボリュームまたは EBS ボリュームのセットを 1 つ以上の物理ボリュームに割り当てることができます。

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] コマンドを使用してパーティションを作成します。変数 [16 進コードまたは 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] コマンドを使用して、新しい物理ボリュームを結合するボリュームグループを作成します。次の例では、1 つの物理ボリュームを使用してボリュームグループ [examplegroup1] を作成しています。

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

[vgs] または [vgdisplay] を使用して、ボリュームグループの詳細を表示します。

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

論理ボリューム (LV) とマウントディレクトリの作成

1.    [lvcreate] コマンドを使用して、ボリュームグループから論理ボリューム (パーティション) を作成します。次の例では、[examplegroup1] ボリュームグループから 9 GB の論理ボリューム [lvexample1] を 1 つ作成します。

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

[lvs] または [lvdisplay] コマンドを使用して、論理ボリュームの詳細を表示します。

$ 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] ファイル内のタイプに置き換えます。

論理ボリュームの拡張

論理ボリュームを拡張する方法は2つあります。

  • オプション 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

[pvs] または [pvdisplay] を使用して、物理ボリュームの詳細を表示します。

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

[vgs] または [vgdisplay] を使用して、ボリュームグループの詳細を表示します。

$ 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

[lvs] または [lvdisplay] コマンドを使用して、論理ボリュームの詳細を表示します。

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

5.    ファイルシステムの拡張:

メモ:[/etc/fstab] エントリに正しいファイルシステムタイプを入力していることを確認してください。

[Ext2]、[Ext3]、[Ext4] のファイルシステム:

$ sudo resize2fs /dev/examplegroup1/lvexample1

[XFS] ファイルシステム:

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

オプション 2: EBS ボリュームをボリュームグループに追加する

1.    10 GB の [EBS ボリュームをもう1つ作成]し、インスタンスに[ボリュームをアタッチします。[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

拡張子を確認するには、[vgs] または [vgdisplay] コマンドを実行します。次の例は、[examplegroup1] ボリュームグループに 2 つの 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 ファイルシステムの手順に従ってください。

[Ext2]、[Ext3]、[Ext4] のファイルシステム:

$ sudo resize2fs /dev/examplegroup1/lvexample1

[XFS] ファイルシステム:

$ sudo xfs_growfs /dev/examplegroup1/lvexample1

関連情報

EBS ボリューム全体に LVM 論理ボリュームを作成する方法を教えてください。

AWS公式
AWS公式更新しました 2年前