LVM 概要
従来の一般的なボリューム構成では、物理ボリュームにパーティションやRAID デバイスを作成し、それら物理的な環境をマウントしてファイルを保存する構成となっています。
そのため、物理的なデバイスパーティションやRAID デバイスは1対1の関係になります。
LVM では、次の図のように1個以上の物理デバイスから構成される論理的なデバイスを作成することにより、n対1 の関係でデバイス構成を作ることができるようになります。
それにより、1つの物理デバイスのキャパシティを超えた容量のデバイスを作成したり、論理デバイスの下で柔軟な物理RAID 構成を構築したりすることができるようになります。
物理デバイスは、例えばHDD のようなデバイスで、異なる物理的な複数のHDD を1 つの論理ボリュームとして使用することができるようになります。
そのため、物理ボリューム環境では1 つのボリュームで1 つのHDD 容量を越える容量のボリュームを作成することはできませんでしたが、論理ボリュームを使用することで複数の物理的なHDD の容量を合わせた大きさのボリュームを作成することができるようになります。
extent について
LVM では、データの区切りの単位をextent と呼びます(物理デバイスのブロックのような概念です)。
デフォルトでは1 extent は4 MiB で、物理extent と論理extent に分かれています。
物理extent は物理ボリューム上に割り当てられるextent で、論理extent は論理ボリューム上に割り当てられるextent となり、論理extent は物理extent を柔軟に割り当てることが可能になっています。
物理extent は通常、論理extent と1 対1 の関係でマッピングされます。
ミラーリングを使用することで、2 つ以上の物理extent を1 つの論理extent とマッピングすることができるようになります。
論理ボリュームグループと論理ボリュームについて
論理ボリュームは、論理ボリュームグループからパーティションを作成することで容量を割り当てられ、作成されます。
注意点として、論理ボリュームはraw デバイスとしては使用できない点に注意してください。
そのため、論理ボリュームはswap 領域のようなボリュームとして使用することはできません。
※LVM2 からできるようになった!?!?Fedora21 では、swap 領域にLVM が使用できている。
また、論理ボリュームとファイルシステムとの間に中間層を構築することも可能で、dm-crypt
を使用して暗号化ファイルシステムを作成することもできます。
また、連続するextent を異なる物理ボリュームで構成し、ストライピングすることでシーケンシャルリードの性能を向上させることも可能となります。
リサイズについて
論理ボリュームは論理extent を更に割り当てて論理ボリュームを拡張したり、論理extent の割り当てを解除することで論理ボリュームを縮小したりすることもできます。
論理ボリュームの容量の変更は、ext3, ext4 等のオンラインリサイズに対応しているファイルシステムが乗っている場合、アプリケーションの処理を阻害することなく行うことができます。
スナップショット
物理ボリュームと論理ボリュームは異なるボリュームグループをまたがって、共有することはできません(幾つかのボリュームマネージャ同じホスト上の異なるボリュームグループ間のデータの移行ができるものもあります)。
スナップショット機能は、オンライン、オフラインのボリュームグループを1 つの管理単位としてホスト間を転送できるようになります。
スナップショットは論理ボリュームのある時の状態を写真のように保持しておくもので、それを利用することにより、同じ論理ボリュームの2 つ以上のコピーを提供することができるようになります。