論理ボリュームマネージャー (LVM) を使用すると、データディスクまたはパーティションを 1 つのストレージプールに結合して、動的に拡張できます。
仕組み
論理ボリューム (LV) の作成には、主に 4 つのステップがあります。
物理ボリュームの作成 (pvcreate): LVM で使用するデータディスクをマークします。
ボリュームグループの作成 (vgcreate): マークされた物理ボリューム (PV) をストレージプールに結合します。
LV の作成 (lvcreate): ボリュームグループ (VG) から特定のサイズの論理パーティションを切り出します。
ファイルシステムの作成とマウント (mkfs & mount): LV のファイルシステムとマウントポイント (アクセスパス) を作成します。
図に示すように、2 つの 40 GiB データディスク (/dev/vdb と /dev/vdc) が PV として初期化され、vg_01 という名前の VG に追加されて、80 GiB のストレージプールを形成します。その後、プールから lv01 という名前の 55 GiB の LV が切り出されて使用されます。
手順
ステップ 1: PV の作成
PV を作成すると、データディスク上のすべてのデータが消去されます。データディスクが空であるか、必要なすべてのデータをバックアップしていることを確認してください。
Elastic Compute Server (ECS) インスタンスにログインします。
ECS console - Instance に移動します。上部のナビゲーションバーで、対象のリージョンとリソースグループを選択します。
対象インスタンスの詳細ページに移動します。[接続] をクリックし、[Workbench] を選択します。画面の指示に従ってログインし、ターミナルを開きます。
LVM ツールをインストールします。
Alibaba Cloud Linux および CentOS
sudo yum install -y lvm2Debian および Ubuntu
sudo apt-get install -y lvm2対象のデバイス名を見つけるには、
sudo lsblk -fコマンドを実行します。sudo lsblk -fNAME FSTYPE LABEL UUID MOUNTPOINT vda ├─vda1 ├─vda2 vfat 7938-FA03 /boot/efi └─vda3 ext4 root 33b46ac5-7482-4aa5-8de0-60ab4c3a4c78 / vdb vdc vdd └─vdd1FSTYPE列が空でない場合、デバイスはすでに初期化されており、PV として使用することはできません。FSTYPE列が空の場合:デバイスにパーティションがない場合、対象デバイス名はデバイス名と同じです。この例では、データディスク
vdbの対象デバイス名はvdbであり、データディスクvdcの場合はvdcです。デバイスにパーティションがある場合、対象デバイス名は目的のパーティションの名前です。この例では、データディスク
vddの対象デバイス名はvdd1です。
PV を作成します。
デバイス名はスペースで区切ります。
<target_device_name>を前のステップで見つけたデバイス名に置き換えます。sudo pvcreate /dev/<target device name>.../dev/<target device name>たとえば、
vdbとvdcを対象デバイスとして使用するには、sudo pvcreate /dev/vdb /dev/vdcを実行します。このコマンドは 2 つの 40 GiB PV を作成します。successfully createdを含む出力は、操作が成功したことを確認します。
ステップ 2: VG の作成
VG を作成します。
カスタムの
<vg_name>を指定し、<target_device_name>をステップ 1 のデバイス名に置き換えます。sudo vgcreate <vg_name> /dev/<target device name>.../dev/<target device name>たとえば、
vg_01という名前の VG を作成し、それにvdbとvdcを追加するには、sudo vgcreate vg_01 /dev/vdb /dev/vdcを実行します。出力に
successfully createdが含まれている場合、VG は正常に作成されています。VG の空き領域を確認します。
sudo vgsコマンドを実行します。VFree列の値をメモします。これは、残りの利用可能な容量を示します。sudo vgs
ステップ 3: LV の作成
LV を作成します。
sudo lvcreate -L <lv_size> -n <lv_name> <vg_name>たとえば、VG
vg_01から 55 GiB のサイズでlv01という名前の LV を作成するには、sudo lvcreate -L 55g -n lv01 vg_01を実行します。パラメーター
説明
<lv_size>VG の利用可能な空き領域よりも小さくする必要があります。
<lv_name>新しい LV のカスタム名。
<vg_name>作成した VG の名前。
出力が
Logical volume "<lv_name>" createdの場合、LV は正常に作成されています。LV 情報を表示します。
sudo lvdisplayコマンドを実行します。LV Pathをメモします。後でファイルシステムを作成するときに必要になります。sudo lvdisplay--- Logical volume --- LV Path /dev/vg_01/lv01 LV Name lv01 VG Name vg_01 LV UUID NgcCdz-efSY-vCrm-E35b-Dg6p-LNYq-xxxxxx LV Write Access read/write LV Creation host, time iZbp13kehgn0kh64txxxxxx, 2025-09-15 16:57:21 +0800 LV Status available # open 0 LV Size 55.00 GiB Current LE 14080 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:0この例では、
lv01のLV Pathは/dev/vg_01/lv01です。
ステップ 4: ファイルシステムの作成とマウント
ファイルシステムを作成します。
ext4 ファイルシステムは、xfs よりも小さいファイルの処理に適しています。
ext4
ext4 ファイルシステムを作成します。
<lv_path>をステップ 3 で取得した LV Path に置き換えます。sudo mkfs -t ext4 <lv_path>この例では、LV Path は
/dev/vg_01/lv01なので、sudo mkfs -t ext4 /dev/vg_01/lv01を実行します。作成を検証します。
sudo lsblk -fを実行します。対象デバイスのFSTYPEがext4の場合、セットアップは成功です。
xfs
xfsprogs ツールをインストールします。
Alibaba Cloud Linux および CentOS の場合:
sudo yum install -y xfsprogsDebian および Ubuntu の場合:
sudo apt-get install -y xfsprogs
xfs ファイルシステムを作成します。
xfs ファイルシステムを作成します。
<lv_path>をステップ 3 で取得した LV Path に置き換えます。sudo mkfs -t xfs <lv_path>この例では、LV Path は
/dev/vg_01/lv01なので、sudo mkfs -t xfs /dev/vg_01/lv01を実行します。作成を検証します。
sudo lsblk -fを実行します。対象デバイスのFSTYPEがxfsの場合、セットアップは成功です。
マウントポイントを作成し、ファイルシステムをマウントします。
sudo mkdir <mount point> && sudo mount <lv_path> <mount point>パラメーター
説明
<lv_path>LV を作成したときに取得した LV Path。
<mount point>/で始まるカスタムの空のディレクトリパス。空でないディレクトリにマウントすると、元のコンテンツが非表示になり、サービスが中断されたり、元のファイルにアクセスできなくなったりする可能性があります。たとえば、
/dev/vg_01/lv01の LV を新しいディレクトリ/mnt/lv01にマウントするには、sudo mkdir /mnt/lv01 && sudo mount /dev/vg_01/lv01 /mnt/lv01を実行します。ファイルシステムが正常にマウントされているかどうかを確認します。
sudo lsblkコマンドを実行します。対象デバイスのMOUNTPOINT列に値がある場合、ファイルシステムは正常にマウントされています。重要このマウントは一時的なものであり、再起動後に失われます。再起動後もマウントが維持されるようにするには、起動時の自動マウントを設定することをお勧めします。
よくある質問
既存の VG に新しい PV を追加するにはどうすればよいですか?
ECS インスタンスにログインします。
ECS console - Instance に移動します。上部のナビゲーションバーで、対象のリージョンとリソースグループを選択します。
インスタンスの詳細ページで、[接続] をクリックし、[Workbench] を選択します。
PV と VG の情報を表示します。
PV を表示します。
sudo pvdisplayを実行します。PV Nameフィールドから PV 名を見つけて記録します。既存の VG を表示します。
sudo vgsを実行します。VGフィールドから VG 名を見つけて記録します。
他の作成済み PV を追加します。
<vg_name>と<pv_name>を前のステップの情報に置き換えます。sudo vgextend <vg_name> <pv_name>...<pv_name>
ツールのインストール時に "404 Not Found" エラーが発生するのはなぜですか?
原因: このエラーは、CentOS 6 および Debian 9/10/11 がサポート終了 (EOL) に達し、デフォルトのパッケージリポジトリがアクティブでなくなったために発生します。
解決策: システムのリポジトリソースを更新して、公式のアーカイブサーバーを指すようにする必要があります。ソースを更新した後、インストールコマンドを再度実行できます。
CentOS 6 の場合は、ガイドに従ってCentOS リポジトリソースを切り替えます。
Debian 9/10/11 の場合は、ガイドに従ってDebian リポジトリソースを切り替えます。
再起動後に LV のマウント情報が失われるのはなぜですか、また、どうすれば修正できますか?
原因: ボリュームは手動でマウントされましたが、そのエントリが
/etc/fstabファイルに追加されていませんでした。このファイルは、起動時に自動的にマウントされるファイルシステムを管理します。解決策:
まず、ステップ 4 で説明されているように、ファイルシステムがまだマウントされていない場合は、再度手動でマウントします。
マウントを永続的にするには、ボリュームのエントリを
/etc/fstabファイルに追加して、起動時の自動マウントを設定する必要があります。
lvcreateの実行時に、LV の作成中に「Volume group "vg01" has insufficient free space (23038 extents): 51200 required.」というエラーが表示されるのはなぜですか?原因: このエラーは、新しい LV に指定したサイズ (
-L <lv_size>) がvg_01の利用可能な空き領域よりも大きいことを意味します。解決策:
sudo vgsを実行して VG の利用可能な領域を確認し、VFree列の値をメモします。利用可能な空き領域以下のサイズで
lvcreateコマンドを再実行します。
リファレンス
LV の領域が不足した場合は、lvextend コマンドを使用して LV を拡張できます。