USBメモリでRAID on OpenBSD 4.3
きのうは仕事でいっぱいいっぱいだったので、ここの更新はおやすみ。
だいぶ前に買ったeBox-2300でOpenBSDを使うにあたって、2GBのCFだけだとPortsとか使うのにちょっと厳しいかも。かといって、このゼロスピンドルPCにHDDつなぐのはなんだかイヤ。ということで、なぜかうちにたくさんころがってる1GBのUSBメモリをつかってRAIDを作ってみたり。
FAQによるとRAIDframeというのを使うように書いてあるんだけど、GENERICカーネルにはドライバが入ってなさげだったので、softraid(4)というのを使ってみる。RAIDframeだとRAID4やRAID5もできるみたいだけど、こっちはRAID0とRAID1だけ。別に信頼性高めたいわけじゃないので、ここはあえてRAID0で。4口のUSBハブつかうんで、4本でRAID0。
まず、USBハブにUSBメモリをさす。さしたときに、/var/log/messagesにそのUSBメモリのデバイス名(sd0とかsd1とか)が出るので、それをメモっておく。今回は、RAIDで使う4本のUSBメモリのほかに1本だけ別のUSBメモリをsd0としてつかってたので、RAID用に使う4本はsd1〜sd4。
softraid(4)にあるように、各USBメモリを初期化。
# fdisk -iy sd1 # fdisk -iy sd2 # fdisk -iy sd3 # fdisk -iy sd4 # printf "a\n\n\n\nRAID\nw\nq\n\n" | disklabel -E sd1 # printf "a\n\n\n\nRAID\nw\nq\n\n" | disklabel -E sd2 # printf "a\n\n\n\nRAID\nw\nq\n\n" | disklabel -E sd3 # printf "a\n\n\n\nRAID\nw\nq\n\n" | disklabel -E sd4
bioctl(8)でRAIDを組む。さっき書いたように、sd1〜sd4を使ってRAID0にする。
# bioctl -c 0 -l /dev/sd1a,/dev/sd2a,/dev/sd3a,/dev/sd4a softraid0
RAIDが構成されると、/var/log/messagesにそのデバイス名がでてくる。うちだとsd5だって。
デフォルトだと、/dev/sd5x のデバイスファイルがないみたい(これに気づくまで数時間)なので、デバイスファイルをつくる。
# cd /dev # ./MAKEDEV sd5
あとはsd5をふつうのディスクみたいにフォーマットして、使いたいところにマウントする。
# fdisk -iy sd5 # printf "a\n\n\n\n4.2BSD\nw\nq\n\n" | disklabel -E sd5 # newfs /dev/rsd5a # mount /dev/sd5a /mnt
ディスクアクセスすると、USBメモリのLEDが連続してついたり消えたりしてけっこうきれい。RAID0にすることでアクセスが早くなったかどうかは不明。