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 を作成すると、ディスク上のすべてのデータが消去されます。 続行する前にデータをバックアップしてください。
-
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>を任意の名前 に、<target_device_name>をステップ 1 のデバイス名に置き換えます。sudo vgcreate <vg_name> /dev/<target_device_name>.../dev/<target_device_name>例:
vdbとvdcを使用して VGvg_01を作成するには、sudo vgcreate vg_01 /dev/vdb /dev/vdcを実行します。successfully createdを含む出力は、作成が成功したことを示します。 -
VG の空き領域を確認します。
sudo vgsを実行します。VFree列で残りの容量を確認します。sudo vgs
ステップ 3: LV の作成
-
LV を作成します。
sudo lvcreate -L <lv_size> -n <lv_name> <vg_name>例: VG
vg_01から LVlv01(55 GiB) を作成するには、sudo lvcreate -L 55g -n lv01 vg_01を実行します。パラメーター
説明
<lv_size>VG の空き領域を超えてはなりません。
<lv_name>新しい LV の任意の名前。
<vg_name>作成した VG の名前。
出力
Logical volume "<lv_name>" createdは、作成が成功したことを示します。 -
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 xfsprogs -
Debian と Ubuntu の場合:
sudo apt-get install -y xfsprogs
-
-
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>ステップ 3 の LV Path。
<mount point>/で始まる任意の空のディレクトリパス。 空でないディレクトリにマウントすると、その元の内容が非表示になり、サービスが中断されたり、元のファイルにアクセスできなくなったりする可能性があります。例:
/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の実行時に「Volume group "vg_01" has insufficient free space (23038 extents): 51200 required.」というエラーが表示されるのはなぜですか?原因:指定した LV サイズ (
-L <lv_size>) が VGvg_01の空き領域を超えているためです。解決策:
-
sudo vgsを実行し、VFreeの値をメモします。 -
利用可能な空き領域内のサイズを指定して、
lvcreateを再実行します。
-
関連ドキュメント
LV の領域が不足した場合は、lvextend を使用してLV を拡張します。