Ubuntu で LVM を使う

Ubuntu環境でLVM (Logical Volume Manager) を利用する基本的な手順を解説します。LVMは、複数の物理ディスクやパーティションを仮想的に束ねて一つの大きなストレージプール(ボリュームグループ)を構成し、そこから必要なサイズの論理ボリュームを切り出して利用する技術です。これにより、物理ディスクの制約にとらわれず、ディスク容量の柔軟な拡張や縮小、スナップショット機能などを利用できます。

重要: LVMに関連する操作、特にディスクの初期化(物理ボリューム作成)やフォーマット、ボリューム構成の変更は、対象ディスク上のデータを完全に消去する可能性があります。操作対象のディスクやパーティション(例: /dev/sdc1)を間違えないよう十分に確認し、必要なデータは必ず事前にバックアップを取得してください。

前もって決めておく事項

LVM環境を構築する前に、以下の項目を計画しておくと作業がスムーズに進みます。

Ubuntu への LVM パッケージのインストール

LVMを使用するには、まず lvm2 パッケージが必要です。多くのUbuntu環境ではデフォルトでインストールされていますが、念のため確認・インストールします。

* GUI (Ubuntu Software) の場合:

  1. Ubuntu の「Ubuntu Software」を起動します。
  2. 検索バーに lvm2 と入力し、パッケージを検索します。
  3. lvm2 パッケージを選択し、「インストール」ボタンが表示されていればクリックしてインストールします。(既にインストール済みの場合は不要です)

* コマンドライン (CLI) の場合:

ターミナルを開き、以下のコマンドを実行してパッケージリストを更新し、lvm2 をインストールします。

sudo apt update
sudo apt install lvm2

1. 物理ボリューム (PV) の作成

最初に、LVMで使用する物理ディスクやパーティション(この例では /dev/sdc1, /dev/sdd1)をLVMが管理できる形式、すなわち物理ボリューム (Physical Volume, PV) として初期化します。

この時点では、作成されたPVはまだどのボリュームグループにも属していません。

* GUI の場合 (注意: 専用GUIツールの導入が必要な場合があります):

Ubuntu標準の「ディスク」ユーティリティではPV作成は直接行えません。system-config-lvm などの専用ツールを別途インストール (sudo apt install system-config-lvm) することでGUI操作が可能ですが、現在はCLIでの操作が一般的です。以下は system-config-lvm を想定した手順例です。

  1. 「システムツール」メニューなどから「論理ボリューム管理 (system-config-lvm)」を起動します。
  2. 左ペインの「初期化されていないエンティティ」などから、PVとして使用したいパーティション(例: /dev/sdc1)を選択します。
  3. 「ボリュームを初期化」や「作成する」といったボタンをクリックします。
  4. 同様に、他のパーティション(例: /dev/sdd1)も初期化します。
  5. 左ペインの「割り当てられていないボリューム」や「物理ボリューム」の一覧に、作成したPVが表示されることを確認します。

* コマンドライン (CLI) の場合:

以下の pvcreate コマンドを実行して、指定したパーティションをPVとして初期化します。

sudo pvcreate /dev/sdc1
sudo pvcreate /dev/sdd1

作成されたPVを確認するには、pvdisplay または pvs コマンドを実行します。

sudo pvdisplay
# または sudo pvs

2. ボリュームグループ (VG) の作成

次に、作成した一つまたは複数の物理ボリューム (PV) を束ねて、ボリュームグループ (Volume Group, VG) を作成します。VGは、論理ボリューム(LV)を作成するためのストレージプールとなります。ここではボリュームグループ名を sdcd とします。

* GUI の場合 (注意: 専用GUIツールの導入が必要な場合があります):

system-config-lvm を利用する場合の手順例です。

  1. 「論理ボリューム管理」ツールを起動します。
  2. 左ペインの「ボリュームグループ」セクションを右クリックし、「新しいボリュームグループの作成」を選択するか、左ペインの「割り当てられていないボリューム」からVGに含めたいPV(例: /dev/sdc1)を選び、「新しいボリュームグループの作成」をクリックします。
  3. ボリュームグループ名(例: sdcd)を入力します。
  4. グループに含めるPV(例: /dev/sdc1)を選択(チェックを入れるなど)します。
  5. 2つ以上のPVを使用する場合、作成後にVGを選択し、「物理ボリュームの追加」などの操作で2つ目以降のPV(例: /dev/sdd1)を追加します。(ツールによっては作成時に複数選択できる場合もあります)
  6. 左ペインの「ボリュームグループ」の一覧に新しいVG (sdcd) が表示され、含まれるPVが確認できることを確かめます。

* コマンドライン (CLI) の場合:

以下の vgcreate コマンドを実行して、指定したPV (/dev/sdc1, /dev/sdd1) を含むボリュームグループ sdcd を作成します。

sudo vgcreate sdcd /dev/sdc1 /dev/sdd1

作成されたVGの状態を確認するには、vgdisplay または vgs コマンドを実行します。

sudo vgdisplay sdcd
# または sudo vgs

3. 論理ボリューム (LV) の作成

ボリュームグループ (VG) というストレージプールの中に、実際にファイルシステムを作成してマウントするための領域である論理ボリューム (Logical Volume, LV) を作成します。ここではLV名を lvsdcd とし、ストライピング設定を行い、VGの全容量を使用します。

* GUI の場合 (注意: 専用GUIツールの導入が必要な場合があります):

system-config-lvm を利用する場合の手順例です。

  1. 左ペインで作成したボリュームグループ (sdcd) を選択します。
  2. 「論理ビュー」タブなどを選択し、「新しい論理ボリュームの作成」をクリックします。
  3. LV名(例: lvsdcd)、サイズ(例: 利用可能な最大サイズや指定サイズ)、ファイルシステムタイプ(後でフォーマットする場合は未指定でも可)、ストライピングなどの詳細設定(ツールが対応していれば)を行います。
  4. 「作成」や「OK」をクリックします。
  5. ボリュームグループ (sdcd) の下に、新しいLV (lvsdcd) が表示されることを確認します。

* コマンドライン (CLI) の場合:

以下の lvcreate コマンドを実行して、VG sdcd 内に論理ボリュームを作成します。

# --stripes 2: 2本のPVにデータを分散配置 (ストライピング) します。これにより、複数のディスクへの同時アクセスが可能になり、読み書き性能の向上が期待できます。PVが2つ以上必要です。
# --stripesize 512k: ストライプチャンクサイズを512KBに設定します。
# -l 100%VG: ボリュームグループ(VG) sdcd の空き容量の100%をこのLVに割り当てます。「-L サイズ[m|g|t]」で具体的なサイズ指定も可能です。
# -n lvsdcd: 作成するLVの名前を lvsdcd にします。
# sdcd: LVを作成する対象のVGの名前です。
sudo lvcreate --stripes 2 --stripesize 512k -l 100%VG -n lvsdcd sdcd

作成されたLVの状態を確認するには、lvdisplay または lvs コマンドを実行します。LVのデバイスパスは通常 /dev/VG名/LV名 (この例では /dev/sdcd/lvsdcd) または /dev/mapper/VG名-LV名 となります。

sudo lvdisplay /dev/sdcd/lvsdcd
# または sudo lvs

4. 論理ボリューム (LV) のフォーマットとマウント

作成した論理ボリューム (/dev/sdcd/lvsdcd) は、まだファイルシステムが存在しない単なるブロックデバイスです。使用するには、ファイルシステムでフォーマットし、ディレクトリにマウントする必要があります。

1. フォーマット:

ここでは Ext4 ファイルシステムでフォーマットします。コマンドラインでは mkfs.ext4 コマンドを使用します。

sudo mkfs.ext4 /dev/sdcd/lvsdcd

GUIツール(例: GNOME Disks (ディスク) や GParted)を使用してフォーマットすることも可能です。デバイスとして /dev/sdcd/lvsdcd または /dev/mapper/sdcd-lvsdcd を選択します。

2. マウント (参考):

フォーマット後、マウントポイントとなるディレクトリを作成し、そこにLVをマウントすることで、ファイルやディレクトリを作成できるようになります。(この手順はLVM自体の設定ではありませんが、利用までの流れとして示します)

# マウントポイント用ディレクトリを作成 (例: /mnt/lvm_data)
sudo mkdir /mnt/lvm_data

# 作成したディレクトリにLVをマウント
sudo mount /dev/sdcd/lvsdcd /mnt/lvm_data

# マウントされたことを確認
df -h /mnt/lvm_data

# OS起動時に自動マウントするには /etc/fstab に追記します
# (追記例: /dev/sdcd/lvsdcd /mnt/lvm_data ext4 defaults 0 2)
# UUIDで指定する方がより確実です (blkid コマンドでUUIDを確認)
# (追記例: UUID="xxxx-xxxx..." /mnt/lvm_data ext4 defaults 0 2)