Linux Kernel 2.4 Documentation:
/usr/src/linux/Documentation/LVM-HOWTO
LVM-HOWTO
Heinz Mauelshagen の LVM (Logical Volume Manager) howto。
[プレインテキスト版]
- 原著作者: Heinz Mauelshagen <mauelshagen@sistina.com>
- 翻訳者: 井上 秀 <inoue@mxg.nes.nec.co.jp>
- バージョン: 2.4.19
- 翻訳日時: 2002/10/22
Heinz Mauelshagen の LVM (Logical Volume Manager) howto。 1999年 10月 2日
要約:
-----
LVM は一種の仮想ディスクや仮想パーティションといった概念を Linux
オペレーティングシステムに追加するものです。
この LVM によって、物理的な周辺機器とカーネルに実装されている
I/O インタフェースとの間にレイヤを追加します。
LVM を使うと、物理エクステント (Physical Extent、PE) と呼ばれるユニットを
アロケートすることにより、いくつかのディスクパーティション、ディスク全体、
または多様なデバイスに至るまでをまとめ、
ストレージプールを構成できるようになります。
ここで、ストレージプールをボリュームグループ (Volume Group、VG)、
PE のアロケート単位となるディスクパーティションやディスク全体を
物理ボリューム (Physical Volume、PV) と呼びます。
このボリュームグループは仮想ディスクとして考えることができます。
下記のシナリオをご覧ください。
この VG のうち、いくつかのまたはすべての PE は、論理エクステント
(Logical Extent、LE) という単位で論理ボリューム (Logical Volume、LV)
にアロケートすることができます。
各 LE は対応する PE にマップされます。
LE と PE は同じサイズになります。
論理ボリュームは一種の仮想パーティションです。
よく使われている /dev/sd[a-z]* や /dev/hd[a-z]* などと同様に、
LV は /dev/ボリュームグループ名/論理ボリューム名 という名前の
デバイススペシャルファイルを介して使用することができます。
しかしこの機能が何よりも素晴らしいのは、VG *や* LV を実行中に拡張したり
縮小したりすることができることなのです!
そう…
例えば、LV の残容量があまりにも小さくなってきて、この LV の属している
VG がいっぱいになってしまった場合、その VG に他の PV を追加して LV
を単純に拡張することができます。
ある LV を縮小したり削除すると、同じ VG の他の LV でその容量を使用することが
できます。
上のシナリオは以下のようになります -
/------------------------------------------\
| /--PV1---\ VG 1 /--PVn---\ |
| |-VGDA---| |-VGDA-- | |
| |PE1PE2..| |PE1PE2..| |
| | | ...... | | |
| | | | | |
| | /-----------------------\ | |
| | \-------LV 1------------/ | |
| | ..PEn| | ..PEn| |
| \--------/ \--------/ |
\------------------------------------------/
PV 1 はサイズ 3GB の /dev/sdc1 かも知れません
PV n はサイズ 4GB の /dev/sde1 かも知れません
VG 1 は test_vg かも知れません
LV 1 は /dev/test_vg/test_lv かも知れません
VGDA は LVM メタデータを保有しているボリュームグループ識別子エリアです
PE1 から PEn はディスク (パーティション) 毎の物理エクステントの番号です
インストールのステップについてはファイル INSTALL および
insmod(1)/modprobe(1) を、もしカーネルに LVM を組み込んでいないのであれば、
論理ボリュームマネージャのモジュールをロードするために kmod/kerneld(8)
をそれぞれ参照してください。
上記のシナリオのためのコンフィグレーションのステップは以下の通りです -
1. /dev/sdc1 および /dev/sde1 のパーティションのシステム ID を 0x8e
に設定します。
2. "pvcreate /dev/sd[ce]1" を実行
テストの目的であれば、ひとつのディスク上に 2 つ以上のパーティションを
使用することができます。通常は、ストライプされた LV を構成した場合に
著しくパフォーマンスが劣化するため、ひとつのディスク上に 2 つ以上の
パーティションを使用すべきではありません。
3. ふたつのパーティションの合計容量を持つ "test_vg" という名前の新しい VG
を作成するため、"vgcreate test_vg /dev/sd[ce]1" を実行する。
vgcreate は、次のステップで LV を作成できるようにするため、
新しいボリュームグループについてもアクティブにします (カーネル内の LVM
ドライバ内にメタデータを転送します)。
4. "test_lv" という名前の 1500MB のリニアな LV を得るために
"lvcreate -L1500 -ntest_lv test_vg" を実行します。ブロックデバイス
スペシャルファイル名は "/dev/test_vg/test_lv"。
5. 例えば "mke2fs /dev/test_vg/test_lv" とひとつの LV 内に
ファイルシステムを作成し、マウントします。
6. 相対的なサイズの指定によって /dev/test_vg/test_lv を 1600MB まで拡張するには
"lvextend -L+100 /dev/test_vg/test_lv"
または絶対的なサイズの指定では
"lvextend -L1600 /dev/test_vg/test_lv"
となります。
7. 相対的なサイズの指定によって /dev/test_vg/test_lv を 900MB まで縮小するには
"lvreduce -l-700 /dev/test_vg/test_lv"
または絶対的なサイズの指定では
"lvreduce -l900 /dev/test_vg/test_lv"
となります。
8. VG を無効化して名前の変更を行うには
"vgchange -an test_vg" # オープン *されていない* VG のみ無効化可能!
"vgrename test_vg whatever"
そして
"vgchange -ay whatever"
として再度アクティブにします。
9. LV をクローズして名前の変更を行うには
"lvchange -an /dev/whatever/test_lv" # クローズされた LV のみ無効化可能
"lvrename /dev/whatever/test_lv /dev/whatever/whatvolume"
または
"lvrename whatever test_lv whatvolume"
そして
"lvchange -ay /dev/whatever/whatvolume"
として再度アクティブにします。
10. Ted Tso 氏または Powerquest 社の resize2fs を持っているのであれば、
"e2fsadm -L+100 /dev/test_vg/another_test_lv"
によってデータを破壊することなく LV 内に存在する ext2 のファイルシステムを
リサイズすることができます。
======================================================================
翻訳団体: JF プロジェクト <http://www.linux.or.jp/JF/>
翻訳者: 井上 秀 <inoue@mxg.nes.nec.co.jp>
校正: 芳賀 靖史さん <yasufumi.haga@nifty.com>
小林 雅典さん <zap03216@nifty.ne.jp>
Linux カーネル 2.4 付属文書一覧へ戻る