gmirror でRAID 1。もう一度メモ
gmirror で RAID 1。
別のマシンで2台のSATAハードディスクを持つマシンで再実施することになりましたので、そのときのメモです。
作業前提
今回は、FreeBSD 7.0-RELEASE の状態のマシンを使って作業を行います。今月
7.1-RELEASEが出るという話もあったのですが、これはリリース後に追従することにしました。
今回利用するハードディスクは、以下の通り。80GBのウェスタンデジタルのWD
Caviar Blue。3 Gb/s, 8 MB キャッシュ、7200 RPM。普通かな。今回のサーバは、ディスク容量としてはこれで十分です。
ad4: 76293MB <WDC WD800JD-75MSA3 10.01E04> at ata2-master SATA150
ad5: 76293MB <WDC WD800JD-75MSA3 10.01E04> at ata2-slave SATA150
前回に同じく、ad4 ad5とかの意味合いは以下の通り。
| DEV |
規格 |
IDE 0/1 |
M/S |
| ad0 |
IDE |
Primary |
Master |
| ad1 |
IDE |
Primary |
Slave |
| ad2 |
IDE |
Secondary |
Master |
| ad3 |
IDE |
Secondary |
Slave |
|
|
|
|
| ad4 |
SATA |
Primary |
Master |
| ad5 |
SATA |
Primary |
Slave |
| ad6 |
SATA |
Secondary |
Master |
| ad7 |
SATA |
Secondary |
Slave |
上記だとシリアルATAのプライマリ接続でマスターとスレーブ位置に接続されているディスク2台ということがわかります。
今回は同じ型のハードディスク2台を利用しましたが、コピーされる側のメディアの方が容量が大きければそれで良いそうですが、今回は同時に同じ物を購入してあるので、このような感じにしました。予備のハードディスクは購入しませんでした。
gmirror
FreeBSD 7.xには、カーネルをリコンパイルするなどの作業無く、gmirrorやgstripeを利用できます。
gmirrorのマニュアルとFreeBSD サーバ構築の
gmirrorを眺めつつ、作業をしてみることにしましょう。
今回は既に FreeBSD 7.0-Releaseの導入は完了していますので、その後から実施となります。
インターネットから FTPで
7.0-RELEASE-i386-livefs.iso を入手してきます。httpだと速度制限されて遅いですが、ftpでダウンロードすれば数分以内にはお手元にISOイメージが入手できます。DVD
DecrypterなどでCD-Rに焼いて、マシンにセット。そして再起動をし、ノーマルに
日本→日本語の選択後に表示されるメニューで FIXIT を選択します。DVD/CDで選択して
Fixit# のプロンプトを確認します。
Fixit# chroot /dist
Fixit# mount -t devfs devfs /dev
Fixit# kldload geom_mirror.ko
Fixit# exit
Fixit# gmirror label -v gm0 /dev/ad4
今回のマシンには slave側には DVD/CDが接続してあり、ad4 ad5という組み合わせにしてあります。
本当は ad4 と ad6というマスター同士にしたかったんですが、これは時間があるときにでも直せるので今回はそのままにしました。
Fixit# mount /dev/mirror/gm0s1a /mnt
Fixit# edit /mnt/boot/loader.conf
eeは得意ではないけど、editは eeがあがるのでこれで作業。1行を書きます。
geom_mirror_load="YES"
同様に、fstabを編集します。
Fixit# cp -p /mnt/etc/fstab /mnt/etc/fstab.orig
Fixit# edit /mnt/etc/fstab
で中身を以下に変更。ad4の部分を mirror/gm0 に置き換えるだけです。
# Device Mountpoint FStype Options Dump Pass#
/dev/mirror/gm0s1b none swap sw 0 0
/dev/mirror/gm0s1a / ufs rw 1 1
/dev/mirror/gm0s1e /tmp ufs rw 2 2
/dev/mirror/gm0s1f /usr ufs rw 2 2
/dev/mirror/gm0s1d /var ufs rw 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0
こんな感じ。以下は、編集前の内容(参考)
# Device Mountpoint FStype Options Dump Pass#
/dev/ad4s1b none swap sw 0 0
/dev/ad4s1a / ufs rw 1 1
/dev/ad4s1e /tmp ufs rw 2 2
/dev/ad4s1f /usr ufs rw 2 2
/dev/ad4s1d /var ufs rw 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0
この状態で再起動します。特に問題なくあがってきたと思います。
実際に、シンクロナイズをさせてみます。
# gmirror insert -v gm0 /dev/ad5
.
.
.
# gmirror status
Name Status Components
mirror/gm0 COMPLETE ad4
ad5
と完成しました。風呂に入っている間には終わっていたので 30分以内だったでしょう。
ad4: 76293MB <WDC WD800JD-75MSA3 10.01E04> at ata2-master SATA150
ad5: 76293MB <WDC WD800JD-75MSA3 10.01E04> at ata2-slave SATA150
acd0: CDRW <SONY CD-RW/DVD-ROM CRX310S/VDK2> at ata3-slave SATA150
lapic1: Forcing LINT1 to edge trigger
SMP: AP CPU #1 Launched!
GEOM_MIRROR: Device mirror/gm0 launched (2/2).
Trying to mount root from ufs:/dev/mirror/gm0s1a
立ち上がってくるときにはこんな感じ。
これで最悪の時のバックアップ用のメディアが ad5にある、という状態で使うことができます。安心です。