盆栽マシンの記録

ロースペックマシンをあれこれとチューニングして それなりに動作するように手を加えることを自分の中では盆栽と 呼んでいるのだが、 何台かあるマシンのうち 典型的な盆栽について紹介したいと思う*1

概要

このマシンは、勤務先の人から個人的に譲り受けたPC本体に、 手持ちの周辺機器の実装、取付治具などの自作を行い作成した。 スペックは以下の通り;

ベースシステムIBM Aptiva 330
CPUIntel 486DX4 / 100MHz
メモリ24MB
ハードディスクIDE×4式: 425MB, 700MB, 800MB, 3GB
I/OバスISAバス: スロット×4
ネットワークNE2000互換×2式: 10BASE-5, 10BASE-5, 10BASE-T
シリアルポートRS-232C×4チャンネル
パラレルポート1チャンネル
フロッピーディスク3.5インチ×1

外形

All.jpg

本体はIBMのAptiva 330がベース。 ディスプレイは、モノクロ9インチCRTを接続。
OSには、Unix系のOpenBSDをインストールしている。 このマシンは実装メモリが24MBと少ないため、X Windowはインストールしておらず、 本機単体でのグラフィックや日本語の表示はできない。ASCIIのみ表示可。

#img(): File not found:

ペリフェラル

I/OバスはISAのみ*2。 よってIRQの割当は全て手動設定である。

IO_IntrNear.jpg
CENTER:IRQ割当表 - ほぼ全てが割当済

I/Oスロットは全部で4つある。

Inner_Back.jpgIO_SlotMidium.jpg
CENTER:I/Oスロット実装状況I/Oスロット使用状況

4スロットのうち、2スロットにEthernetカードを実装。 どちらもNE2000互換カードで10BASE-2, 10BASE-Tに 対応*3
残り2スロットには、マルチI/Oカードを実装。 このカード中、シリアルポート2チャンネルを 使用(パラレルおよびゲームポートは、割り当てるIRQがないため、未使用)。 本体の2チャンネルと併せ、計4回線を接続可。

ストレージ

ハードディスクは4式を実装。
本来、実装できる台数は2式(wd0, wd1)までだが、CD-ROMを取り外し、 空スペースにwd2を増設(前面にはブランクパネルを取付)。
さらに3.5インチフロッピーディスクドライブ下に吊り下げる形で 自作HDDベイを設置し、wd3を増設。

Disk_BP.jpgInner_Front.jpg
前面ブランクパネルCENTER:ブランクパネルの内部
Disk_Stack13.jpgDisk_ExtBayFar.jpg
wd0~wd2取付状況wd3増設状況

これにより、IDEインターフェースのチャンネルは全て埋まっているため、 現時点で最大限の実装状態となっている。

ソフトウェア

OS_Login.jpg

使用OS: OpenBSD 3.0 (2001年) ~ OpenBSD 4.3 (2008年現在)

実装メモリ量が小さいため、OSカーネルは不必要な機能を削った カスタムカーネルを作成し使用している。
このカーネル起動時のdmesgはこちら→ filedmesg.boot.txt
ログインしてオペレーションを行った例はこちら→ filetypescript-hsv.txt

このマシンにはOpenBSD本体以外に、以下のようなソフトウェアが追加導入されている;
bzip2 (ファイル圧縮), DeleGate (プロキシサーバ), dmassage (カーネル作成支援ツール), GNUPLOT (グラフ描画ソフト), ircd (IRCデーモン), Kermit (シリアル通信/ファイル転送), NetPBM (画像ファイル加工・変換ユティリティ), ng (日本語Micro GNU Emacsテキストエディタ), PHP-4 (スクリプト言語), APC (PHPアクセラレータ), screen (スクリーンマネージャ), Ruby (オブジェクト指向スクリプト言語), QuickML (メーリングリストドライバ), smtpfeed (高速メール配送エージェント)

このマシンは当初、外向けゲートウェイの予備機として運用されていたため、 追加インストールされたソフトウェアには、ネットワーク関連のものが多い。

#img(): File not found:

このマシンの動作速度の実測を行った結果を以下に示す。
測定対象として、セキュリティスキャナであるchkrootkit-0.48を 用い、そのコンパイル、及びchkrootkit自身の実行時間を測定した。

CPUメモリコンパイル所要時間 (秒)実行時間 (秒)
実時間ユーザシステム実時間ユーザシステム
486DX4 100MHz (盆栽)24MB70.8832.8719.85219.9357.74130.87
Pentium/MMX 200MHz64MB13.024.562.5345.5811.7518.94
Pentium-III 540MHz192MB2.251.140.678.882.715.49
Core2 4300 1800MHz1024MB0.410.210.182.000.851.78

以上の結果から、この「盆栽マシン」は、概ね 2007~2008年頃の標準的な性能を持つマシンの1/50~1/200程度の処理能力であることがわかる。

「盆栽」の意義

今まで見てきたように、このマシンは「今時の」マシンとは 比べものにならない程非力な処理能力しか持たない。

特に、メモリが非常に少ないため、現在デスクトップ環境で使われているような 高機能なアプリケーションを使うことはほとんど不可能と思われる。 また、サーバとしての用途を考えても、高速なネットワーク通信や 大容量のデータ処理なども困難と思われ、ごく軽いサービスを提供することが 運用可能な範囲だろう。

それでも、このような「盆栽」には幾つかの存在意義があると考えている。

まず考えられるのが、スケラビリティに関連する技術の修得である。
このような非力なマシンであると、運用中すぐに性能の限界に達してしまう。 そのため、運用が正常に行われるためには、システムの動作を基本から理解し、 それをパフォーマンスを向上させるための具体的な技術が求められる。
実際、管理者が意図せずとも、ハイスペックなマシンを余裕をもって 運用している場合に比べ、そのようなスキルが身に付きやすい。
また、マシンに対して過大な負荷がかかった場合の挙動なども容易に体験できるため、 実運用に用いられるようなハイスペックマシンを管理する場合も、 「盆栽」を使用した経験から敷衍し、あるスペックが どの程度までスケールするか、そしてスケールしなかった場合に どのようになるかを予測できやすくなると思われる。

次に挙げられるが、テスト・リサーチ環境としての有用性である。
盆栽には、標準構成を超えるハードウェアが装備されており、 それを用いての試験や実験を行うことができる。

最後に、ハードウェアとソフトウェアのそれぞれの技術を連携させて 修得できることも利点として挙げたい。


*1 この kaw.ath.cx も結構な盆栽だったりするが
*2 まだPCIどころかEISAも出ていなかった
*3 うち、1枚は、10BASE-5用のAUIポートも実装

Front page   New Page list Search Recent changes   Help   RSS of recent changes