【LVM完全マスター第4回】論理ボリューム(LV)作成とフォーマット!XFS/ext4の選び方と自動マウント完全攻略

巨大なプールから、必要な分だけ「部屋」を作ろう。

こんにちは!「LINUX工房」管理人の「リナックス先生」です。
前回までに、物理ディスク(PV)を束ねて、巨大なストレージプール(VG)を作成するところまで完了しました。

現在、あなたの手元には vg_storage という名前の、約70GBの広大な空き地があります。
しかし、このままではデータを入れることはできません。
この空き地を区切って、「Webサーバー用の部屋」「データベース用の部屋」といった具体的な区画(LV)を作る必要があります。

コウ君

先生、いよいよ仕上げですね!
VGからLVを切り出すってことは、普通のパーティションを切るのと同じ感覚ですか?
あと、フォーマットする時に「xfs」とか「ext4」とか出てきますけど、どっちを選べばいいかいつも迷うんです…。

リナックス先生

良い質問ね。
LVの切り出しはコマンド一発だけど、重要なのはその後の「フォーマット(ファイルシステム)」の選択よ。
ここで選択を間違えると、後で「縮小できない!」とか「ファイル数が多すぎて保存できない!」なんてトラブルになるわ。
今回は、プロが教えるファイルシステムの選び方と、再起動しても消えないマウント設定まで、徹底的に解説するわよ!

本記事では、LVM構築の最終ステップである「LV作成」「フォーマット」「マウント」を扱います。
これを乗り越えれば、ついにサーバーで大容量ディスクが使えるようになります。

📚 LVM完全マスター(全8回)目次

現在地:【第4回】論理ボリューム(LV)の切り出しとフォーマット


第1章:LV(論理ボリューム)とは? デバイス名の謎

LV(Logical Volume)は、LVMにおける「パーティション」に相当します。
ユーザーが実際にデータを読み書きするのは、このLVに対してです。

2つのデバイスファイル名

LVを作成すると、Linux上には2種類のパス(住所)が生成されます。
初心者が混乱しやすいポイントですが、どちらを使っても同じです。

  1. /dev/VG名/LV名
    (例:/dev/vg_storage/lv_data
    人間にとって分かりやすい形式(シンボリックリンク)。通常はこちらを使います。
  2. /dev/mapper/VG名-LV名
    (例:/dev/mapper/vg_storage-lv_data
    システム内部で使われる実体に近い名前。df コマンドなどで表示されるのはこちらが多いです。

第2章:LVを作成する「lvcreate」コマンド

それでは、VG(vg_storage)から、データ用のLV(lv_data)を切り出してみましょう。
コマンドは lvcreate です。

パターンA:サイズを具体的に指定する(-L)

「10GBの容量が欲しい」という場合は、大文字の -L オプションを使います。

sudo lvcreate -n lv_data -L 10G vg_storage
  • -n:LVの名前(Name)を指定。今回は lv_data
  • -L:サイズを指定(10G, 500M など)。
  • 最後に対象のVG名(vg_storage)を指定。

パターンB:VGの残り容量を全て使う(-l %FREE)

「残っている容量を全部割り当てたい!」という時に、いちいち計算するのは面倒ですよね。
そんな時は小文字の -l(エル)オプションと %FREE を使います。

sudo lvcreate -n lv_data -l 100%FREE vg_storage

これで、VGの余っている容量を1バイトも無駄にせず使い切ることができます。
「50%FREE」にすれば、残りの半分を使うことも可能です。

作成確認

作成したら lvs コマンドで確認しましょう。

sudo lvs

出力例:

  LV      VG         Attr       LSize  Pool Origin Data%
  lv_data vg_storage -wi-a----- 10.00g

ちゃんと10GBのLVが作成されていますね。


第3章:【重要】ファイルシステムの選択(XFS vs ext4)

LVができたら、次は「フォーマット」です。
Linuxには主に XFSext4 という2つのファイルシステムがあります。

「とりあえずデフォルトでいいや」と思っていませんか?
LVMを使う場合、この選択が将来の運命を左右します。

機能 XFS ext4
採用OS RHEL / AlmaLinux / CentOS (標準) Ubuntu / Debian (標準)
最大サイズ 16 ExaByte (超巨大) 1 ExaByte
拡大(Extend) 可能 (高速) 可能
縮小(Reduce) 不可 (絶対にできない) 可能
特徴 大容量・高負荷に強い。
並列処理が得意。
実績豊富で安定。
柔軟性が高い。

⚠️ 最大の落とし穴:「XFSは縮小できない」

ここがテストに出るレベルで重要です。
XFSでフォーマットした場合、後から「容量が余ったから少し減らして、別のLVに回そう」という操作(lvreduce)が一切できません
もし将来的に縮小する可能性があるなら、必ず ext4 を選んでください。

リナックス先生の推奨

  • DBサーバーや大規模ファイルサーバー: パフォーマンス重視で XFS
  • 汎用的なサーバーや学習用: 柔軟性の高い ext4 が無難。

今回は、柔軟性を重視して ext4 で進めます。


第4章:フォーマットの実践「mkfs」

ファイルシステムを作る(フォーマットする)コマンドは mkfs です。
(Make File Systemの略)

ext4でフォーマットする場合

sudo mkfs.ext4 /dev/vg_storage/lv_data

XFSでフォーマットする場合

sudo mkfs.xfs /dev/vg_storage/lv_data

実行すると、「Creating journal…」などの文字が流れ、数秒〜数十秒で完了します。
これで、ただの区画だったLVが、データを保存できる「ストレージ」になりました。


第5章:マウントと恒久設定「/etc/fstab」

最後の手順です。
Linuxでは、ディスクをディレクトリツリーのどこかに接続(マウント)しないと使えません。

1. マウントポイント(入口)の作成

データを置くためのディレクトリを作ります。
今回は /data というディレクトリにします。

sudo mkdir /data

2. 手動マウント(テスト)

まずはコマンドで一時的にマウントしてみます。

sudo mount /dev/vg_storage/lv_data /data

エラーが出なければ成功です。
df -h コマンドを打って、/data が表示されるか確認しましょう。

3. 自動マウント設定(fstab)

mount コマンドだけでは、サーバーを再起動するとマウントが解除されてしまいます。
再起動しても自動でマウントされるように、設定ファイル /etc/fstab を編集します。

ここでプロの技!「UUID」を使え!
fstabに /dev/sdb1 などのデバイス名を書くのは危険です(ディスクの接続順が変わると名前が変わるため)。
絶対に変わらない識別子である UUID を使いましょう。

手順A:UUIDを調べる

sudo blkid /dev/vg_storage/lv_data

出力例:
/dev/vg_storage/lv_data: UUID="1234-abcd-..." TYPE="ext4"
この UUID="1234-abcd-..." の部分(引用符の中身)をコピーします。

手順B:fstabを編集する

sudo nano /etc/fstab

ファイルの末尾に以下の行を追加します。

UUID=1234-abcd-5678-efgh  /data  ext4  defaults  0 0
  • 第1列:UUID(コピーしたもの)
  • 第2列:マウントポイント(/data)
  • 第3列:ファイルシステム(ext4 または xfs)
  • 第4列:オプション(通常は defaults)
  • 第5,6列:ダンプ・チェック設定(通常は 0 0)

手順C:設定テスト(超重要!)

書き間違えるとOSが起動しなくなります。
編集後は必ず以下のコマンドでテストしてください。

sudo mount -a

何もエラーが出なければOKです。
エラーが出た場合は、fstabの記述が間違っているので直してください。


第6章:もしLVを消したくなったら?「lvremove」

作成したLVが不要になった場合の削除手順も覚えておきましょう。
順番を間違えるとエラーになります。

  1. アンマウントする:
    sudo umount /data
  2. fstabから行を削除する:
    /etc/fstab を編集し、該当行を消します(これを忘れると次回起動しません!)。
  3. LVを削除する:
    sudo lvremove /dev/vg_storage/lv_data

「Do you really want to remove…」と聞かれるので y を押せば削除完了です。
空いた容量はVGに戻り、また別のLV作成に使えます。


第7章:トラブルシューティング Q&A

Q1. “write-protected” エラーでマウントできない

A. VGが「読み取り専用」になっている可能性があります。
トラブルなどでVGがロックされている場合、以下のコマンドで書き込み許可を与えてください。

sudo lvchange -p rw /dev/vg_storage/lv_data

Q2. fstabを書き間違えて起動しなくなった!

A. 落ち着いて「レスキューモード」へ。
Linux起動時にエラーで止まった場合、rootパスワードを入れてシェルに入ります。
その後、ルートファイルシステムを読み書きモードで再マウントします。

mount -o remount,rw /

その後、nano /etc/fstab で間違った行を修正(またはコメントアウト)して再起動すれば直ります。


まとめ:ついにLVM環境が完成!

お疲れ様でした!
第1回から第4回までの作業で、物理ディスクの追加から、LVMの構築、そして実際にデータを保存できる状態まで全て完了しました。

今回の成果物:

  • 物理ディスクを束ねたVG vg_storage がある。
  • そこから切り出したLV lv_data がある。
  • /data ディレクトリにマウントされ、再起動しても使える。
  • ファイルシステムは柔軟な ext4 を採用。

これで普通のサーバーとして使えますが、LVMの真価はここからです。
次回、第5回はいよいよ核心部分。
「稼働中にディスク容量を増やす(lvextend)」です。
サービスを止めることなく、コマンド一発で /data の容量を10GBから20GBに増やす魔法をお見せします。

LVMを学ぶ理由の全てがそこにあります。お楽しみに!

▼ エンジニアとしてのキャリアを加速させる ▼

LVMを実践練習
「VPS」で環境構築

おすすめVPSを見る

インフラ技術を仕事に
「ITエンジニア転職」

転職エージェントを見る

コメント