HP ProLiant ML115 G1 には CentOS 5.1 を入れることにした。Red Hat Enterprise Linux 5.2 がすでにリリースされているけれど、CentOS 5.2 のリリースまで待っていることもなかろうということで。後ほどさくっとyumで5.2にはアップデートする予定だ。
さて、前回の CentOS 4 でのパーティションに関する記事のページビューが良いので、この記事で CentOS 5 で更新しておく。今回作成するRAID構成は以下のとおり。
| デバイス名 | RAIDレベル | RAIDデバイス名 | 容量 | 使用方法 |
|---|---|---|---|---|
| /dev/sda1 | 1 | /dev/md0 | 100MB | /boot |
| /dev/sdb1 | ||||
| /dev/sdc1 | ||||
| /dev/sda2 | 5 | /dev/md1 | 932GB | LVM PV |
| /dev/sdb2 | ||||
| /dev/sdc2 | ||||
| /dev/sdd1 | なし | /dev/sdd1 | 932GB | /var/bak |
LinuxのソフトウェアRAIDはブート時(/boot読込み時)にはRAIDになっていないため、単一ディスクからでは正しく読み込めないRAID5にはできないので、/boot用にRAID1(ミラーリング)の/dev/md0を作成する。なお、2本のRAID1に1本のスペア構成のほうが書込み性能は有利な気がするけど、/bootには大して書き込みはないので、シンプルに3本でRAID1にした。
/dev/md1は500GBの Western Digital Caviar SE16 500GB WD5000AAKS から/dev/md0分の100MBを引いたものを3本で構成している。この/dev/md0をLVMの物理ボリューム(PV)としてLVMを作成する。
/dev/sdd1は/dev/md1のバックアップ先で、Western Digital Caviar GP 1TB WD10EACS をそのまま使用する。/dev/sdd1を/dev/md1に含めることも可能だが、できるだけ疎結合のほうが復旧が楽なので。
LVMを使用したパーティション構成は以下のとおり。
| PV | VG名 | LV名 | 容量 | マウント・ポイント |
|---|---|---|---|---|
| /dev/md1 | VGsystem | LVroot | 1024MB | / |
| LVhome | 128MB | /home | ||
| LVopt | 32MB | /opt | ||
| LVtmp | 512MB | /tmp | ||
| LVusr | 3072MB | /usr | ||
| LVlocal | 32MB | /usr/local | ||
| LVvar | 512MB | /var | ||
| LVswap | 1024MB | スワップ領域 |
PVが一つなのでボリューム・グループ(VG)も一つとして、そこにすべての論理ボリューム(LV)を作成する。今回インストールするOSはXenのDomain-0として動作するために使用可能メモリーは512MBに抑えるので、/tmpはメモリー同量の512MB、スワップ領域はメモリー容量の2倍の1GBとした。
まずはパーティションが何もない状態。/dev/sda、/dev/sdb、/dev/sdcの3台は容量476,940MBで、/dev/sddは953,869MBである。
ボタン「新規」をクリックし、「ファイルシステムタイプ」を「software RAID」、使用可能なドライブで「sda」、容量「100MB」、追加容量オプション「固定容量」、/bootに利用するパーティションは必ず「基本パーティションにする」をオンにして、ボタン「OK」をクリックする。これで/dev/sda1ができた。
使用可能なドライブで「sdb」を選ぶ以外は全く同じことをもう一度し、/dev/sdb1も作る。同様に/dev/sdc1も作る。これで下記のような状態となる。
ボタン「RAID」をクリックし、「RAIDデバイスを作成します」を選択して、ボタン「OK」をクリック。
マウントポイントを「/boot」、ファイルシステムを「ext3」、RAIDデバイス「md0」、RAIDレベル「RAID1」、RAIDメンバーで先ほど作った「sda1」「sdb1」「sdc1」を選び、ボタン「OK」をクリック。ここでスペア数を1にすると2本のRAID1と1本のスペアという構成になるが、今回は3本のRAID1と0本のスペアという構成にしている。
RAID1で構成された/bootができた。
sda1 / sdb1 / sdc1を作ったときと同様に、残りでsda2 / sdb2 / sdc2を作ろう。「追加容量オプション」で「最大許容量まで使用」にすることで「容量」の設定を無視して全て使ってくれる。
sda2 / sdb2 / sdc2 ができると以下のような感じ。
md0を作ったのと同じ手順でmd1を構成しよう。ただし、「ファイルシステム」は「physical volume(LVM)」に、RAIDレベルは「RAID5」にする。
RAID5で構成されたPVができら、md1を選択してボタン「LVM」をクリック。「ボリュームグループ名」を「VGsystem」とし、「物理エクステント」を「32MB」、「使用する物理ボリューム」を「md1」にする。LVは物理エクステント(PE)の容量単位での増減となるが、一つのLVが持てるPE数は最大65,536個なので、32MBだと2TBまでのLVが作れることになる。
LVを作成しよう。「論理ボリューム」のボタン「追加」をクリックし、「マウントポイント」を「/」、「ファイルシステムタイプ」を「ext3」、「論理ボリューム名」を「LVroot」、「容量」を「1024」にして、ボタン「OK」をクリック。
同様の作業を繰り返してほかのLVも作成する。ただし、swapのみは「ファイルシステムタイプ」を「swap」に。「マウントポイント」は自動的に設定できなくなる。
ボタン「新規」をクリックし、マウントポイント「/var/bak」、「ファイルシステムタイプ」を「ext3」、使用可能なドライブで「sdd」、追加容量オプション「最大許容量まで使用」にして/dev/sdd1を作成する。
これにて当初予定していたすべてのパーティションが作成された。
このままインストール・プロセスを完了し、OSが起動するようになったら以下の手順で/dev/sdbと/dev/sdcのMBRにもGRUBをインストールしておかないと/dev/sdaが故障したときに立ち上がらなくなってしまう。詳細は MIRACLE LINUX: ブートディスクをソフトウェア RAID 1 (ミラーリング) に構成する際の注意 を参照してほしい。
# grub grub> device (hd0) /dev/sdb grub> root (hd0,0) grub> install /grub/stage1 (hd0) /grub/stage2 p /grub/grub.conf grub> device (hd0) /dev/sdc grub> root (hd0,0) grub> install /grub/stage1 (hd0) /grub/stage2 p /grub/grub.conf grub> quit
万が一この手順をやらずに/dev/sdaが故障してしまった場合は、DVDなどから linux rescue で起動し、以上のコマンドを実行すれば/dev/sdbから起動できる。

















NEC Express 5800 110Gd + CentOS 5 という環境ですが、わかりやすい説明のおかげでRAID + LVM化が旨くゆきました。
HDD(160GB) * 4 を使い、
/dev/md0: RAID1 * 3 + スペア
/dev/md1: RAID6 * 4
/dev/md1 -> LVM
という構成です。
# パーティショニング後、/dev/md1 = 300GB強
とりあえず最小限の容量を確保しといて、必要に応じて増やしてゆく方法にしました。
パーティションの設計(容量見積り?)は、インストールのたびに悩むところですが、LVM は便利ですね。
MBR へのGRUB のインストールについても参考になりました。
ありがとうございました。
> とりあえず最小限の容量を確保しといて、必要に応じて増やしてゆく方法にしました。
ボクも最小容量から徐々に増やしていく派で、勝手にAIX流と読んでいます。ま、AIXのLVMの場合は増やすのはできるけど減らせないために最小容量から始めざるを得ないのですが。
ボクもスモール・スタートではじめられて柔軟に構成できるLVMが大好きです。やっぱインフラ回りは仮想化ですね。「リカバリが難しい」なんてことで避けてはいけません。