LVM(Logical Volume Manager)は、Linuxにおけるストレージ管理の強力なツールであり、パーティションを柔軟に管理するために広く利用されています。LVMを使用することで、ディスクのサイズ変更や複数の物理ディスクの統合、ストレージの拡張などを容易に行うことができ、システムの柔軟性と拡張性が大幅に向上します。この記事では、LVMを使用して論理ボリューム(LV)の管理を行う方法を、初心者にも理解できるように、詳細かつ包括的に説明します。
LVMの基本概念
LVMを理解するためには、まず以下の主要なコンポーネントについて知っておく必要があります。
-
物理ボリューム(PV)
物理ボリュームとは、LVMで使用する物理的なストレージデバイス(例えば、ハードディスクやSSD)を指します。物理ボリュームは、LVMシステムに追加されたディスクやパーティションです。 -
ボリュームグループ(VG)
ボリュームグループは、複数の物理ボリュームを統合した論理的なストレージの集合体です。ボリュームグループ内の物理ボリュームから、論理ボリュームを作成するために必要なスペースを割り当てます。 -
論理ボリューム(LV)
論理ボリュームは、ボリュームグループから割り当てられたストレージ領域で、実際のデータを保存するための領域です。論理ボリュームは、ファイルシステムを作成してデータを格納することができます。 -
物理ボリュームグループ(PV-Groups)と論理ボリュームグループ(LV-Groups)
物理ボリュームは物理的なディスクを表し、論理ボリュームグループはその上に存在する柔軟な構造です。
LVMを使う利点としては、動的なサイズ変更、ストレージの拡張、バックアップやスナップショット機能があり、ディスクの管理が非常に柔軟になります。
LVMのセットアップ
以下はLVMのセットアップ手順です。
1. LVMのインストール
LVMがすでにインストールされている場合もありますが、インストールされていない場合は以下のコマンドでインストールします。
bashsudo apt update sudo apt install lvm2
2. 物理ボリュームの作成
LVMで使用するディスクまたはパーティションを物理ボリュームとして初期化します。ここでは/dev/sdb
というディスクを物理ボリュームに変換します。
bashsudo pvcreate /dev/sdb
物理ボリュームが作成されたかどうかは、以下のコマンドで確認できます。
bashsudo pvdisplay
3. ボリュームグループの作成
次に、物理ボリュームを使用してボリュームグループを作成します。例えば、vg_data
という名前のボリュームグループを作成します。
bashsudo vgcreate vg_data /dev/sdb
ボリュームグループが正しく作成されたことを確認するには、以下のコマンドを使用します。
bashsudo vgdisplay
4. 論理ボリュームの作成
ボリュームグループが作成されたら、その中に論理ボリュームを作成します。例えば、lv_data
という論理ボリュームを10GBのサイズで作成します。
bashsudo lvcreate -L 10G -n lv_data vg_data
作成された論理ボリュームを確認するには、次のコマンドを使用します。
bashsudo lvdisplay
5. ファイルシステムの作成
論理ボリュームが作成されたら、その上にファイルシステムを作成する必要があります。ここでは、ext4
ファイルシステムを作成します。
bashsudo mkfs.ext4 /dev/vg_data/lv_data
6. マウント
作成した論理ボリュームをマウントして使用できるようにします。まず、マウントポイントとなるディレクトリを作成します。
bashsudo mkdir /mnt/data
次に、論理ボリュームをマウントします。
bashsudo mount /dev/vg_data/lv_data /mnt/data
このマウントを永続的にするためには、/etc/fstab
にエントリを追加します。
bashecho '/dev/vg_data/lv_data /mnt/data ext4 defaults 0 0' | sudo tee -a /etc/fstab
LVMの管理
LVMでは、論理ボリュームやボリュームグループのサイズを動的に変更することができます。これにより、ディスクの容量を効率的に管理できます。
1. 論理ボリュームのサイズ変更
論理ボリュームのサイズを変更するには、まずサイズを変更したい論理ボリュームをアンマウントします。その後、サイズ変更を行います。
例えば、lv_data
のサイズを5GB増やす場合、以下のコマンドを使用します。
bashsudo lvextend -L +5G /dev/vg_data/lv_data
その後、ファイルシステムのサイズを変更します。
bashsudo resize2fs /dev/vg_data/lv_data
2. ボリュームグループの拡張
新しい物理ボリュームをボリュームグループに追加することもできます。例えば、/dev/sdc
という新しいディスクをvg_data
に追加する場合、以下のコマンドを使用します。
bashsudo vgextend vg_data /dev/sdc
ボリュームグループの状態を確認するには、以下のコマンドを使用します。
bashsudo vgdisplay vg_data
3. 論理ボリュームの削除
不要になった論理ボリュームを削除することも可能です。例えば、lv_data
を削除する場合、以下のコマンドを使用します。
bashsudo lvremove /dev/vg_data/lv_data
4. ボリュームグループの削除
ボリュームグループを削除するには、まずそのボリュームグループに含まれる全ての論理ボリュームを削除した後、以下のコマンドでボリュームグループを削除します。
bashsudo vgremove vg_data
LVMのバックアップと復元
LVMには、データのバックアップや復元をサポートする機能もあります。例えば、LVMスナップショットを作成することで、現在の状態をバックアップとして保存することができます。
1. スナップショットの作成
スナップショットは、論理ボリュームの状態を保存する方法です。例えば、lv_data
のスナップショットをlv_data_snapshot
という名前で作成する場合、以下のコマンドを使用します。
bashsudo lvcreate --size 1G --snapshot --name lv_data_snapshot /dev/vg_data/lv_data
2. スナップショットの削除
スナップショットが不要になった場合、削除することができます。
bashsudo lvremove /dev/vg_data/lv_data_snapshot
まとめ
LVMは、Linuxにおけるストレージ管理を非常に柔軟にしてくれるツールです。物理ボリューム、ボリュームグループ、論理ボリュームを組み合わせることで、ストレージのサイズ変更、拡張、バックアップなどを容易に行うことができます。システムの運用中にストレージの変更が必要になることが多いため、LVMの使用は非常に有益です。