CentOS5.2でSerialATAのHDDディスクを使う
2009 年 3 月 16 日 月曜日SerialATA接続のHDDを搭載したマシンにCentOS5.2をインストールすると、HDDアクセスが激遅になります。SerialATA接続のHDDの場合、SCSIドライブとして認識するのが正しいようですが、BIOSの設定等でIDE互換優先にしていると、どうもIDEドライブとして認識する模様です。IDEで認識したのならば、DMAを使ってくれればよいのですが、DMAはONに出来なかったりするために、恐らくPIOモードで転送しているかのようなCPU使用率の高さと転送速度の遅さに見舞われます。
コマンドで、
hdparm -t /dev/hda
と打つと、ディスクキャッシュを使わない転送速度が取得できます(/dev/hdaの部分は環境に合わせて変更する)。いまどきのHDDならば、10MB/s以上は出るはずなので、これが10MB未満だったらDMAが使われていない可能性大です。また、SerialATAドライブなのに、/dev/hdaとIDEで認識されている場合もDMAが使われていない可能性大です。
hdparm -d1 /dev/hda
と入力すると、DMAをONにすることが出来ますが、エラーメッセージが出た場合はONにできません。(SerialATAだとエラーメッセージが出ると思います)
この場合、IDE互換として認識されているHDDをSCSIとして認識させるために、IDE機器を接続していないように見せる方法などが取れるようです。
もっとも、IDE互換としてSerialATAを設定しなければ良かったりする訳で、CentOSのインストール前にBIOSでAHCIを使うように設定すれば、インストールの最中にSerialATA用のドライバを読み込み、きちんと処理してくれます。マシンのチップセットにICH8以降(Intel 965以降のチップセットなら確実)が搭載されている場合、BIOSでAHCIを使うようにしておいたほうがよさそうです。もっとも、他の場面で問題が出る可能性があるので、使い方に合わせて変える必要はあります。
