優雅な生活の設計と実装

The Design and Implementation of the Gracious Days


LAST MODIFIED: 2004/10/02 18:27:35 UTC

新しい秩序の確立は、他の何にも増して難しく、
成功する可能性が低く、危険な事業である。
改革者は旧秩序から利益を得ている
全ての者を敵にまわし、
新秩序から利益を受けるはずの者からは
及び腰の支持しか集められない。
--- Niccolo Machiavelli, The Prince

この種の「保護」は初心者を保護するかも知れないが、
熟練ユーザを窮地に追い込むことになる。
というのは、何が親切であり、何が適切でないかかという
オペレーティングシステムの考え方の裏をかくことばかりに
かなりの労力を費やさなければならないからである。
--- A.S.Tannenbaum, Modern Operating Systems


不定期更新の日記です。ディスクスペースの関係上、 あまりに古くなったものは順次消していきます。 この日記の更新は、今野さんの *BSD Diary Links から取得することが可能です。

September 2004

感想はこちらまで (内容は匿名のメールで送られます)

コメント:

注: お返事が必要な場合は直接メールください。 ただし、確実にお返事するかどうかはわかりませんのであしからず。

発売中:「Absolute BSD〜FreeBSDシステム管理とチューニング」
[book imge] [→ 書籍情報]
[→ amazon.co.jp]
[→ cbook24.com]
[→ 関連する日記のエントリ (09/24)]

Wednesday, September 29

* Serial console (again)

去年から、なるべく安価にシリアルコンソールサーバを構成するにはどうしたらいいのだろう というのを調べていたので、簡単にまとめてみる。

前回は、玄人指向の SERIAL4P-LPPCI という PCI のマルチシリアルカードを使って FreeBSD box をシリアルコンソールサーバにしてしまうというお話だった。 「どうせすぐになくなってしまうんだろうな」と思っていたら、 未だに売っているのでびっくり。ありがたい。だいたい 5,000-6,000 円前後。 ポート単価は 5,000/4 ポートで計算して 1,250 円。 ある程度信頼のおけるマシンに接続してサーバにしなければならないので、 そのマシンの管理を考えなくちゃダメ。

will@ がどこかで話しているのを聞いたところによると、USB-serial 変換アダプタと USB hub を組み合わせてたくさんのシリアルポートを確保する、というのをやったことがあるらしい。 USB-serial 変換アダプタは、安いものでも 1 個 3,000 円程度。ちょっと高い。 「こっちは安くて $10 くらいだぜ」と言っていたので、 それくらい安ければ選択肢としてアリかなぁ、という気はするけれど‥‥

FreeBSD では ucom(4) として見えるものがいくつかある。たとえば Planex の URS-03 は、次のように認識される。

ucom0: Prolific Technology Inc. USB-Serial Controller, rev 1.10/3.00, addr 2

ただし、ucom(4) と uplcom(4) を組み込む必要があるので注意。 1U サーバなど、シリアルポートが 1 個しかないものに増設したい場合にはお手軽な方法。/dev/ucomX は tty と同じように扱える。

また、IEEE1394(FireWire) が使えるなら、dcons(4) を使って firewire(4) 経由でコンソールアクセスをおこなうことも可能。今は FreeBSD と DragonFly で使える。そのうち NetBSD でも使えるようになるはず。 いろいろ他にも活用できて面白いのだけど、残念ながらうちの環境には IEEE1394 が使えない古いマシンが多いので、 あまり活躍の場がなかったりする。IEEE1394 のリピータハブは、1394a 対応の 6 ポートが 5,000 円程度 (FH-600 (6ports) など)、 1394b 対応は 3 ポートで 15,000 円超。

また、最近聞いたところによると、 中古のダイヤルアップアクセスサーバをシリアルコンソールサーバとして使っている人が、結構いるらしい。 ざっと調べてみると、Lucent (旧 Livingston) の PortMaster というサーバが安価かつ実績あり。 中古の reseller を探すと、シリアルポートが 30 個ついたモデル PM-2e が $200 を切っている。 スペックはこちら。 スタンドアロンで動作可能で、10BASE-T を使って telnet で接続可能。 本来はアナログモデムや ISDN 回線を接続して PPP サーバ + ルータとして動かすのが目的なのだけど、 telnet でログインしたり、それぞれのシリアルポートに異なる TCP ポート番号を割り当てて、 telnet でのアクセスをそのままシリアルポートに回送してくれる機能がある。 安く手に入ってシリアルコンソールサーバとしても使える、 というので、その筋では有名なのだそうな。

似たようなものには Cisco 2511, Xyplex MAXServer 1600, Bay Networks の Annex terminal server などがある。Cisco のやつはソフトウェアライセンスが必要なので除外するとして、 Xyplex と Bay Networks のやつは、中古なら $100 程度のもよう。 PortMaster PM-2e は、eBay では $70 前後で取り引きされている。 中古業者から買うとして $200 で計算すると、 ポート単価は約 800 円。単体で動くシリアルコンソールサーバとしてはかなり安い。 ちょっと欲しくなってしまったので、本気で手に入れようか考慮中。

もし他にもこんな風にやってます、というアイディアをお持ちの方がいらっしゃったら、 ぜひ教えてください ;)

Tuesday, September 28

* SGI O2

allbsd.org に IRIX を追加しようと、SGI O2 を入手してみる。 IRIX に触るのは初めてなので、ちょっとメモ。

CD ドライブの調子が悪くてトレーが出てこない状態なので、 まずは内蔵ドライブの交換に挑戦。どうやって解体すればいいのだろ、 と背面から電源やマザーボードなどを引き出してみる。 上面の黒い部分が取れればなぁ、と眺めていたら、 全部引き出したあとに簡単に取れることに気づく。 コンポーネントが組み立てやすくできていて、ちょっと感動。

CD ドライブは東芝製。検索してみると、 東芝製のドライブ以外は動いたり動かなかったりするよ、 と書いてあるのが見つかる。 昔のドライブをいくつかひっぱり出して試してみると、 TEAC のドライブはきちんと認識するもよう。 内蔵のものは ID=3 にしないとダメみたい。

キーボードを接続しないで起動すると、 自動的にシリアルコンソールを使ってくれる。すばらしい。 念のため mkfs をかけて IRIX 6.3 を再インストール。

再起動してざっと /etc を覗いてみる。/etc/init.d と /etc/rcX.d がたくさん、という System V 風。パスワードが付いていないユーザがあって、 root も空パスワードだったので、ユーザ情報の整理からはじめる。 passwd root を実行してパスワードを付けたあと、 その他のユーザのパスワードエントリを :*: にして、 pwconv を実行。/etc/shadow を確認。

次にネットワークの設定。ホスト名は /etc/sys_id, ifconfig や route を使った設定は /etc/config/* に書きましょう、と /etc/init.d/network に書いてあるので、それに従って作業。最後に chkconfig を使って、いらなそうなサービスを停止。

ここで一回再起動させて、ネットワークまわりの設定が正常におこなわれるか確認。 いい感じ。主にコンパイルマシンとして使うだけなので、 あとは gcc などのソフトウェアを追加していけば大丈夫そう。

Foundation (と必須 patch) だけインストールしたところ、 使用容量は 400MB くらい。ホームディレクトリは /usr/people/* を使うものなのかなぁ、 と思いつつ、mkdir /home しておく。 automount(1M) は入ってない。 SGI TPL を探してみると、どうも ONC3/NFS という別のパッケージが必要になるとのこと。 その他、/usr/include は足りてそうだけど、manpage は明らかに足りない。 インストール CD の中を探す必要がありそう。

ほとんどデフォルトのインストールで ps -ef | wc -l が 28 しかない、というのは把握しやすくていい感じ。

Monday, September 27

* doc tree tagging

完了。 5.3R のリリース日を延期したのでちょっと早いかという気もするけれども、 延ばしたところで利点があるとは思えないので、予定を優先。 あとは必要に応じて tag を移動させて対処する方向で。

ちょっと今回の対応は異例ではあるのだけど、 達成目標を設定して、ある程度 tree の変更に対する coordination ができるようにするには、この方法 (tag 打って、必要なものをあとで移動) がとりあえず使えるのではと思う。 doceng@ の charter には "to manage the doc/ release process" とあるので、 doceng@ が coordination すること自体は大義名分がある。 ただ、「どこまで介入すべきか」というのは議論が分かれるかも知れない。

いろいろ試行錯誤中。

Friday, September 24

* a long separaiton

ひさびさに更新。

* FreeBSD 5.3-RELEASE commentary

リリース日は 1 週間先延ばし。今回てこずっているのは、 主にスケジューラまわりと BIND9。

5.3R では、ようやくネットワークスタックが giant free で動きます。 ただ、IPI に対応したり優先度の高いスレッドを preempt できるようにしたところ、 ULE スケジューラではどうも正常に動かないということが判明したため、 デフォルトが 4BSD スケジューラに戻りました。すぐになおせるなら ULE にするという案もあったのですが、maintainer の反応がよろしくないこともあり、5-STABLE では当面 4BSD だと思います。 -BETA4 くらいまでは、ほぼこれらの問題の洗い出しで終りました。

-BETA5 が必要と判断されたのは、 ACPI、サウンド、 フロッピーディスクドライブまわりがおかしいという報告があったからです。 これらは修正がすぐに入りました。

-BETA4 あたりから並行して、BIND9 はどうなっているのだという議論がありました。 担当してた dougb が忙しくて時間がないという話だったのですが、 nectar (security officer) などからは 5.X のサポートが切れるまで、 ISC は BIND8 をサポートするだろうかという疑問が提起され、 じゃあ時間的に厳しいけど、入れるべきだよねということで意見が一致。 で、なぜか trhodes が作業。

しかし、import してみると問題がいくつか。import 場所はこれていいのかという話もあったのですが、bind9 は bind8 とコードベースが違うから、という理由で src/contrib/bind9 になったようです。 CVS レベルで src/contrib/isc-bind にコピーしたほうがいいのでは、 src/contrib/bind を src/contrib/bind8 にコピーして、src/contrib/bind に BIND9 を再度 import して、RELENG_4 では bind8 を使うように変更する、 などの案が出てます。とりあえず ru が担当。

import してから判明した問題は、libisc を使っている ATM 関連のコード (sscop と bsnmpd) が動かなくなったということでした。maintainer である harti は、忙しくて作業ができない状態。 trhodes がやるぜと出てくる。「やると言ってた doc の作業はどないなっとるんや」と突っ込んだら、 「忙しいからあとで」という返答が。

もう二度と信用しないぞと心に決めつつ、 doc tagging のスケジュールも近いので、 こっちはこっちで残っている作業を再確認してるところです。 とりあえず現時点の方針として、BIND が安定するまでリリースは出ません。 もし -BETA6 に間に合わなければ、-BETA7 を設定し、 もう一週間先延ばしすることも検討しています。

まだ old vinum の削除も候補にあったりと、 どうも泥沼っぽいです。10 月中には何とかなると思いますけど、 延期してばかりな体質は、どうにかしないとダメですね。

* Absolute BSD 日本語版

各方面に迷惑かけまくりだったのですが、mycom から 今月末に出版されることになりました。原著者は O'Reilly OnLamp の BSD DevCenter の連載で有名な Michael Lucas (mwlucas@) です。 2002 年に出版されたもので、5.X で変わってしまった部分はなるべく加筆や差し替えをおこないましたが、 書いてるうちにどんどん変わってしまった部分もあるので、 そのあたりを解説したサポートページを作ろうと思っています。

内容は、サーバの構築・管理について全般的なことが書かれています。 純粋な HowTo ものではなく、管理の常識や心構えみたいなものを示していて、 特に、分からないことがある時の情報の調べ方が、非常に詳しく書いてあります。 必要な部分はきっちり解説し、調べられるところは「ここは○○を調べましょう」という 風になっていて、うまくバランスをとっているところが印象的でした。 最近はあまり目にしなくなった RCS や dump/restore の使い方についての解説や、kernel panic が発生した時に developer に情報を提供するために crash dump をとったり、 kgdb を使うにはどうしたらいいか、というような内容もあります。 ユーザとしては触った経験があるけど、サーバの管理はよく分からない、 という人におすすめです。

原文の雰囲気を残すために、全体的に文体をフランクなものにしました。 佐藤の力不足な点も多々あるので申し訳ないのですが、 最近は BSD 関連書籍が少なくなってきてしまっていることもありますので、 財布の中身に余裕のある方は、どうかご協力をいただければと思います :-)