概要
ここではjh4tjwgwにつないで使っているファイルサーバkabigonについて記録しておきます。
目的
jh4tjwgwはNURS.OR.JPのウェブサーバ兼メールサーバ&諸々サーバで、現在の利用者は1000人を軽く超えています。利用者が増えるに連れ、必要とするディスクも増えて行き、その度にLVMを使って拡張して来ました。一番多い時には、60GB, 80GB, 80GB, 250GB, 250GB, 250GB, といったとんでもない構成でした。
ところがこれには
- バックアップがない
- これ以上筐体内に増設するためのベイがない
- 故障確率は確実に上がる
といった問題がありました。そこで、これらの問題が解決出来るようなファイルサーバを作ることを思い立ちました。
仕様の検討
要求仕様
このファイルサーバを作るにあたって、以下の要求仕様を考えました。
- なるべく多数のディスクを収容する
- データの保全を考える
- 十分高速なネットワークを装備する
- コストを安くする(^_^)
- 必要な可用性を確保する
このうち、1の「なるべく多数のディスクを収容するというの」が、今回のファイルサーバ作成の一番大きな動機です。ですから、これを第一に考えての設計となります。
仕様
これらのことを考えて、以下の仕様を考えました。
- とにかくドライブベイの多い箱にする
- RAID5を使う
- RAIDはソフトウェアRAIDとする
- ドライブはIDE(ATA133)とする
- GbEを使い、ファイルサーバのあるセグメントは1000baseとする
- 手持ちのdual Pen3のマザーボードを使う
ソフトウェアRAIDがちょっと奇異に映るかも知れませんが、これは節をあらためて説明します。
仕様の解説
ケースについて
ケースは、LIAN-LIというところが出している PC-6077 というものを使いました。詳しいことは件のページを見てもらうと良いのです が、このケースは
- ドライブベイの増設が出来、3.5" HDDが12台まで入れられる
- ドライブ3台分毎に口径の大きな冷却ファンがついているので、よく冷える上にわりと静か
- ケースの構造が単純で、メンテナンスしやすい
- かこいい
という特徴があります。ただ、このような素晴しいケースですが、
- 綺麗過ぎて汚れやすいし、アルミなので傷つきやすいので、取り扱いに気をつかう
- 電源なし筐体が2万円弱で、増設ベイが3000円程度。あまり安くない
- サーバとしては余計なインジケータ類があるので、邪魔になる
- メンテナンスしやすいとは言え、ベイを取り外すまでには12本のネジを外すことになり、結構時間はかかる
と言ったような問題がないわけではありません。それでもまさに今回のような「お手軽サーバ」にはうってつけのケースです。この筐体の構造を見る限りでは、これ以上ベイを増やすことは困難であろうと考えられるので、ある意味究 極の筐体だと思います。
ソフトウェアRAIDの採用
前述のように、このファイルサーバにはソフトウェアによるRAIDを採用しました。それには以下のような理由があります。
- RAID箱は信頼のおけるメーカのものしか使えない(苦い思い出がある)。 しかし信頼のおけるRAID箱は馬鹿高い
- RAIDカードはそんなに安くない上に壊れたらどうなるか予測不可能。また、保守用のカードを持ちたくない(金がない)のだが、果してすぐに入手可能かどうかわからない
- 今時のハードウェアのことを考えると、ソフトウェアRAIDでもそう遅くはないはずである。また、ベンチマークによってはRAIDカードの方が遅いものすらある
つまり、RAID箱を買うだけの財力がなければ、下手にRAIDカードなんぞに手を出さないでソフトウェアRAIDにしてしまった方が、パフォーマンスも可用性も上がるだろうという考えです。
IDEの採用
HDDにはIDE(ATA133)インターフェイスのものを使いました。通常ファイルサーバにはSCSIを使うものと相場が決まっていますが、
- SCSIはとにかく高い
- 大容量ドライブの入手が困難(で高い)
- IDEでもそんなに遅くない
- 高いからと言って、値段分の信頼性があるとは思えない
と言った理由からIDEにしてしまいました。かつては「Linux(UNIX)入れるんだったら、ふつーSCSIだよね」と言っていたのですが、IDEの高性能化大容量化によって、SCSIはハイエントの方に行ってしまって、とてもこういった「お手軽 ファイルサーバ」では使えないものになってしまったというのが最大の理由です。
通常、IDEはprimary secondaryにmaster slaveということで、4台のHDDしかつけることが出来ません。しかし、実験したところ、増設カードを入れることによって12台(カードにして3枚)は使えることがわかりましたので、ドライブの アドレスのためにSCSIを使う必要もなくなりました。
使ったカードは、 BUFFALOの IFC-AT133 を2枚と、 ロジテックの LHA-BIG133 が1枚です。2種類使ったのは特に意味があるわけではないですが、複数枚刺す時にBIOSとか別々に動いてくれて良いかなとか思ってみたくらいの理由です。もっとも、IFC-AT133が2枚入ってしまっていますので、結局それも無意味な考えでした。
それぞれのチップは、IFC-AT133が CMD Technologyの680、 LHA-BIG133が、 Promise Technologyの20269です。
ただし、IFC-AT133はディスクによっては相性問題を起こします。実際に日立の比較的最近のHDDでは、DMAがほぼまるっきり動きません。あれこれ悩んだあげく、玄人指向のATA133-PCI2に変更することで解決をしました。
ドライブはMaxtorの MaXLine Plus II の250GBのものを使っています。このドライブにはこれと言って考えがあったわけではなく、単に「秋葉で売っている250GB程度のドライブで安いもの」という意味以上のものはありません。現在のところ5+1ドライブ構成で1.2TBです。
ただ、MaxLineシリーズはメーカのカタログにあるように、順アクセスを基本とした設計になっています。バラしてみるとわかるのですが、ヘッドアームは他の同様のドライブと比較して、貧弱としか言いようがありません。RAID5はかなりランダムアクセスが多いものなので、たとえばディスクの再構成をかけると結構な負荷になるようです。実際、うちではチョコチョコ壊れました。なので、このドライブは個人的にはお勧めできません。
GbEの採用
初代kabigonのネットワークカードは BUFFALOの LGY-PCI32-GT というものを使っています。このカードは BroadcomのBCM5702 というチップを使ったもので、LinuxではVer 2.4.20あたりからサポートされています。
このチップを使ったカードの特徴として、
- とにかく安い
- 10/100/1000baseに対応
- それなりに速い
が挙げられます。特に価格の安さは相当なもので、秋葉原でカニ(RealTek)でないNICの中では、一番安いものです。これは「GbEの中では」ではなくて、100Mのものと比較しても安いのです。Linuxでは標準サポート対象になってい る上、インテルや旧DEC(およびその互換品)と比べると随分安いですから、もはやいろいろ考えるのはやめてしまって、「とりあえずBroadcom」という選択も良いように思います。100Mのカードよりも安いのですから、「うちはまだGのHUBはないよ」という人でももったいないということはないと思います。
ただ残念ながら、このチップ(カード)には1つの問題があります。それは「32bit PCIである」ということです。今回はマザーボードがPen3のもので、PCIバスは32bitしかないので問題になりませんが、64bit PCIを持っている人にとっては、ちょっともったいないかも知れません。この問題については、また後で述べることにします。
kabigonを改修した時に、マザーはGIGABYTEのGA-M55plus-S3Gにしました。これにはオンボードでGbEのチップが載っています。GbEのチップはnForce 430のオンチップのものですが、このためのドライバはMarvellのものらしいのですが、カーネル設定上はnForceという名前で出ています。ところが、このチップはGbEが使えるくせにカーネルツリー上では10 or 100Mというカテゴリにあるので、注意が必要になります。
NICをGにしたついでに、GbE用のHUBも安くなったことでもあるので、ファイルサーバ のいるセグメントにはGbE用のHUBを入れることにしました。これには プラネックスの FXG-05TXS を使いました。このHUBの特徴は、
- 値段はそれなり
- 金属ケース
- 第二世代チップセット
といったものです。このうち重要なのは「第二世代チップセット」です。と言うのも、第一世代のチップセットはかなり消費電力も大きく、その分発熱も多いので、放熱にはいろいろと気をつかってやらないといけないという話を聞い ていたからです。金属ケースというのも放熱のことを考えてのことです。
その他
その他のパーツについては、特にこれと言った特徴もなく、古いマシンからの 流用です。
- CPU Pentium III 1GHz × 2
- メモリ 512MB
- マザーボード TYANS2507 Tiger 230
- 350Wの適当な電源
この辺がいい加減になっている理由は、
- 主にアーカイブ目的のサーバなので、パワーはそんなにいらない
- デスクトップで使っていたパーツがあった
といった程度の理由です。ソフトウェアのRAID5とは言え、そんなに激しくアクセスするわけでもないので、CPU周辺はこの程度でももったいないかも知れません。
後に古いパーツは一掃して改修後のkabigonは、
- CPU Cenpron 2800+
- メモリ 512MB
- マザーボードGIGABYTE GA-M55plus-S3G
- 420W ATX電源
となりました。これは、あまりに古いパーツだとトラブルシュートが面倒臭い(情報の入手が難しい)ことからです。あいかわらず、単なるファイルサーバとしてしか使っていないため、CPUパワーは余っています。I/Oあたりがちょっと速くなったので、いくらかパフォーマンスは上がったようです。