GEOMでRAID構築
posted by jun-g at Wed, 07 May 2008 00:04 JST
手元にHDDが沢山余っていたので、FreeBSD-7Rで構築した自宅のファイルサーバにRAIDを構築してみました。
最初、ストライプしてからミラーするべきか、ミラーしてからストライプするべきか、という素朴な疑問で悩んだのですが、RAID01とRAID10の違い:佐野裕のサーバ管理者日記:ITproという記事を読んで、RAID01とRAID10は別モノで、ストライピンググループをミラーしたRAID01よりも、ミラーしたグループをストライピングしたRAID10のほうが可用性が上である、ということがわかったので、RAID10を構築することにしました。
HDDの構成は、マザーボード上のATAセカンダリに160GBx2、増設ATAカードに120GBx4で、デバイス名はそれぞれad2~7になりました。
まずはgmirrorでRAID1のグループを3つ作ります。
# gmirror label gm0 /dev/ad2 /dev/ad3
# gmirror label gm1 /dev/ad4 /dev/ad5
# gmirror label gm2 /dev/ad6 /dev/ad7
問題なく構築できているか確認。
# gmirror status
Name Status Components
mirror/gm0 COMPLETE ad2
ad3
mirror/gm1 COMPLETE ad4
ad5
mirror/gm2 COMPLETE ad6
ad7
問題なくできているようです。次にこのRAID1アレイを束ねてgstripeでRAID0を構築します。
# gstripe create -s 131072 gs0 mirror/gm0 mirror/gm1 mirror/gm2
問題なく構築できた?
# gstripe status
Name Status Components
stripe/gs0 UP mirror/gm0
mirror/gm1
mirror/gm2
問題なし!newfsしてマウントします。
# newfs /dev/stripe/gs0
...snip...
# mount /dev/stripe/gs0 /mnt
# df -h /mnt
Filesystem Size Used Avail Capacity Mounted on
/dev/stripe/gs0 334G 4.0K 333G 0% /mnt
できた!160+120+120=400GBなのに334GBになっているけど、細かいことは気にしません。
ということで、無事RAID環境が構築できました。この環境なら突然HDDが1本死んでも大丈夫だし、RAID10なので単純なRAID1よりもパフォーマンスも良いはず(ベンチマークは取っていませんが…)。手元に予備の160/120GBのHDDもあるので安心です。ただ、6本もHDDを使っていながらたった334GBしか容量が確保できてないというのが、電気の無駄遣いに感じてしまいますが…。最近HDD安いですもんね。
以下、今回参考にしたサイト。
ルータが壊れた?
posted by jun-g at Tue, 06 May 2008 01:01 JST
昨日、突然インターネットに繋がらなくなって、原因を色々探ってみると、どうやらルータが壊れているようでした。使っていたルータは4年程前に購入したマイクロリサーチのNetGenesis SuperOPT-GFiveです。
とりあえず、代替機として保管してあったNetGenesis SuperOPT50を投入してインターネット環境は復旧できたのですが、やっぱりローカル側だけでもギガビットなルータが欲しいなーと思ったので色々物色していたのですが、どうも気に入る機種がなくて、もう一度SuperOPT-GFiveを買いなおすべきかを迷っていました。で、何気なくkakaku.comのクチコミ掲示板を見ていたところ、僕と同じような故障状況の書き込みがあり、それによると、故障の原因はルータ本体ではなく、電源アダプタの故障であるということがわかりました。
そうとわかれば!ということで、早速マイクロリサーチのオンラインショップで電源アダプタを注文してみました。週末には届くみたいです。これで直れば良いなぁ。
エマ完結
posted by jun-g at Sat, 26 Apr 2008 03:30 JST
ついに完結しちゃいましたねぇ。
6巻あたりからのドラマチックな展開にかなりドキドキしたものの、なんだかあんまりスッキリしないまま本編が終了して番外編に進んでしまったのでう~んと思っていたんですが、最後はちゃんとハッピーエンドで良かったです。
C言語の勉強
posted by jun-g at Mon, 14 Apr 2008 02:59 JST
先月から、C言語の勉強を始めました。勉強の動機とC言語を選んだ理由は
- そろそろPython以外の言語を覚えたい
- せっかくなのでもうちょっと低レベルな言語を使えるようになりたい
- 普段FreeBSD使ってるんだし、C言語使えた方が何かと便利じゃね?
という単純なものです。あと、個人的にC言語は「知ってて当たり前な言語」という印象があるので、知らない自分を恥ずかしいと思っている、というのも理由の一つです。
実はこれまでも何度か本を読んだりしてC言語を覚えようと試みたことがあるのですが、読んだ時に解った気になっただけで、数日経てばすっかり忘れている、といった感じでまったく覚えられませんでした。当然です。手も動かさずに本を読んだだけでプログラム言語を覚えられるわけがないのです。
という事で、今回はとにかく「手を動かす」事にしようと決めました。
教科書として、積読のC言語の入門書の中から以下の本を選びました。
結城 浩
ソフトバンククリエイティブ
売り上げランキング: 327232
積読だけあって古いです。この本、今は改訂版が出ているようです。
結城浩
ソフトバンク クリエイティブ
売り上げランキング: 13180
この本に決めた理由は、パラパラと見た時に、プログラム初心者向けに解説がとても丁寧に書かれているな、と思ったからです。僕はC言語の初心者であってプログラムの初心者ではないので、丁寧すぎる説明は少し冗長に感じたりもしましたが、「知ったかぶりせずに初心者の気持ちで勉強するべし!」と自分にいい聞かせて、出てくるコードを実際に入力、コンパイル、実行しながら読みすすめました。
で、ぐうたらな性格なので途中かなりダラダラしてしまったんですが、だいたい1ヶ月ぐらいかかって、昨日ようやく読み終わりました。途中、ポインタの章を勉強している時に、C/C++のポインタの機能--変数の場所(アドレス) - builder by ZDNet Japanの記事がアップされ、ちょうど勉強してるところだからツッコミどころが少し解った事が嬉しかったです。
ひとまず最後まで読み終わって、書かれている事に対して理解できなかった点こそ無かったものの、解説されていない部分に対する疑問もあるし、まだC言語の理解にはほど遠い状態なので、引き続き勉強を続けようと思います。具体的には、
- より詳しい解説書を読む
- 実際にプログラムを書いてみる
という2点を続ければ、手に馴染んで理解も深まるかなぁと考えています。
より詳しい解説書として、同じく積読の中に眠っていた以下の本を読もうと思います。
B.W. カーニハン D.M. リッチー
共立出版
売り上げランキング: 10987
この本は2年ほど前に途中まで読んだ事があるのですが、その時は読むだけだったので途中で理解できなくなって挫折しました。今回は実際に手を動かしながら読み進めたいと思います。
で、実際に書いてみるプログラムは、今はお題が思い浮かばないので、また後日ということで。
余談ですが、今回からブログの文体を「ですます調」に変えました。理由は、細かい発言はTwitterに投げる事が多いので、ブログは文体を含めてもうすこし丁寧に書こうかな、と思ったからです。本当は、書く頻度ももう少し多くしたいところですが…。
帰省
posted by jun-g at Sun, 06 Apr 2008 23:16 JST
義父の定年祝いで家族一同集まるということで、嫁の実家の高知に帰省してきた。
で、お祝いで帰省したにもかかわらず、到着するなり高知県立牧野植物園に連れて行ってもらった。




ちょっと天気は曇り気味だったけど、ちょうど暖かくなってきた頃で花が沢山咲いていてよかった。また行きたい。
で、翌日はひとり高知の街を徘徊。はりまや橋の写真を撮って、

日曜市を見てまわって、

その後、すぐにマクドに入ってThinkPad広げてコードを書いたりして過ごした。
たまには外出もいいね。