手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 LVM の基本設定 – PV / VG / LV を構成する

関連する記事

LVM は、物理ディスクやパーティションを物理ボリュームとして扱い、ボリュームグループにまとめ、その上に論理ボリュームを作る仕組みです。Ubuntu 26.04 でローカルディスクを柔軟に扱う場合、後から容量を増やしやすい構成として LVM を使う場面があります。

この記事では、lvm2 の導入、ブロックデバイス確認、PV / VG / LV の作成、ファイルシステム作成、マウント、拡張、確認コマンドを扱います。ディスク初期化はデータ消失につながるため、対象デバイスを取り違えないことを最優先にします。

LVM の構成要素

  • PV: LVM が利用する物理ボリュームです。ディスクやパーティションを指定します。
  • VG: 複数の PV をまとめるボリュームグループです。
  • LV: VG の領域から切り出す論理ボリュームです。ファイルシステムやアプリケーションの保存先として使います。
  • PE: VG 内部で管理される割り当て単位です。通常は既定値で問題ありません。

前提条件

  • 対象デバイスが OS ディスクや既存データディスクではないことを確認していること。
  • 対象デバイスの用途、VG 名、LV 名、容量、マウント先を決めていること。
  • 既存ファイルシステムや既存 LVM メタデータの有無を確認していること。
  • 作業前に必要なバックアップを取得していること。
lsblk -f
sudo blkid
sudo pvs
sudo vgs
sudo lvs

lvm2 をインストールする

Ubuntu 26.04 では、LVM 操作に lvm2 パッケージを使います。

sudo apt update
sudo apt install -y lvm2

対象デバイスを確認する

以下では例として /dev/sdb を使います。実際の環境では、ディスク名が変わることがあります。lsblk -fblkid で対象を確認し、既存データがあるデバイスを初期化しないようにします。

lsblk -o NAME,TYPE,SIZE,FSTYPE,MOUNTPOINTS,MODEL,SERIAL
sudo blkid /dev/sdb || true
sudo wipefs -n /dev/sdb

PV を作成する

対象デバイスを LVM の物理ボリュームとして初期化します。この操作は対象デバイスの LVM メタデータを作成するため、対象を間違えないようにします。

sudo pvcreate /dev/sdb
sudo pvs
sudo pvdisplay /dev/sdb

VG を作成する

作成した PV を使ってボリュームグループを作成します。ここでは vg_data という名前にします。

sudo vgcreate vg_data /dev/sdb
sudo vgs
sudo vgdisplay vg_data

LV を作成する

VG から論理ボリュームを切り出します。ここでは lv_app という名前で 20 GiB の LV を作成します。容量を全量使い切らず、後から拡張できる余地を残す設計も有効です。

sudo lvcreate -n lv_app -L 20G vg_data
sudo lvs
sudo lvdisplay /dev/vg_data/lv_app

ファイルシステムを作成する

LV にファイルシステムを作成します。以下では ext4 を使います。既存ファイルシステムがある場合は上書きになるため、事前確認を必ず行います。

sudo blkid /dev/vg_data/lv_app || true
sudo mkfs.ext4 /dev/vg_data/lv_app
sudo blkid /dev/vg_data/lv_app

マウントして確認する

マウントポイントを作成し、手動マウントして動作を確認します。永続化する前に、読み書きできることと意図したファイルシステムであることを確認します。

sudo mkdir -p /srv/data/app
sudo mount /dev/vg_data/lv_app /srv/data/app
findmnt /srv/data/app
df -h /srv/data/app
sudo touch /srv/data/app/.lvm-test
sudo rm /srv/data/app/.lvm-test

fstab に登録する

再起動後も使う場合は /etc/fstab に登録します。デバイス名よりも UUID を使うと、デバイス名の変化に強くなります。

UUID=$(sudo blkid -s UUID -o value /dev/vg_data/lv_app)
sudo cp -a /etc/fstab /etc/fstab.bak.$(date +%Y%m%d%H%M%S)
printf '%s\n' "UUID=$UUID /srv/data/app ext4 defaults 0 2" | sudo tee -a /etc/fstab >/dev/null
sudo findmnt --verify --verbose

LV を拡張する

LVM の利点の一つは、VG に空きがあれば LV を拡張できることです。ext4 の場合は、LV 拡張後にファイルシステムも拡張します。縮小は難易度とリスクが高いため、ここでは扱いません。

sudo vgs
sudo lvextend -L +10G /dev/vg_data/lv_app
sudo resize2fs /dev/vg_data/lv_app
df -h /srv/data/app
sudo lvs

PV を追加して VG を拡張する

別ディスクを追加して VG の容量を増やす場合は、新しいデバイスを PV にしてから VG へ追加します。対象デバイスの確認は、初回作成時と同じく慎重に行います。

lsblk -f
sudo wipefs -n /dev/sdc
sudo pvcreate /dev/sdc
sudo vgextend vg_data /dev/sdc
sudo vgs

状態確認コマンド

LVM は階層があるため、PV、VG、LV、ファイルシステム、マウント状態を分けて確認します。

sudo pvs
sudo vgs
sudo lvs
lsblk -f
findmnt /srv/data/app
df -h /srv/data/app

運用時に確認する項目

  • 対象デバイスを取り違えていないこと。
  • VG に空き容量を残すか、全量割り当てるかを用途に合わせて決めていること。
  • LV 名とマウントポイントが用途から見て分かりやすいこと。
  • ファイルシステムの拡張手順を、使用するファイルシステムに合わせて確認していること。
  • 縮小やデバイス削除は、バックアップと停止手順を決めてから行うこと。

まとめ

Ubuntu 26.04 で LVM を使う場合は、対象デバイス確認、PV 作成、VG 作成、LV 作成、ファイルシステム作成、マウント、永続化の順に進めます。LVM は容量拡張に強い一方で、対象デバイスの取り違えや縮小操作の失敗が大きな障害につながるため、確認コマンドを挟みながら進めることが重要です。

関連する記事
Ubuntu 26.04 LVM の基本設定 – PV / VG / LV を構成する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る