僕はサーバに ATI IXP700(SB700)、デスクトップ機には ATI IXP600(SB600) なマザーボードを利用している。FreeSBD においては随分と早い段階、多分 7-STABLE 辺りで AHCI に対応していて、7.1-RELEASE ではほぼ利用できるようになっているみたいなので試してみた。
自分のマザーボードと言うか、ATA コントローラが AHCI に対応しているかは sys/dev/ata/a-chipset.c 辺りを確認してみると良いでしょう。僕のは以下のように 7.1-RELEASE では既に対応済みでした。
|
接続する HDD が SATA150 の場合は ATA_ATI_IXP600 が、 SATA300 の場合は ATA_ATI_IXP600_S1 のほうで認識されます。さてと。後は BIOS で今まで “IDE” と選択していたものを “AHCI” に変更してブートするだけです。
IXP600 なデスクトップ機ですが、 FreeBSD/amd64 7.1-RELEASE はサクッと起動しました。で、起動時、カーネルモジュールをロードする時など、気持ち的には速くなったような気がしました。
で、デスクトップ機なので WindowsXP x64 もインストールされているのですが、こっちのドライバは OS インストール時に SCSI デバイスをインストールする時みたいに、インストール時に AHCI のドライバを組み込まなければだめみたいだし、たとえ AHCI ドライバがインストールできたとしてもイマイチ不安定らしいので IXP600 なマザーボードでは AHCI を利用するのは断念しました。
さてと。ここからが本題。自宅サーバは、このブログでも書き続けていますが、メモリを変えても HDD を変えても電源を交換しても安定していません。で、実は HDD を交換した後、SATA のスピードが SATA150 でしか認識出来ていなかったんですね。
あれ?とか思い調べてみたら、新しく接続した HDD は Seagate の ST3500320AS SD15 と言う、500GB の HDD なのだけど、これは工場出荷時において、ジャンパピンが接続されていて、つまりショートしていて SATA150 が default みたいです。なので、SATA300 で利用するためにはジャンパーピンを取り去って上げる必要があったのでした。
これで、サーバに接続した HDD は SATA300 で認識されるようになり、体感的にも速くなったような気がします。
しかし、SATA300 で認識したのだけど、やはりサーバは突然の停止。と言うことになってしまったのでありました。それならばと思い、IXP700 も AHCI に対応しているのでいっちょやってみるか。と言うことで BIOS の設定を “IDE” から “AHCI” に変更してサーバを再起動。あ。サーバの OS も FreeBSD/amd64 7.1-RELEASE です。
無事に起動し、カーネルソースの make を開始し、しばらくしたら HDD へのアクセスエラーがドドドドドーーーっと出力され、そのままカーネルはフリーズ・・。その場でしゅーりょーーー・・・。状態となったのでありました。orz。
これにしても SATA150 の頃が一番安定しているんではないかい? とか思っています。SATA150 で利用した場合、三日と 12 時間経っても OS 自体が凍りつくことはなく、ミョーに安定している感があります。
このまま SATA150 で運用してみようかと思っています。一体何日くらい落ちずに持ってくれるか。