Logical Volume Manager (LVM) は、Linuxでディスクパーティションを管理するために使用されるメカニズムです。 LVMは、ディスクとパーティションの上に論理レイヤーを追加して、より効率的で柔軟な方法でディスクパーティションを管理および操作できるようにします。 論理ボリューム (LV) のサイズは動的に調整できます。これにより、ディスク上のデータが失われることはありません。 インスタンスに新しいディスクを追加しても、既存のLVは変更されません。 このトピックでは、LVMを使用して複数のディスクにLVを作成する方法について説明します。 この例では、/dev/vdb
と /dev/vdc
という名前の2つの新しいディスクが使用されています。
次の図は、LVMのアーキテクチャを示しています。
LVMは、ディスクパーティションの柔軟な管理に役立ちますが、O&Mの複雑さを高めます。 分離のために複数のディスクを選択することもできます。 単一のディスクを分割する必要はありません。 詳細については、「rawディスクにファイルシステムを作成する」をご参照ください。 ディスクのサイズを変更できます。 詳細については、「概要」をご参照ください。
手順
ステップ1: 物理ボリューム (PV) の作成
ディスクを初期化せずに、2つのディスクを作成してターゲットインスタンスに接続します。
詳細については、「ディスクの作成」および「データディスクのアタッチ」をご参照ください。
ECSインスタンスに接続します。
接続方法の詳細については、「接続方法の概要」をご参照ください。
次のコマンドを実行してLVMをインストールします。
sudo yum install -y lvm2
次のコマンドを実行して、インスタンス上のすべてのディスクに関する情報を照会します。
lsblk
次のコマンド出力が返されると、インスタンス上のvdbディスクとvdcディスクをLVMで使用して、スケーラブルなLVを作成できます。
次のコマンドを実行して、ディスクからPVを作成します。 ディスクデバイス名を複数指定する場合は, デバイス名をスペースで区切ります。
sudo pvcreate <Disk device name> ... <Disk device name>
例:
/dev/vdb
および/dev/vdc
ディスクから2つのPVを作成するには、次のコマンドを実行します。sudo pvcreate /dev/vdb /dev/vdc
次のコマンド出力が返されると、PVが作成されます。
ステップ2: ボリュームグループの作成 (VG)
次のコマンドを実行してVGを作成します。
sudo vgcreate <VG name> <PV name> ... <PV name>
例:
/dev/vdb
および/dev/vdc
PVからvg_01という名前のVGを作成するには、次のコマンドを実行します。sudo vgcreate vg_01 /dev/vdb /dev/vdc
次のコマンド出力が返されると、VGが作成されます。
(オプション) 次のコマンドを実行して、既存のPVをVGに追加します。
sudo vgextend <VG name> <PV name> ... <PV name>
次のコマンドを実行して、VGに関する情報を照会します。
sudo vgs
次のコマンド出力が返されると、vg_01 VGが作成されます。 VGのサイズは80 GiB未満です。これは、ファイルシステムがVG内のストレージスペースを占有するためです。
ステップ3: LVの作成
次のコマンドを実行して、VGにLVを作成します。
sudo lvcreate -L <LV size> -n <LV name> <VG name>
<LVサイズ>: LVのサイズを指定します。 サイズは、LVを作成するVGの使用可能なスペースの量よりも小さくする必要があります。
<LV名>: LVの名前を指定します。 例:
lv01
<VG name>: ステップ2で作成したVGの名前を指定します。 例:
vg_01
例:
lv01
という名前でサイズが55 GiBのLVを作成するには、次のコマンドを実行します。sudo lvcreate -L 55g -n lv01 vg_01
次のコマンド出力が返されると、LVが作成されます。
(オプション) VGに複数のLVを作成するには、手順1を繰り返します。
ステップ4: ファイルシステムの作成とマウント
次のコマンドを実行して、LVのパスと名前、LVが属するVGなど、LVに関する情報を取得します。
sudo lvdisplay
LVパス: LVのパス。 例:
/dev/vg_01/lv01
LV名: LVの名前。 例:
lv01
VG Name: LVが属するVGの名前。 例:
vg_01
LVサイズ: LVのサイズ。 例: 55 GiB。
次のコマンドを実行して、LVにファイルシステムを作成します。
sudo mkfs.<File system format> <LV path>
ビジネス要件に基づいて特定の形式でファイルシステムを作成できます。 この例では、
/dev/vg_01/lv01
ディレクトリにあるLVにExt4
またはXFS
ファイルシステムが作成されています。Ext4ファイルシステムの作成
sudo mkfs.ext4 /dev/vg_01/lv01
XFSファイルシステムの作成
sudo mkfs.xfs /dev/vg_01/lv01
マウントポイントを作成します。 例:
/media/lv01
説明既存のマウントポイントを使用する場合は、この手順をスキップします。
sudo mkdir /media/lv01
次のコマンドを実行して、ファイルシステムをマウントポイントにマウントします。
sudo mount <LV path> <Mount point>
例: パスが
/dev/vg_01/lv01
であるLVを/media/lv01
ディレクトリにマウントするには、次のコマンドを実行します。sudo mount /dev/vg_01/lv01 /media/lv01
次のコマンドを実行して、LVがマウントされているかどうかを確認します。
df -h
次のコマンド出力が返されると、LVはディレクトリにマウントされます。 ファイルシステムはLV上のストレージスペースを占有します。
ステップ5: 起動時に自動的にマウントされるようにLVを設定する
起動時にLVを自動的にマウントするように設定するには、LVのマウント情報を /etc/fstab
ファイルに追加します。
次のコマンドを実行して、
etc/fstab
ファイルをバックアップします。sudo cp /etc/fstab /etc/fstab.bak
次のコマンドを実行して、LVのマウント情報を
/etc/fstab
ファイルに追加します。sudo sh -c "echo `blkid <Path of the LV> | awk '{print $2}' | sed 's/\"//g'` <Mount point of the LV> <File system type of the LV> defaults 0 0 >> /etc/fstab"
例: lv01 LVは
/dev/vg_01/lv01
パスにあり、Ext4
ファイルシステムがLVに作成されます。 起動時にlv01 LVが/media/lv01
ディレクトリに自動的にマウントされるように構成するには、次のコマンドを実行します。sudo sh -c "echo `blkid /dev/vg_01/lv01 | awk '{print $2}' | sed 's/\"//g'` /media/lv01 ext4 defaults 0 0 >> /etc/fstab"
次のコマンドを実行して、LVのマウント情報がファイルに追加されているかどうかを確認します。
cat /etc/fstab
次のコマンド出力が返されると、LVのマウント情報が
/etc/fstab
ファイルに追加されます。自動取り付け機能を確認します。
次のコマンドを実行して、
/etc/fstab
ファイルで構成されているすべてのファイルシステムを再マウントします。 エラーが報告されない場合、LVは指定されたマウントポイントにマウントされます。sudo mount -a
次のコマンドを実行して、LVのマウント情報を照会します。
df -Th
次のコマンド出力が返されると、特定のファイルシステムタイプのLVが指定されたディレクトリに再マウントされます。 自動取り付け機能が有効になります。
参考資料
LVのスペースが不足している場合は、次のいずれかの方法を使用してLVを拡張できます。
ECSコンソールでLVが作成されたディスクのサイズを変更します。 詳細については、「手順1: ディスクのサイズを変更して容量を拡張する」をご参照ください。
LVMを使用してLVを拡張します。詳細については、「LVMを使用したLVの拡張」をご参照ください。