ARAGO for Internet Wiki Project AkuAku

This web site is powered by Arago for Internet v7.0 UTF-8 edition on FreeBSD
SPC main menu Expand/Fold
Products 取扱商品 Expand/Fold
SouthWind  Expand/Fold
Q&A Technical support Expand/Fold
BBS 掲示板 Expand/Fold
Easy PC life Expand/Fold

Last Edit Date: 09/02/2008
Gmirror

よくマザーボードでRAIDサポートか書かれていますが、 それらはWindowsで動作する話です! FreeBSDでmirrorをするにはgmirrorがとっても簡単に設定できます。 一台のhddが壊れてももう片方のhddだけでシステムを続行することができます。
ソフトだからといっても、 遅いと感じることは全然ないでしょう! hddが壊れたときにどう対処するかは知りません。 この設定の最後にある処理方法で対処できるのだと思います。


gmirro(8)はFreeBSD 5.3 Releaseからサポートされています。 インストール時でも、その後でも簡単に設定できます。 が間違えるとbootできなくなることがあります。 必ず必要なことを紙に書きましょう!

最初にFreeBSDをインストールしたときに、どのhddにインストールするかの選択ダイアログがあったはずです。 もし最初のインストールでこのhddの選択ダイアログが出ていないとすると、ミラーに使うhddをFreeBSDは認識できていないことになります。 6.Xのどれだかではこの問題があります。

ここではSCSIデバイスとしてSATAが使われているものとします。 またpartitionはswapとrootファイルシステムの二つであることとします。 FreeBSDの19.4 RAID1でもswapはメモリの2倍のサイズであると書かれています。

このSATAのhddは基本的に同一のサイズのhddであることが必要です。 できれば2台同じ方のものにしてください」。
通常SATAはPATAが0-3の計4個の次に割り当てられています。 つまり4-7です。(もちろんそれ以上サポートしているマザーボードもあります)
SATAはFreeBSDでは、ad4から始まります。 FreeBSDはこのad4にインストールにインストールされているものとします。 mirrorするSATAはad5であるとします。 (SATAであれば、adいくつでもかまいませんが、同じ方のSATA hddをお使いください。)

最初にFreeBSDでがgmirrorがmountされているhddデバイスを操作させないようになっているので、次の操作をします。 rebootされると設定は元に戻ります。

ns1# sysctl kern.geom.debugflags=16
kern.geom.debugflags: 0 -> 16

次に
ns1# gmirror label -v -b round-robin gm0 /dev/ad4
Metadata value stored on /dev/ad4

ここでは/dev/da4となっていますが、 インストールしたときにダイアログで選択したデバイス名です。 不明でしたら、dmesgで確認してください。
SATAはASASUではda4から始まると思います。
ns1#ls /dev/ でも見ることができるでしょう。

では次に/boot/loader.confを変更します。
ns1# echo geom_mirror_load="YES" > /boot/loader.conf
つづりの間違いがないか、
ns1#ee /boot/loader.conf
で確認しましょう。 間違えていると少々面倒なことになります。

次に/etc/fstabを変更します。

viでは面倒くさいのでeeでやりましょう。
fstabは次のようになっていると思います。
# Device Mountpoint FStype Options Dump Pass#

/dev/da4s1b none swap sw 0 0

/dev/da4s1a / ufs rw 1 1

/dev/acd0 /cdrom cd9660 ro,noauto 0 0


ここではSATAがda4とda5に取り付けられda4にFreeBSDがインストールされufsパーティシオンはrootであり、ひとつと仮定します。

ns1#ee /etc/fstabで編集します。
/dev/da4s1の部分を/dev/mirror/gm0s1のように変更します。 デバイスがda8であろうがgmはgm0です。 間違えないでください!

# Device Mountpoint FStype Options Dump Pass#

/dev/mirror/gm0s1b none swap sw 0 0

/dev/mirror/gm0s1a / ufs rw 1 1

/dev/acd0 /cdrom cd9660 ro,noauto 0 0


では変更に間違えがないか再度確認してrebootします。 boot-upメッセージに次のような表示が出ると思います。

Mounting root from ufs:/dev/mirror/gm0s1a
これが出れば成功です。

次のように表示されると、残念でした。 

Mounting root from ufs:/dev/gm0s1a
setrootbyname failed
ffs_mountroot: can't find rootvp
Root mount failed: 6

Manual root filesystem specification:
: Mount using filesystem
e.g. ufs:da0s1a
? List valid disk boot devices
Abort manual input

mountroot>

このような状況になったら
mountroot> ?

List of GEOM managed disk devices:
mirror/gm0s1f mirror/gm0s1e mirror/gm0s1d mirror/gm0s1c mirror/gm0s1b
mirror/gm0s1a mirror/gm0s1 ad4s1 mirror/gm0 ad4s1 ad2 acd0 ad0 fd0
見たいに表示されるか、 gmsがぜんぜん表示されないかでしょう。

gmsが表示されていれば、
mountroot> ufs:/dev/mirror/gm0s1a
gmsなんてのはないといわれたら
mountroot> ufs:/dev/da4s1a
ログインしてもう一度変更箇所の誤りを確認修正してください。

無事にboot-upメッセージにもきちんと表示されると成功です。
ではmirror先のデバイスを設定しましょう! これをしないとgmirrorは動いていますが、mirror先を指定されていないので、mirrorされません!

ns1# gmirror insert gm0 /dev/ad5
GEOM_MIRROR: Device gm0: provider ad5 detected.
GEOM_MIRROR: Device gm0: rebuilding provider ad5.

さあmirrorされているかの確認です。
ns1# gmirror status
Name Status Components
mirror/gm0 DEGRADED ad4
ad5 (4%)

全部のデータをmirrorするとそのうち completeととか表示されます。

gmirrorのコマンドオプションはmanで見てください。

より詳しい情報や、ご心配の方は下記のサイトを印刷してお勉強ください。

詳しい解説は
http://www.onlamp.com/pub/a/bsd/2005/11/10/FreeBSD_Basics.html
http://www.freebsd.org/cgi/man.cgi?query=gmirror&apropos=0&sektion=0&manpath=FreeBSD+6.1-RELEASE&format=html
gmirror


Advertisement Expand/Fold