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

所要時間4分
0

Logical Volume Manager (LVM) を使用して Amazon Elastic Block Store (Amazon EBS) ボリュームのパーティションに LV を作成したいです。

解決策

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 と入力します。変数 [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.
  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 を組み合わせたボリュームグループを作成します。次の例では、1 つの PV を使用して examplegroup1 というボリュームグループを作成しています。

    sudo vgcreate examplegroup1 /dev/xvdh1

    出力例:

    group "examplegroup1" successfully created
  2. vgs または vgdisplay コマンドを実行し、ボリュームグループの詳細を表示します。

    sudo vgs

    出力例:

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

LV とマウントディレクトリを作成する

次の手順を実行します。

  1. lvcreate コマンドを実行し、ボリュームグループから LV を作成します。次の例では、ボリュームグループ examplegroup1 から、lvexample1 という単一の 9 GB の LV を作成しています。

    sudo lvcreate -n lvexample1 -L 9G examplegroup1

    出力例:

    volume "lvexample1" created
  2. lvs または lvdisplay コマンドを実行し、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. pvs または pvdisplay コマンドを実行し、PV の詳細を確認します。

    sudo pvs

    出力例:

    PV         VG            Fmt  Attr PSize   PFree
    /dev/xvdh1 examplegroup1 lvm2 a--  <20.00g <13.00g
  6. vgs または vgdisplay コマンドを実行し、ボリュームグループの詳細を表示します。

    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. lvs または lvdisplay コマンドを実行し、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 ボリュームをもう 1 つ作成し、インスタンスにボリュームをアタッチします。

  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. vgs コマンドまたは vgdisplay コマンドを実行し、拡張を確認します。

     sudo vgs  

    次の出力例は、examplegroup1 ボリュームグループに 2 つの 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