ディスクサーバーの追加(その3)

マウントの相互関係がややこしくなってきて大混乱状態ですが,しょうがないので/etc/fstabを書き直して新しいディスクサーバーをマウントするようにします。

/etc/exportsにエクスポートするディレクトリを設定して

mount hoge:/exports/fuga /mnt

とやるとなぜか,RPCMNT: clnt_create: RPC: Program not registeredとかいうエラーがでてマウントできません。

rpcinfo -p hoge

とやるとmountdが見えてなきゃいけないのに見えてません。/etc/rc.d/mountd restartとやると/etc/rc.confにmountd_enable="YES"を書け,とか言ってくるので,仰せの通りにします。

/etc/rc.confにmountd_enable="YES"を追加して

/etc/rc.d/rpcbind restart
/etc/rc.d/mountd restart
/etc/rc.d/nfsd restart

とやってnfsを再起動すると今度はちゃんとマウントできました。めでたしめでたし,です。

ディスクサーバーの追加(その2)

ディスクサーバー用にOSをインストールしていて何か動作がぎこちなく,引っかかる感じがしたのですが,どうもHDDへのアクセス時に待ちに入っている感じです。これは3ware 9650を使っていた時と同じ感触でした。

ふと思いついて,マザーボードX7SBiのBIOSでSATAの設定をAHCIに変えてインストールをやり直してみました。インストール用DVDを起動するときに,起動のメニューが出たところでescを叩いてload ahciとbootとコマンドを入れてahciのカーネルモジュールをロードしておきます。

AHCIモードでSATAディスクを動かすと,先に感じた引っかかりがすっかりなくなりました。どうやら,9650が悪かったのではなく,IDEモードのエミュレーションが遅かったのが原因だったようです。HDDのほうがダメだったのか,それともコントローラのほうがダメだったのかよくわかりませんが,まぁ,こういうこともあるのでしょう。

AHCIで動かせばよい,というのであれば,9650をそのまま使ってもよかったのかもしれません。9650にはとんだ濡れ衣を着せてしまったものです。

以前と同様に,アーカイバなどの簡単なツールをインストールしてsambaとrsyncをインストールすればとりあえずはディスクサーバーとして使えるものになりそうです。

旧サーバーのディスクをroot権限でnfsマウントして,rsyncでデータをゲロコピーしてしまいます。そのため,旧サーバー側の/etc/exportsに

/exports/home -maproot=root -alldirs 192.168.x.x

というようなエントリを追加して,

/etc/rc.d/rpcbind restart
/etc/rc.d/nfsd restart

とすれば指定したIPをもつ機械からはrootでのアクセスができます。

日付がUTCになっていたので,

cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

としてコピーをしておけばJSTになります。

ディスクサーバーの追加

2年前に更新して,2TB x 4 + RAID 6で運用していた研究室のサーバーがはやくもディスク容量が90%になっていることに気が付いたのが今月はじめでした。都合の悪いことには目を向けずに,気が付かないふりをしていたのですが,さすがにいつまでも放置することもできず,対策を考えていました。

現在のシステムになる前は,SuperMicroのX7SBi + Xeon E3110に3wareの9650SE-4LPMLを突っ込んで2TB x 4 + RAID 5で運用していました。ところが,9650のまさかの故障でディスクアレーが吹っ飛んだために3wareとは縁を切ってAreca ARC-1212に乗り換えました。その時に,サーバーも更新して新品で全部構築したため,X7SBiは予備役にまわって,weekly backupマシンとして余生を送っていました。このときに気が付いたのは9650が異様にアクセスが遅いことでした。ハードウェアRAIDなのになんでだろう,という謎でした。

ARC-1212のディスクアレーがあふれそうになってきたのがこの時期,というのはまぁ,ありがちなことではありますが,そもそも,もう,予算の残りがない時期で,とてもサーバーを新調する余裕はありません。しょうがないので,予備役にまわっていたX7SBiを引っ張り出して再度現役に戻すことにしました。9650は予備にもう一枚とってあるのでこれを使う,という選択肢もあるのですが,あまりのアクセスの遅さに閉口していた記憶が蘇って,ちょっと使う気になりません。

もちろん,高価なハードウェアRAIDカードを新調する予算ももう残ってません。ARC-1212も実は予備にあるのですが,現在運用中のカードが壊れた時のことを考えると,予備カードをここで投入するのはリスクが高そうです。ふと,安直ながら,zfsのraidzまたはraidz2を使ってみようという気になりました。X7SBiにはSATAポートが6個ついているので2TB x 4 + raidzでの運用は可能です。容量重視でraidz2は気が付かなかったことにします。ソフトウェアRAIDなので遅いんじゃないか,という気もしますが,on boardのSATAでかつての9650のように引っかかることもあるまい,と思った次第です。

というわけで,早速,9650をはずして4台のSATA HDDをSATA 0~3のポートにつないで,FreeBSD 9.2Rのインストールディスクで起動します。IDE(PATA)接続のCD-ROMドライブがついているのですが,なぜか,このドライブからのブートが思うようにいかず,SATAのCD-ROMドライブを暫定的につけてインストールしました。

インストールの手順は以前にやったのとまったく同じですが,違いは,ZFS ストレージプールを作成するところです。ここに書いてあるようにパーティションを切って,適当にラベルをつけておき,それらのラベルを使って,
zpool create -f zpool raidz /dev/gpt/disk0 /dev/gpt/disk1 /dev/gpt/disk2 /dev/gpt/disk3
というようにやればOKです。ここでdisk[0,1,2,3]はgpartでパーティションを切ったときに-lオプションでつけたパーティションのラベルです。

あとは,インストールDVDからインストール用のデータを展開して,loader.conf, rc.confなどを適当に設定して再起動すればインストール終了です。