次のページ
前のページ
目次へ
では、脅かし文句はこれぐらいにしておきましょう。しかし LVM には理解しておか
なければいけない専門用語がたくさんあります。理解しておかないと、ファイル
システムを危険にさらすはめになってしまうかもしれません。
まずは基礎のあたりからはじめます。
- 物理媒体
「物理」という言葉の意味を複雑に考えないでください。単にハードディスク
もしくはパーティションを仮定しています。たとえば、/dev/hda、/dev/hda6、
/dev/sda のような。ブロック・デバイスにある連続したブロックをいくらでも
物理ボリュームに割り当てられます。その物理ボリュームとは…
- 物理ボリューム (PV)
物理ボリュームとは管理データをいくつか物理媒体に付加した物理媒体そのもの
を表します。
これを付加すると、LVM からは物理エクステントを入れる器に見えます。その物理
エクステントとは…
- 物理エクステント(PE)
物理エクステントは、いかにも大きいブロックのように見え、通常は数 MB の大きさ
になります。
物理エクステントはボリューム・グループに配置されます。そのボリューム・
グループ とは…
- ボリューム・グループ (VG)
ボリューム・グループは、いくつかの物理エクステント(複数の物理ボリュームや
ハード・ドライブから成る)から構成されます。ボリューム・グループを多数の
ハード・ドライブ(たとえば /dev/hda や /dev/sda)から構成されているものと
理解したくなるかもしれませんが、より正しくは、ボリューム・グループは複数の
物理エクステントから構成され、物理エクステントの機能はハード・ドライブに
よって提供されているということになります。
>このボリューム・グループを元にして、物理エクステントは論理ボリュームに
割り当てられます。その論理ボリュームとは…
- 論理ボリューム (LV)
そうです、やっとたどり着きました。解説の最終目標はこの論理ボリュームなのです。
情報を保存するのは、まさにここなのです。論理ボリュームは、従来のパーティション
と同じ意味になります。
通常のパーティション上で作成するのと同じように、論理ボリューム上でファイル
システムを構築するのが普通です。そのファイルシステムとは…
- ファイルシステム
ファイルシステムは好みのものを何でも選べます。標準の ext2 や ReiserFS、NWFS、
XFS、JFX、NTFS 等どれでも。Linux のカーネルにとっては、普通のパーティション
と論理ボリュームには何も違いはありません。
訳註:各種ファイルシステムについては、
Filesystems-HOWTO の日本語訳をご覧ください。
ASCII 文字列による創作を試みることで、このしくみを図解してみましょう。
物理ボリュームは、物理エクステントを含みます。
+------[ 物理ボリューム ]------+
| PE | PE | PE | PE | PE | PE |
+------------------------------+
ボリューム・グループは、2 つの物理ボリューム(PV)を含み、6 つの物理エクス
テントから構成されます。
+------[ ボリューム・グループ ]---------+
| +--[PV]--------+ +--[PV]---------+ |
| | PE | PE | PE | | PE | PE | PE | |
| +--------------+ +---------------+ |
+---------------------------------------+
もっと広げてみると、こうなります。
+------[ ボリューム・グループ ]---------+
| +--[PV]--------+ +--[PV]---------+ |
| | PE | PE | PE | | PE | PE | PE | |
| +--+---+---+---+ +-+----+----+---+ |
| | | | +-----/ | | |
| | | | | | | |
| +-+---+---+-+ +----+----+--+ |
| | 論理 | | 論理 | |
| | ボリューム| | ボリューム | |
| | | | | |
| | /home | | /var | |
| +-----------+ +------------+ |
+---------------------------------------+
この図では、2 つのファイルシステムがあり、2 つのディスクにまたがっています。
/home ファイルシステムは 4 つ、/var は 2 つの物理エクステントから構成されて
います。
bert hubert 氏は LVM をより視覚的に表示する
ツール を作成しています。
スクリーンショット
が見られます。私の ASCII 文字創作品より見栄えがします。
そうなんです。LVM はとても頭の中で消化しづらい考えなので(「我々はボーグの
LVM…」)、ここでは論理ボリュームを作成する例を注釈をつけながら進めたいと思
います。
この例をコンソールにそのまま入力「しないで」ください。データを壊してしまう
「恐れ」があります。たとえ手持ちのコンピュータが、/dev/hda3 や /dev/hdb2 を
使用していなくてもです。
訳註:ボーグ(Borg)とは、スタートレック(ネクスト・ジェネレーション)
に登場するサイボーグ種族のことで、あらゆるものを非情な手段で自分達の中に取り
込む種族のことです。ハッカーたちの間では、その貪欲に何物をも自分に取り込む
姿から、 Microsoft にたとえる場合があります。
納得いかなければ、上記の ASCII文字で書かれた図をご覧ください。
まず /dev/hda3 と /dev/hdb2 のパーティションのタイプを 0x8e にしてください。
これが「Linux LVM」となります。ただし、お手持ちの fdisk のバージョンによって
は、このタイプを認識できずに「Unknown」と表示されるかもしれません。
# fdisk /dev/hda
Command (m for help): p
Disk /dev/hda: 255 heads, 63 sectors, 623 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 2 16033+ 83 Linux
/dev/hda2 3 600 4803435 83 Linux
/dev/hda3 601 607 56227+ 83 Linux
/dev/hda4 608 614 56227+ 83 Linux
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): 8e
Command (m for help): p
Disk /dev/hda: 255 heads, 63 sectors, 623 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 2 16033+ 83 Linux
/dev/hda2 3 600 4803435 83 Linux
/dev/hda3 601 607 56227+ 8e Unknown
/dev/hda4 608 614 56227+ 83 Linux
Command (m for help): w
/dev/hdb2 に対しても同様な操作をしてみますが、ここではその結果を表示しません。
この操作は、構成を失った場合に LVM を再構築するのに必要です。
必ずしも全てのコンピュータではありませんが、ここでリブートが必要になる場合
もあります。次の例がうまくいかないようなら、リブートしてみてください。
下記のようにすれば、物理ボリュームが作成できます。
# pvcreate /dev/hda3
pvcreate -- physical volume "/dev/hda3" successfully created
# pvcreate /dev/hdb2
pvcreate -- physical volume "/dev/hdb2" successfully created
では、2 つの物理ボリュームを「test」というボリューム・グループに追加して
みます。
# vgcreate test /dev/hdb2 /dev/hda3
vgcreate -- INFO: using default physical extent size 4 MB
vgcreate -- INFO: maximum logical volume size is 255.99 Gigabyte
vgcreate -- doing automatic backup of volume group "test"
vgcreate -- volume group "test" successfully created and activated
これで未使用のボリューム・グループが 1 つできあがりました。ちょっと調べて
みましょう。
# vgdisplay -v test
--- Volume group ---
VG Name test
VG Access read/write
VG Status available/resizable
VG # 0
MAX LV 256
Cur LV 0
Open LV 0
MAX LV Size 255.99 GB
Max PV 256
Cur PV 2
Act PV 2
VG Size 184 MB
PE Size 4 MB
Total PE 46
Alloc PE / Size 0 / 0
Free PE / Size 46 / 184 MB
--- No logical volumes defined in test ---
--- Physical volumes ---
PV Name (#) /dev/hda3 (2)
PV Status available / allocatable
Total PE / Free PE 13 / 13
PV Name (#) /dev/hdb2 (1)
PV Status available / allocatable
Total PE / Free PE 33 / 33
情報がずらずら並んでいますが、今のところは大部分を理解できないはずです。
まだ論理ボリュームを定義していませんから、これを修正する必要があります。
50 MB の「HOWTO」というボリュームを「test」ボリューム・グループに作ってみ
ます。
# lvcreate -L 50M -n HOWTO test
lvcreate -- rounding up size to physical extent boundary "52 MB"
lvcreate -- doing automatic backup of "test"
lvcreate -- logical volume "/dev/test/HOWTO" successfully created
これで、あと少しというところまできましたので、次はファイルシステムを作成
しましょう。
# mke2fs /dev/test/HOWTO
mke2fs 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
13328 inodes, 53248 blocks
2662 blocks (5.00%) reserved for the super user
First data block=1
7 block groups
8192 blocks per group, 8192 fragments per group
1904 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
# mount /dev/test/HOWTO /mnt
# ls /mnt
lost+found
これで完了です! 作成したボリューム・グループを見直してみましょう。もう
これでボリューム・グループをデータで埋めつくせるようになっているはずです
から。
# vgdisplay test -v
--- Volume group ---
VG Name test
VG Access read/write
VG Status available/resizable
VG # 0
MAX LV 256
Cur LV 1
Open LV 1
MAX LV Size 255.99 GB
Max PV 256
Cur PV 2
Act PV 2
VG Size 184 MB
PE Size 4 MB
Total PE 46
Alloc PE / Size 13 / 52 MB
Free PE / Size 33 / 132 MB
--- Logical volume ---
LV Name /dev/test/HOWTO
VG Name test
LV Write Access read/write
LV Status available
LV # 1
# open 1
LV Size 52 MB
Current LE 13
Allocated LE 13
Allocation next free
Read ahead sectors 120
Block device 58:0
--- Physical volumes ---
PV Name (#) /dev/hda3 (2)
PV Status available / allocatable
Total PE / Free PE 13 / 13
PV Name (#) /dev/hdb2 (1)
PV Status available / allocatable
Total PE / Free PE 33 / 20
そう、/dev/hda3 はまったく使用していませんが、/dev/hdb2 は 13 個の
物理エクステントを使用しています。
まともなオペレーティング・システムがそうであるように、Linux は システム構成
が 2 つに別れています。それは、カーネル空間とユーザ空間です。ユーザ空間は、
ユーザランドと呼ばれることもあります。「ユーザランド」は、人気のあるテーマ・
パークを表す意味でも使われています。
論理ボリュームに関連した新規作成や修正作業は、ユーザ空間で行われ、その結果
をカーネルとやりとりします。ボリューム・グループや論理ボリュームについての
情報がカーネルに渡ると、「アクティブ」と呼ばれる状態になります。修正作業の
中には、ある要素がアクティブな状態であることが必要だったり、インアクティブ
な状態が必要なものもあります。
次のページ
前のページ
目次へ
|