論理ボリュームマネージャー (LVM) を使用すると、データディスクまたはパーティションを、動的に拡張可能な単一のストレージプールにまとめることができます。
仕組み
論理ボリューム (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 Service (ECS) インスタンスにログインします。
-
ECS コンソール - インスタンスに移動します。上部メニューで、対象のリージョンとリソースグループを選択します。
-
対象のインスタンスの詳細ページに移動します。接続をクリックし、ワークベンチ を選択します。画面の指示に従ってログインし、ターミナルを開きます。
-
-
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 └─vdd1-
FSTYPE列が空でない場合、デバイスはすでに初期化されており、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>を指定し、ステップ 1 のデバイス名で<target_device_name>を置き換えます。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 の LVlv01を作成するには、次のコマンドを実行します:sudo lvcreate -L 55g -n lv01 vg_01。パラメーター
説明
<lv_size>VG の利用可能な空き容量より小さい必要があります。
<論理ボリューム名>新しい LV のカスタム名。
<ボリュームグループ名>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 パスは
/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 xfsprogs -
Debian および Ubuntu の場合:
sudo apt-get install -y xfsprogs
-
-
xfs ファイルシステムを作成します。
xfs ファイルシステムを作成します。
<lv_path>を、手順 3 で取得した LV パスに置き換えます。sudo mkfs -t xfs <lv_path>この例では、LV パスは
/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 パス。
<マウントポイント>/で始まる任意の空のディレクトリパス。空ではないディレクトリにマウントすると、元のコンテンツが非表示になり、サービスに支障をきたし、元のファイルにアクセスできなくなる可能性があります。たとえば、LV
/dev/vg_01/lv01を新しいディレクトリ/mnt/lv01にマウントするには、sudo mkdir /mnt/lv01 && sudo mount /dev/vg_01/lv01 /mnt/lv01を実行します。 -
ファイルシステムが正常にマウントされたかどうかを確認します。
sudo lsblkコマンドを実行します。対象デバイスのMOUNTPOINT列に値がある場合、ファイルシステムは正常にマウントされています。重要このマウントは一時的なもので、再起動後に失われます。再起動後もマウントが維持されるようにするには、 起動時の自動マウントを設定することを推奨します。
よくある質問
-
既存の VG に新しい PV を追加する方法
-
ECS インスタンスにログインします。
-
ECS コンソール - インスタンスに移動します。上部メニューで、対象のリージョンとリソースグループを選択します。
-
「インスタンス詳細」ページで、接続をクリックし、 ワークベンチを選択します。
-
-
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を実行してVFree列の値を確認し、VG の空き容量をチェックします。 -
利用可能な空き領域以下のサイズを指定して、
lvcreateコマンドを再実行してください。
-
関連ドキュメント
お使いの LV の容量が不足した場合、lvextend コマンドを使用してLV を拡張することができます。