●LVM (Logical Volume Manager)
物理的な記憶デバイスの領域複数まとめてひとつの大きな仮想的な領域とし、そこから仮想的なパーティション領域を切り出すことで、従来の物理的なパーティションを用いた方法よりも柔軟に記憶領域を管理することができるようにする仕組み。
LVM を構成する手順:
- fdisk コマンドによる LVM 用パーティションの作成
- pvcreate コマンドによる PV の作成
- vgcreate コマンドによる VG の作成
- lvcreate コマンドによる LV の作成
- mkfs コマンドによるファイルシステムの作成
- ファイルシステムのマウント
LV のデバイスファイルは /dev/VG名/LV名 。
作成した LV を実際に使うためには、このデバイスファイルを指定してファイルシステムを作成し、マウントを行い
●物理ボリューム (PV):物理的なハードディスクやパーティション
ボリュームグループ (VG):物理ボリュームを集めて作る、仮想的な領域
論理ボリューム (LV):ボリュームグループの一部(または全部)を使って作る、仮想的なパーティション。従来のパーティションと同じように、この論理ボリューム上にファイルシステムを作って利用可能
●物理エクステント (PE)
LVM による領域管理の最小単位。物理ボリュームはこの物理エクステントの集合として管理され、論理ボリュームもこれを単位として作成される
■物理ボリューム (PV) 関係のコマンド
・pvcreate PVを作成
・pvremove PVを削除
・pvmove PVのないようを移動
・pvdisplay PVの情報を表示
■ボリュームグループ (VG) 関係のコマンド
・vgcreate VGを作成
・vgremove VGを削除
・vgextend VGniPVを追加
・vgreduce VGからPVを削除
・vgdisplay VGの情報を表示
・vgrename VGの名前を変更
・vgchange VGの有効化/無効化、VGのパラメータ変更
■論理ボリューム (LV) 関係のコマンド
・lvcreate LVを作成
・lvremove LVを削除
・lvextend LVを拡張
・lvreduce LV縮小
・lvdisplay LVの情報を表示
・lvrename LVの名前を変更
・lvchange LVの有効化/無効化、VGのパラメータ変更
▲論理ボリューム (LV) を縮小するコマンドは lvreduce 。
元のサイズ以下の任意のサイズに領域を縮小することができます。
また、その際にアンマウントやシステムの再起動は必要ありません。
ただし、lvreduce で LV を縮小する際、その LV 上に構築されているファイルシステムのサイズまで自動的に縮小されるわけではありません。
LV を縮小した結果、LV 上のファイルシステムのサイズより小さくなると、データが破損してしまいます。
ext2/ext3/ext4 であれば resize2fs、ReiserFS であれば resize_reiserfs、 XFS では xfs_growfs コマンドを利用して、事前に縮小後の LV サイズに合わせてファイルシステムも縮小しておく必要があります。
●lvcreate コマンド
書式:lvcreate [オプション] ボリュームグループ名
・-L 続けてボリュームサイズを指定
・-n 続けてボリューム名を指定
・-sスナップショットを作成
※スナップショットは、ある瞬間の論理ボリュームの状態を記録しておくことができる機能で、差分を利用した仕組み。
スナップショットが作成されていると、元ボリュームに対する変更内容が監視され、必要に応じてスナップショット領域にデータが移されます。
例えば、元ボリュームのあるファイルに変更が加えられた場合は、そのファイルの変更直前コピーをスナップショット領域に保存。
こうすることで、スナップショット領域は元ボリュームのデータのうち、スナップショット作成後に変更があったものだけを保持すればよいことになり、容量を節約することができます。
ただし、スナップショットを作成したままにしておくと、その後も変更点の監視がずっと続き、また変更点がスナップショット領域に蓄積され続けてしまいます。
これはパフォーマンスに響きますので、スナップショットは不要になった際にきちんと削除しておかなければならない。
●lvm.conf(LVMボリュームの検索フィルタ)
上記のように作成されるLVMのボリュームですが、システム起動時にどの物理ブロックデバイスをLVMボリュームとして検索対象とするかを、正規表現を用いて指定することができます。ボリューム検索にはvgscanというVGを検索するコマンドが動作しますが、これに対するフィルタをlvm.confに記載することになる