Gentoo LVM2インストール
1.
はじめに
このガイドは、2つのIDEハードディスクを使用した例を基にして説明します。
よって、読者の設備構成とニーズに一致させるために、おそらくドライブとパーティションの名前と大きさに合わせて変更する必要があるでしょう。
Warning:
このドキュメントは、LVM2のチュートリアルではありません。
Handbook, Part1
(日本語訳)
で説明されているGentooインストールの手順を補足する目的があります。
インストール作業を開始する前に、Gentooインストールマニュアルを確実に読んでください。
|
Note:
LVM HOWTO一式は、http://tldp.org/HOWTO/LVM-HOWTOをブラウザで参照してください。
|
初期条件
Gentooを新たにインストールする場合、GentooインストールCDのようなLVM2サポートがあるブート可能CDを使用する必要があるでしょう。mirrors(日本語訳)にあるサイトの/releases/x86/current/installcdにx86アーキテクチャ用のインストールCDがあります。他のアーキテクチャでも同様にサポートされているかもしれません。
現在稼動中の余分なハードディスクスペースがあるシステムに、LVM2をインストールする場合、LVM2モジュール(dm-mod)を有効にする必要があるでしょう。このモジュールは、gentoo-sourcesで利用可能です。
カーネルをコンパイルしてLVM2を動作させる方法は、このガイドの後半に説明されています。
Gentooで提供される2.4系列カーネルのすべてがLVM2をサポートするとは限りません!
パーティション
例として使用するシステムには、2つのIDEハードディスクがあり、以下のようなパーティションで区切られています。
- /dev/hda1 -- /boot
- /dev/hda2 -- (スワップ)
- /dev/hda3 -- /
- /dev/hda4 -- LVM2によって使用される予定
- /dev/hdb1 -- LVM2によって使用される予定
Important:
aとかbのユニットを示す文字や、パーティションの番号を混同しやすいので、間違えないようにパーティションの名前に気を配ってください。たった一つの間違いが、意図しないパーティションを消去してしまう可能性があります。十分に気をつけてくださいね!
|
OK、では始めましょう。
2.
インストール
基本的にはハンドブックに従ってほしいのですが、
4. Preparing the Disks(ディスクの準備)の章に対する以下の修正があります。
ハンドブックで説明されているようにfdiskコマンドを使用しますが、例として挙げたパーティション区画を使用してください。もちろん例ですので、あなたのニーズに合わせてください。
/boot用の小さな物理パーティション(hba1)を作成してください。この例では、/bootはLVM2によって管理されません。このパーティションには、ブートローダとカーネルが存在するでしょう。64MBのパーティションは、かなり多くの複数世代のカーネルを保持するのに十分適しています。
スワップパーティション(hda2)を作成してください。
/ (ルート)パーティション(hda3)を作成してください。ルートパーティションをLVM管理下に置くことに興味がある場合(私たちは推奨しません)、その方法に関するミニhowtoへのリンクが、このガイドの終わりにある資料セクションにあります。
LVM2ボリュームグループ(vg)に/opt /usr /home /var /tmpを含めるなら、ルートパーティションのサイズは大きい必要はありません。この場合、1GBで十分でしょう。
Note:
以下に続くディレクトリをLVM2パーティションに置くことは推奨しません。
/etc、/lib、/lib、/mnt、
/proc、/sbin、/dev、/root。
このようにしておくと、なにかひどく悪い状況になっても、まだシステムにログイン(不自由でしょうけど、ルートユーザとしてまだ若干は利用可能)できるでしょう。
|
/bootとスワップとルートパーティションで、物理ディスクの全部を使用しないと仮定して、このディスクに4番目のパーティションを作成し、パーティションタイプを8e(Linux LVM)に設定してください。
さらにLVMで使用したいと思う物理ディスクがある場合、それぞれに一つのパーティションを作成して、同じパーティションタイプ(8e)を設定してください。
Note:
最近のディスクの大容量さを考えると、一つのLVM2ボリュームグループに追加される一つの大きいパーティションを作成する代わりに、ハードディスクを小さいパーティションに分割することを検討するかもしれません。
どっちみちLVM2はボリュームを拡張しやすくするものです。
この特徴は、LVM2グループに含めずに別の用途で使用する必要があるかもしれない、未割当てのパーティションを残しておけます。
つまり、必要になるまでディスクスペースを使用しないでください。
例として、ある報告者は、160GBのハードディスクを20GBずつの8つのパーティションに分割したそうです。
|
ハンドブックに書かれているように、
/dev/hda1と/dev/hda3上にファイルシステムを作成します。
そして、/dev/hda2にswapを作成し、有効にします。
LVM2 dm-modモジュールをロードしてください。
Code Listing 2.1: LVM2モジュールのロード |
# modprobe dm-mod
|
物理ボリュームの走査とLVMの有効化を行う前に、いくつかのデバイスを除外するために/etc/lvm/lvm.confを編集したいかもしれません。
デフォルトでは、CDROMドライブがエラーメッセージを発生する可能性があっても、LVM2はすべてのデバイスを走査します。
以下の例では、すべてのデバイスの走査が可能な行を2つのIDEディスク以外のすべてデバイスを除外するもので置き換えられています。
Code Listing 2.2: LVMの有効化 |
# nano -w /etc/lvm/lvm.conf
filter = [ "a/.*/" ]
filter = [ "a|/dev/hd[ab]|", "r/.*/" ]
# vgscan
Reading all physical volumes. This may take a while...
No volume groups found
# vgchange -a y
|
パーティションを準備してください。
Code Listing 2.3: パーティションの準備 |
# pvcreate /dev/hda4 /dev/hdb1
No physical volume label read from /dev/hda4
Physical volume "/dev/hda4" successfully created
No physical volume label read from /dev/hdb1
Physical volume "/dev/hdb1" successfully created
|
ボリュームグループをセットアップしてください。
ボリュームグループとは、単一の論理デバイスにいくつかの物理ユニットを結合したものです。
例では、/dev/hda1と/dev/hda2と/dev/hda3は、/bootとスワップとルートパーティションです。そして、/dev/hda4と/dev/hdb1を結合する必要があります。
これはコマンド一発で実行することができますが、ここでは例として、ボリュームグループを作成して、それを拡張しています。
Code Listing 2.4: ボリュームグループの作成と拡張 |
# vgcreate vg /dev/hda4
/etc/lvm/backup: fsync failed: Invalid argument
Volume group "vg" successfully created
# vgextend vg /dev/hdb1
/etc/lvm/backup: fsync failed: Invalid argument
Volume group "vg" successfully extended
|
論理ボリュームを作成してください。論理ボリュームは、非LVM2環境でfdiskコマンドを使用して作成するパーティションに相当します。例では、以下に示すパーティションを作成します。
| ディレクトリ |
サイズ |
| /usr |
10 GB |
| /home |
5 GB |
| /opt |
5 GB |
| /var |
10 GB |
| /tmp |
2 GB |
LVM2を使用するのですから、いつでも必要に応じて拡張できるので、パーティションサイズをどうするかは、さほど心配しなくてもいいはずです。
Note:
Terje Kvernes氏が言うように、パーティションのサイズを縮小させるより増加させる方がより簡単です。従って、小さめのパーティションから始めて、必要に応じてサイズを増加させたいと思うかもしれません。
|
Code Listing 2.5: 論理ボリュームの作成と拡張 |
# lvcreate -L10G -nusr vg
Logical volume "usr" created
# lvcreate -L5G -nhome vg
# lvcreate -L5G -nopt vg
# lvcreate -L10G -nvar vg
# lvcreate -L2G -ntmp vg
# lvextend -L+5G /dev/vg/home
|
通常のパーティション上で実行するのと同じ方法で、論理ボリューム上にファイルシステムを作成してください。以下では論理ボリューム上にext3を使用しますが、あなたが選択するどんなファイルシステムも機能するでしょう。
Code Listing 2.6: ファイルシステムの作成 |
# mke2fs -j /dev/vg/usr
# mke2fs -j /dev/vg/home
# mke2fs -j /dev/vg/opt
# mke2fs -j /dev/vg/var
# mke2fs -j /dev/vg/tmp
|
ハンドブックで記述されているとおりにパーティションをマウントしてください。
そして、LVM2論理ボリュームを、それらがパーティションであるかのようにマウントしてください。
通常の/dev/hdxxを/dev/vg/logical_volumenameで置き換えて下さい。
Code Listing 2.7: 論理ボリュームのマウント |
# mkdir /mnt/gentoo/usr
# mount /dev/vg/usr /mnt/gentoo/usr
# mkdir /mnt/gentoo/home
# mount /dev/vg/home /mnt/gentoo/home
# mkdir /mnt/gentoo/opt
# mount /dev/vg/opt /mnt/gentoo/opt
# mkdir /mnt/gentoo/var
# mount /dev/vg/var /mnt/gentoo/var
# mkdir /mnt/gentoo/tmp
# mount /dev/vg/tmp /mnt/gentoo/tmp
|
Note:
インストールのハンドブックの残りについては、ここで差異を示した以外は、再度読み直さなくてよいようにしているので、ほとんど変わりありません。
|
カーネルを設定するときは、必ずLVM2をサポートするように(すべての2.4系列カーネルがサポートしているとは限りません)カーネルを設定してください。
以下のようにLVM2モジュールを選択してください。
Code Listing 2.8: カーネル2.4.xでLVM2モジュールを選択する |
Multi-device support (RAID and LVM) --->
[*] Multiple devices driver support (RAID and LVM)
< > RAID support
< > Logical volume manager (LVM) support
<M> Device-mapper support
< > Mirror (RAID-1) support
|
Code Listing 2.9: カーネル2.6.xでLVM2モジュールを選択する |
Device Drivers --->
Multi-device support (RAID and LVM) --->
[*] Multiple devices driver support (RAID and LVM)
< > RAID support
<M> Device mapper support
|
コンパイルされたモジュールは、dm-mod.koと呼ばれます。
マシンの起動時にLVM2モジュールがロードされるようにするために、カーネルを構築してモジュールをインストールした後、/etc/modules.autoload.d/kernel-{KV}に以下の行を追加してください。{KV}はカーネルバージョン(2.4か2.6)を意味します。
Code Listing 2.10: /etc/modules.autoload.d/kernel-2.6にLVM2モジュールを追加する |
# nano -w /etc/modules.autoload.d/kernel-2.6
dm-mod
|
ここで、lvm2パッケージをインストールしてください。
Important:
lvm2のebuildは、device-mapperのebuildに依存します。device-mapperのebuildは、/usr/src/linux/include/linuxの下の必要なソースファイルの存在を確認します。よって、/usr/src/linuxのリンクが、使用しているカーネルのソースツリーを指しているか確認してください。
|
Code Listing 2.11: LVM2パッケージのemerge |
# emerge lvm2
|
earlierで説明されているように/etc/lvm/lvm.confを編集してください。
以前に編集したこのファイルはインストール環境のもので、次のリブート後にはなくなってしまいます。
ここで、新しいGentooインストール環境内に正式なものを編集します。
/etc/fstabファイルを編集するときは、ハンドブックに従って、必要に応じてLVM2論理ボリュームを追加してください。
以下にこの文書での例を示します。
Code Listing 2.12: /etc/fstabの抜粋 |
/dev/hda1 /boot ext3 noauto,noatime 1 2
/dev/hda2 none swap sw 0 0
/dev/hda3 / ext3 noatime 0 1
# Logical volumes
/dev/vg/usr /usr ext3 noatime 0 2
/dev/vg/home /home ext3 noatime 0 2
/dev/vg/opt /opt ext3 noatime 0 2
/dev/vg/var /var ext3 noatime 0 2
/dev/vg/tmp /tmp ext3 noatime 0 2
|
ハンドブックのインストールパートの最後に到達したとき、通常のパーティションと同様に、すべてのLVM2論理ボリュームをumountすることを忘れないでください。そして、再起動する前に、常套手段として以下のコマンドを実行してください。
Code Listing 2.13: LVM2のシャットダウン |
# vgchange -a n
|
マシンを立ち上げなおしてください。すると、すべてのパーティションが確認でき、マウントされているはずです。
3.
再起動した後で作業を続行する
ある時点でGentooのインストールを中断した後で、また再開したい場合、必要なボリュームデバイスノードを最初に作成する必要があります。
Code Listing 3.1: ボリュームの再活性化 |
# vgscan --mknodes
|
あまり新しくないツールを備えるインストールCDは、上記の方法ではなく以下のようにボリュームを再活性化する必要があるかもしれません。
Code Listing 3.2: ボリュームの再活性化 |
# vgchange -a n
# vgexport -a vg
# vgimport -a vg
# vgchange -a y
|
4.
資料
5.
謝辞
このドキュメントに対するThilo BangertとTerje Kvernesの助力と意見に感謝します。
The contents of this document are licensed under the Creative Commons -
Attribution / Share Alike license.
|