LVMの物理ボリュームが物理エクステントという等サイズのブロックに分割されているのは、そうすることでボリュームグループ(論理ボリュームに切り分けられる領域)の定義が、従来のパーティションのような「物理ドライブ上の物理的領域」から「物理エクステントの集まり」へと変わるからだ。ここでは「エクステントの集まり」といっているだけで、それらの物理的な場所については何も言及しておらず、ボリュームグループのサイズに関する制限もない。さまざまなドライブの物理エクステント(PE)を寄せ集めて1つのボリュームグループ(VG)にできるので、パーティションの概念を抽象化し、物理的なドライブの制約を取り除くことが可能になる。いったん作成したVGは、(別のVGからのエクステントの移動、または新たに追加した物理ボリュームのエクステントの利用によって)エクステントを追加するだけでサイズを増やせる。また、移動先の物理エクステントに対してデータの再配置を行うだけで、別の物理ストレージへの移し替えができる。何よりすばらしいのは、こうした操作がサーバを停止させずにその場で可能なことだ。
LVMの設定
意外なことに、(Ubuntuの)インストール時におけるLVMの設定はRAIDほど難しくない。LVMで使用する物理ドライブごとにパーティションの作成を行う点はRAIDの場合と同じだが、それらをLVM用の物理領域として指定する必要がある。ここでは、物理ボリューム(PV)が実際の物理的なハードディスクドライブではなく、作成したパーティションにあたることに注意してほしい。
ドライブ全体をLVMのパーティションに割り当てる必要はない。LVMで使用するストレージパーティションと、ファイルシステムが配置された本来のパーティションを共存させてもよい。ただし、先に進む前にパーティションの設定に問題がないか確認すること。インストーラがLVMの設定に入ると、LVM用のパーティションを含むすべてのドライブでパーティションレイアウトの変更ができなくなる。
以下では、4つのハードディスクドライブ(それぞれの容量は10、20、80、120GB)を持つサーバでの設定を想定する。各ドライブで利用可能なすべての領域を使ってLVM用パーティション、つまり物理ボリューム(PV)を作成したうえで、最初の2つのPVで30GBのボリュームグループ(VG)を、残り2つのPVで200GBのVGを作成するとしよう。各VGは仮想的なハードディスクドライブとして機能し、どちらにも通常のパーティションを作成するのと同じように論理ボリュームを作成できる。
RAIDの場合と同様、ドライブの名前を選択した状態でEnterキーを押すと、そのパーティションテーブルを消去できる。さらに「FREE SPACE」という項目を選択してEnterキーを押すと、物理ボリューム(LVM用の物理領域として使われるように設定されたパーティション)を作成できる。残り3つのLVM用パーティションも準備できたら、パーティショニングのメニューにある「Configure the Logical Volume Manager」(論理ボリュームマネージャの設定)を選択する。
すると、パーティションレイアウトに関する警告メッセージに続いて、ボリュームグループ(VG)と論理ボリューム(LV)の変更が行える簡素なLVM用ダイアログが現れる。ここでは、前者(VGの変更)を選択し、前述の想定に従って適切な物理ボリューム(PV)を組み合わせて必要な2つのVGを作成する。続いて「Modify Logical Volumes」(論理ボリュームの変更)を選択し、システムで必要になる標準的なパーティション群(「/」、「/var」、「/home」、「/tmp」など)に対応するLVを作成する。
LVMがパーティション設定の柔軟性向上につながることは、既におわかりいただけただろうか。たとえば「/var」に25GBを割り当てたければ、最初に作成したボリュームグループ(VG)から論理ボリュームを切り出せばよい。そうすれば、容量の小さいほうの2つのハードディスクドライブが「/var」に割り振られる。また、あとで「/var」の領域が大きすぎるとわかった場合には、最初のVGのストレージ領域の一部を2番目のVGに移すことができる。こうした柔軟性は数え上げればきりがない。
