skucky.com
自宅サーバーを立ち上げてから、サーバーというものは常時稼動しているものだから、うるさくて当り前で、それは仕方のないことだと思っていました。しかし、昨今の静音PCブームを見ても分かるとおり、工夫次第では音を抑えられる、もしくは完全に無音にすらできてしまいます。
ここでは、無音サーバーの構築までを簡単に紹介したいと思います。なお、基本的にはこちらのHPを参考にしています。同HPでは、無音PCはどれくらい静かか?ということを検証し、夜の海よりも静かであると紹介していますので、詳しくは同HPの方が参考になるかと思います。
先ずはマザーボードの選定からですが、改めて言うまでも無くCPUに何を使うかに大きく依存します。小生の場合はせいぜいWEBとメールサーバを細々と使用している程度なので、高性能なものを求めているわけではありません。また、これも改めて言うまでも無く、高性能(高クロック)なCPUにはCPUファンが付き物です。無音PCを作るからには、ファンなどの物理的な動きを伴う部品は極力使用したくありません。ファンレスで動作するCPUもあるにはあるみたいですが、探すのも面倒、さらに対応するマザーボードも探さなくてはなりません。どうせならオンボードでファンレスだと手っ取り早いです。
上記のことを考慮して、選んだマザーボードはVIAのEPIA-N 8000Eというマザーボードです(図1)。
同マザーボードにはオンボードでCPUが付属しており、ファンレスで動作します。因みに同シリーズで、CPUが1.0GHzのものにはファンが付いているので、こちらは却下しました。お気づきかと思いますが、同マザーボードの規格はNano-ITXという規格で、そのサイズは12cm×12cmです。煙草と比べてもその小ささがお分かりになるかと思います。
EPIA-Nに搭載するメモリーにはノート用のメモリーを使用します。メモリーなんぞはノーブランドのバルクでも何でも良かったのですが、マザーボードを購入したお店で対応するメモリーを適当に選びました(図2)。
お店でその場で選んだメモリーは、ELECOMのED333-NSシリーズの512MBです。別製品の256MBでも良かったのですが、値段的に1000円位しか変わりなかったので、これを選びました。
Nano-ITXに対応するケースについてですが、無音PCを構築したH18年7月時点でかなり数が少ないです。そのため、選択の余地があまりありませんが、Silver Stoneから渋めのケースが生産されています。Nano-ITXのケースは2種類ありましたが、ドライブベイの付いていないタイプの方(LC07)を選びました(図3)。
同ケースは電源にACアダプタを使用しているので、当然ファンがありません。電源供給用の4ピンコネクタ×2、FD用の電源コネクタ×1が付属します。
通常記憶媒体としてはHDDを使用するのが常ですが、HDDもアクセス時に若干ですが音が出ます。特に古くなってくると、「カラカラ・・・」と音が出てきて、そろそろ交換した方が良いかな?という交換時の判断基準にもなりますが、完全な無音PCを作るためにもやはり、回転する部品は使用したくはありません。
最近では、CFも多少高価ではありますが、ギガ単位の物が流通するようになり、機能を制限すればLinuxも余裕でインストールできます。そこで、アイアールキューブのIR-ICF01Dという部品を購入し、CFをHDDの代わりに採用することにしました(図4)。
同製品シリーズは、CFを差し込んでIDEケーブルに接続することで、あたかもIDE接続のHDDが接続されているかのようにCFを使用できるというアイデア製品です。同製品は3.5インチベイにマウントできるように板金が付属していますが、Silver Stone LC07のケース内に収めるにはごっつすぎますので、板金部分は外して使用することにします。
IR-ICF01Dのマニュアルでは、SanDisk製のSDCFBシリーズについて動作確認をしているとのことなので、同シリーズのCFを購入しました(図5)。
容量は予算とも相談したうえで、2.0Gを選びました。本当は4.0Gを買いたかったのですが、3万円弱もかかるので妥協しました。最近の派手なデスクトップ環境を備えるLinuxディストリビューションでは2.0Gだと心もとないですが、基本的なサーバソフトのみをインストールするだけであれば、2.0Gでも何とか大丈夫です。
CFカードで気になるのが書き込み回数の制限です。書き込みが頻繁に行われるディレクトリと言えば、やはり/var/logということで、少しでも高額なCFカード(2.0GB)を延命させようと、その後同じ種類の512MBのCFカードを購入し、こいつを丸々/var/logのパーティションとして割り当てることとしました。なお、IR-ICF01DにはCFカードを2枚挿しでき、それぞれ/dev/hda、/dev/hdbとして認識してくれます。使用後、約半年経過後のディスク(CF)の使用状況は、こんな感じです(図6)。ん〜、512MBと言わず、256、いや、64でも間に合ってたかも。。。
また、swap領域についてはCFカードを利用する場合、作らない方が良いでしょう。上述した書き込み制限が理由というのもありますが、小生の環境では、swap領域を作成しておくと、何やら不穏なメッセージが大量に出力されるというトラブルが発生しました(後述)。それから、書き込み回数の軽減対処としては、アクセス日時の記録を無効にするという方法もあります。そのためには、/etc/fstabのマウントオプションにnoatimeを追加しておきます(図7)。
以上の部品を使い、完成したのが下の写真です(図8)。
何が大変かと言うと、小さなケースにこれだけの部品を収めるのが大変でした。特に電源コードとIDE-CF変換基板の格納がてこずりました。LC07の脇には通風口があるので、なるべくコード類が邪魔しないように格納するのが賢明かと思います。と言うのは、完全にファンレスPCなので、しばらく電源入れたまま・・・と言うか、サーバ用途であれば長時間電源入れたままにするので、かなり高温になります。ヒートシンクなんぞは、直に触れるとかなり熱いです(と言っても火傷するほどではありませんが)。
「パソコンもOS入れなきゃただの箱」とはよく言ったもので、このままでは本当にただの箱です。インストールしたOSはDebian GNU/Linux 3.0です。これは雑誌Linux World2004年4月号の付録に付いていたDVD-ROMを使用します。インストール時はIDEケーブルのスレーブに一時的にドライブを接続してインストールを行います。マスターにはアイアールキューブのIR-ICF01Dが接続されています。
以下、インストールについての詳細をここに記すのが趣旨ではないので、インストール時のポイントだけを挙げておきます。
上記DVD-ROMを使用する際、2.2系か2.4系カーネルを選びますが、2.2系を選びます。理由は後述するネットワークドライバ(via-rhine)が上手く動作しないためです。
今回、スワップパーティションは使用しません。理由は最初にスワップパーティションを作成してサーバを稼動させて一晩明けた後、サーバがだんまりになり、コンソール画面にひたすらハードディスク上のI/Oエラーのメッセージが出力されつづけていたからです。原因はスワップパーティションにあるのか不明ですが、スワップパーティション自体がマウントされていないことも判明し、ディスク容量も消費されてしまうので、今回はスワップパーティションを作成せずにサーバを構築しました。
今回、このドライバにはかなり悩まされました。最初に2.4系カーネルでインストールしたところ、正常にドライバがロードされ、NICも正常に動作しているように見えましたが、pingが外に出ない事象が発生しました。困ったときのGoogle様ということで、色々と調べましたが、結構このドライバ(チップはVIA VT6102)に手を焼いている人が多いことだけはわかりました。その後、2.2系でもインストールして、このドライバをカーネルに組み込んでも「組み込みに失敗しました」という悲しいメッセージが出力されるだけ。途方にくれつつもpingを打つと、ちゃんと外に出ました。「はぁ?カーネルに組み込み失敗したんじゃねーの?」と思いつつも、その後aptとかを試しても何の問題も無いことが判明。結論「Debianのインストーラは嘘つき」ということで、2.2系のカーネルを使用してサーバを構築することにしました。
その後、USBを使用したい!と言うことで、カーネルを2.4系列(2.4.33.4)にバージョンアップしたところ、via-rhineも正常にロードされ、pingもお外に出ている模様です(図9)。単純にDebian付属のカーネル2.4系列がとち狂っているのか、バージョンが古かったのか、よくわかりませんが、USBも使えるようになったし、徐々に快適なサーバ環境が出来つつあるので良とします。
インストールするパッケージについては、Debianの場合、taskselを使用して選択しますが、今回は容量が2.0Gと限られています。なので、本当に必要なものだけを選びます。選んだものは、「DNS server」、「file server」、及び「conventional unix server」くらいなもんです。メールサーバのPostfix、WEBサーバのApacheについては、個別にインストールします。インストールが完了し、aptを用いてdist-upgradeも実行してDebian3.1にバージョンアップし、それなりのサーバとして稼動するようになった後のディスク容量は487M位です。大体使用率としては27%ですので、今後ログ、WEBページの増量を考慮してもしばらくはこのまま運用できそうです。
懸案事項としては、やはり、初回のインストール後、原因不明のハードディスク(hda)へのアクセスエラーがコンソール画面に出力され続けていたことです。因みに、dmesgでも気になるメッセージが・・・(図10)。
3〜4行目できちんとSanDiskのSDCFBシリーズのCFが認識されていることが確認できますが、その下のdrive_cmdが出しているエラーが気になります。ググって調べると、「ディスクがぶっ壊れています」とか物騒な答えしか見つからず、そんなはずないだろう(現にスワップ無しで2.2系カーネルをインストールしてから約1日が経過しようとしている今のところ正常に稼動しています)と思っていますが、どうなるかはわかりません。何より痛いのは、もしもお釈迦になってしまったら、無音サーバへ投資したボーナスの一部が・・・(以下、略)。
これについても、カーネルのバージョンアップにより、解決しました。2.2系列でも解決出来ていたかも知れませんが、要はカーネルオプションの設定値を変更すれば良いだけのことでした。
カーネルオプションとして(# make menuconfigを実行したものとします)、Main Menuでは「ATA/IDE/MFM/RLL support --->」を選択、次画面では「IDE, ATA and ATAPI Block devices --->」を選択、次画面にある「Use multi-mode by default」というメニューを選択すれば上記メッセージは出力されなくなるはずです(図11)。