🚀 Linuxストレージを柔軟に管理する: LVM, PV, VG, LVを完全にマスター!

皆さん、こんにちは!Linuxシステムを管理していると、ハードディスクの容量不足で困った経験、一度はありますよね?一度パーティションを設定してしまうと、後で変更するのが非常に難しいため、最初から容量を見積もるプレッシャーも感じます。😩

本日ご紹介するLVM(Logical Volume Manager)は、まさにこのような悩みを解決してくれる、非常に強力で柔軟なディスク管理ツールです。LVMを利用すれば、まるでレゴブロックを組み立てるように、ストレージ空間を自由に結合、分割、拡張することができます。

今回の投稿では、LVMの核となる概念であるPV、VG、LVとpvcreateコマンドについて、できるだけ分かりやすく説明していきます!


🤔 LVMとは何ですか?なぜ使用する必要があるのですか?

LVMはLogical Volume Managerの略で、複数のハードディスクやパーティションを一つの大きなストレージとして統合し、論理的な単位で柔軟に管理できるようにするカーネルの機能でありプログラムです。

従来のパーティション方式(例:/dev/sda1, /dev/sda2)を思い出してみましょう。この方式は、まるで一つの大きな石を彫刻して作品を作るようなものです。一度分割してしまうと、サイズを変更したり、他の断片と結合したりするのが非常に困難です。

一方、LVMは複数のレゴブロック(ハードディスク/パーティション)を集めて一つの大きなレゴ板(ストレージプール)を作り、その上で好きな大きさや形の作品(使用するパーティション)を自由に作るようなものです。必要であれば、後からブロックを追加してレゴ板を広げたり、作品のサイズを増やしたり減らしたりすることもできます!✨

このような柔軟性のおかげで、以下の利点があります。

  • 動的なパーティションサイズ調整: システム使用中でも、パーティション(論理ボリューム)のサイズを簡単に増やしたり減らしたりできます。
  • 複数ディスクの統合: 複数の物理ディスクを一つの大きなディスクのようにまとめて使用できます。
  • スナップショット機能: 特定時点のファイルシステムをそのままコピーしておくスナップショット機能により、安全なバックアップと復元が可能です。

🧱 ステップ1: 物理ボリューム(PV, Physical Volume)の作成

LVMの最も基本的な材料、それが物理ボリューム(PV, Physical Volume)です。

PV (Physical Volume)とは? LVMで使用できるように「準備された」物理的なハードディスク全体(/dev/sdb)またはディスク内のパーティション(/dev/sdb1)を指します。LVMの最小の物理単位であり、「レゴブロック」に相当します。

単にハードディスクを装着しただけでは、すぐにLVMの材料になるわけではありません。このディスク(またはパーティション)には、「これからLVMの材料として使用される」という「タグ」を付ける必要があります。

pvcreateコマンド: LVMの材料に変身!

この時に使用するコマンドが、まさにpvcreateです。

pvcreate とは? Physical Volume Createの略で、特定のディスクやパーティションにLVMで使用できるというメタデータ(タグ)を記録し、PV(物理ボリューム)として初期化するコマンドです。

使用法

# /dev/sdbディスク全体をPVとして作成
$ pvcreate /dev/sdb

# /dev/sdc1パーティションをPVとして作成
$ pvcreate /dev/sdc1

このコマンドを実行すると、該当するディスクやパーティションはLVMの材料、つまりPVになります。pvsやpvdisplayコマンドで、現在システムにどのようなPVがあるかを確認できます。


📦 ステップ2: ボリュームグループ(VG, Volume Group)にまとめる

これで複数のレゴブロック(PV)が準備できました。次のステップは、これらのブロックを一つに集めて大きなレゴ板(ストレージプール)を作ることです。これがボリュームグループ(VG, Volume Group)です。

VG (Volume Group)とは? 一つ以上のPV(物理ボリューム)が集まって作られた巨大な統合ストレージプール(Pool)です。VGがあって初めて、ユーザーは希望するサイズの空間を割り当てることができます。

例えば、1TB容量のPV 2つと500GB容量のPV 1つをmy_storageという名前のVGにまとめると、合計2.5TBの巨大な単一ストレージ空間が生まれます。VGの最大の利点は、後から新しいPVを追加して容量を簡単に拡張(vgextend)できる点です。

vgcreateコマンドでVGを作成できます。

# '/dev/sdb'と'/dev/sdc1'をまとめて'vg_data'という名前のボリュームグループを作成
$ vgcreate vg_data /dev/sdb /dev/sdc1

🏠 ステップ3: 論理ボリューム(LV, Logical Volume)の割り当て

巨大なレゴ板(VG)が作成されたので、いよいよユーザーが実際に使用する作品(パーティション)を作る番です。これを論理ボリューム(LV, Logical Volume)と呼びます。

LV (Logical Volume)とは? VG(ボリュームグループ)というストレージプールから必要なだけの容量を割り当てられて作成された論理的なパーティションです。ユーザーはこのLVをフォーマットし、マウントして実際のデータを保存する空間として使用します。

home、data、backupなど、用途に合わせて様々なサイズのLVを、VGが許容する容量内で自由に作成できます。

lvcreateコマンドでLVを作成します。

# 'vg_data'ボリュームグループから10GBサイズの'lv_webdata'という論理ボリュームを作成
$ lvcreate -L 10G -n lv_webdata vg_data

このように作成されたLVは、/dev/vg_data/lv_webdataのようなパスでアクセスでき、mkfs.xfsやmkfs.ext4のようなコマンドでフォーマットした後、任意のディレクトリにマウントして使用します。


✨ まとめ

LVMの動作方式をもう一度要約してみましょうか?

  1. pvcreate: ハードディスクやパーティションをLVM材料(PV)として作成します。🧱
  2. vgcreate: 準備されたPVを集めて大きなストレージプール(VG)を作成します。📦
  3. lvcreate: VGから必要なだけ空間を割り当てて、ユーザーが使用するパーティション(LV)を作成します。🏠
  4. フォーマットおよびマウント: 作成されたLVをフォーマットし、ディレクトリに接続して使用します。🚪

LVMは最初は少し複雑に見えるかもしれませんが、その構造を理解すれば、Linuxストレージ管理がはるかに自由で便利になります。もうパーティション容量の心配に縛られず、LVMで柔軟で強力なストレージ環境を構築してみてください!


タグ: LVM, Linux, PV, VG, LV, pvcreate, Logical Volume Manager, ストレージ, Linux, パーティション管理


Comments

コメントを残す

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