FedoraCoreでソフトウェアRAID1構築

FedoraCoreでソフトウェアRAID1構築

FedoraCoreをインストールしたサーバにて、ソフトウェアRAID1を構築した時のメモ。
OSはFedoraCore6にて運用。
mdadmを使うディストリビューションなら、Fedoraの下位バージョンでもCentOSでも出来るのでは無いかと思われ。

とりあえず、いきなり運用中の機械で操作せず、検証機とかVMwareなど、壊しても後悔しない環境でリハーサルを行う事をオススメします。
で、度胸がついたら、バックアップを取ってから作業することを更にオススメします。
時として、失敗や不意のアクシデントに遭遇するかも知れませんので...。

それから、必ず自環境を照らし合わせて計画を立てましょう。

概要
HDD1台で以下のパーティションにて運用中(IDEディスクの場合)

/dev/hda /dev/hda1 /(/boot含む) /dev/hda2 swap

これに同容量(もしくはそれ以上)のIDE-HDDを用意し、RAID1を構築する。
(必ずしも、同規格でなければならない訳ではない、適当に読み替えるなどして対応してください)

2台目のHDDは/dev/hdbとする。

構築メモ
バックアップは取っているものとする。現行使用中のディスクをそのままRAIDドライブとして利用する場合ならなおさら。

本番環境などで他の人からのアクセスがあっても困るので、シングルモードで起動して実行。

●RAIDディスク(1)の作成
現行の利用状況を参考に新しいパーティションを作成する。
同一HDD製品であるならば、

sfdisk /dev/hda > ptable sfdisk /dev/hdb < ptable

などとすれば手っ取り早い。その後、再度FDISKにて、RAID化したいパーティションを0xFD(RAID自動起動)に設定しなおせばOK。
●RAID1化
まず、片肺状態でのミラーリングを構築する。

mdadm -C /dev/md0 -l1 -n2 -c1024 missing /dev/hdb1

-C createモード
/dev/md0 作成するRAIDデバイス
-l(小文字L) RAIDレベル。
今回の場合はRAID1なので1。
-n 構成するドライブの数。
RAID1の構成数は2台、RAID5の場合は3台必要。
-c チャンクサイズ。
アレイから連続的にどれだけ読み込むかを設定する。
大きく設定すれば、多く読み込める。
機器スペックによるが、パフォーマンスに関わるところ。
missing /dev/hdb1 構成するデバイス名。
missingとは、故障扱いとして空にする事で、片肺状態を作り上げる。

●フォーマット

mkfs.ext3 /dev/md0 ついでに今回RAID化はしないがスワップ領域のフォーマットも実施。 mkswap /dev/hdb2 (もちろん、スワップもRAID化は可能)

●ドライブのマウント

mkdir /mnt/md0
mount /dev/md0 /mnt/md0

●データのコピー
/dev/hda1内のデータを/dev/md0にコピー
全部まとめてコピーしたい所だが、今のところいい方法思い浮かばず。
仕方ないので、手作業。

/proc /sys /mnt /tmp はシステム用なので、ディレクトリを作るだけ。 mkdir /mnt/md0/proc mkdir /mnt/md0/sys mkdir /mnt/md0/mnt mkdir /mnt/md0/tmp

/tmpはアクセス権が特別。
chmod 1777 /mnt/md0/tmp

残りは全部コピー
cp -a /bin /mnt/md0
cp -a /dev /mnt/md0
cp -a /etc /mnt/md0
cp -a /home /mnt/md0
cp -a /lib /mnt/md0
cp -a /root /mnt/md0
cp -a /sbin /mnt/md0
cp -a /usr /mnt/md0
cp -a /var /mnt/md0
...他、独自で作成したものなど。

当方は不精なので、先にシェルに書いたモノをおいて実行。
事前にバックアップしておいた時に大体の時間は読んでいたので、終わるまで放置。

●fstabを編集
RAID1で起動したときに/etc/fstabになる/mnt/md0/etc/fstabを編集。

/dev/md0 / ext3 defaults 1 1 none /dev/pts devpts gid=5,mode=620 0 0 none /dev/shm tmpfs defaults 0 0 none /proc proc defaults 0 0 none /sys sysfs defaults 0 0 /dev/hdb2 swap swap defaults 0 0

マウントポイントの編集くらいで、後はいじらない方が無難。
●initrd作成
RAID対応し、/dev/md0で起動させるためにinitrdを編集する
●initrdの作成

mkinitrd -v --fstab=/mnt/md1/etc/fstab /mnt/md0/boot/initrd-`uname -r`.img `uname -r`

●grub.confの編集

/mnt/md0/boot/grub/grub.conf ... title Fedora Core (2.6.XX.XXXX.fc6) root (hd1,0) ←RAID側HDDを使用(通常一般的にはhd0が指定) kernel /boot/vmlinuz-2.6.XX.XXXX.fc6 ro root=/dev/md0 rhgb quiet initrd /boot/initrd-2.6.XX.XXXX.fc6.img ...

以前の内容と似ているので上書きしたくなるが、それを堪えて、新しい行にて作成する。起動しない場合は、旧環境が残っているので、それを起動させればいい。

RAIDディスク(2)の作成
正常に起動したことを確認したら、シングルモードで再起動させる。
以降、作業が完了するまで再起動させない。

●パーティション情報の複製
現在設定しているRAIDのパーティション情報をhdaに写す。

sfdisk /dev/hdb > ptable sfdisk /dev/hda < ptable

●RAIDに追加

mdadm /dev/md0 --add /dev/hda1 cat /proc/mdstat にてコピー状況が解る。

●swap追加

mkswap /dev/hda2 /etc/fstabの内容も追加する。

●grub編集

/mnt/md0/boot/grub/grub.conf ... title Fedora Core (2.6.XX.XXXX.fc6) root (hd0,0) ←hd0に変更 kernel /boot/vmlinuz-2.6.XX.XXXX.fc6 ro root=/dev/md0 rhgb quiet initrd /boot/initrd-2.6.XX.XXXX.fc6.img ...

●MBRインストール(/dev/hda)

grub device (hd0) /dev/hda root (hd0,0) install /grub/stage1 (hd0) /grub/stage2 p /grub/grub.conf quit

●MBRインストール(/dev/hdb)
/dev/hdaが故障した場合に/dev/hdbのみで起動できるようにするため。

grub device (hd0) /dev/hda root (hd0,0) install /grub/stage1 (hd0) /grub/stage2 p /grub/grub.conf quit

hdaとhdbを続けてインストールする場合でも一回ずつ行う。
quitせずに新しいMBRのインストールはしない。
また、IDEハードディスクの場合、ハードディスクのジャンパ設定がslaveかcableselectになっていると思うので、
これを起動ディスクにする場合は、ジャンパをmasterにする必要がある。

再起動
うまくいったら完了。おめでとうございます。広げた書類、移動させた端末、机、昼寝した椅子など片付けて終わりにしましょう。

最後で失敗すると、最初からやり直しになりかねない。やったかな?くらいの気持ちなら、もう一度同じ動作をやっておいた方がいいかも。

終わりに
あまり、Fedora使っている人っていないんだな?
かなりCentOSで作ったと言うノウハウを参考しました。
そんなに変わりがないんで大助かりでした。感謝。


このエントリーをはてなブックマークに追加

« MacOS Xのパスワードリセット|
一覧へ
|AuthNameはユニークに。 »


ページの先頭へ

CYBERJETSHIN SITE MENU

Copyright (C) 2012 CYBERJETSHIN All Rights Reserved.