ようこそゲストさん

はんかくさい日報

メッセージ欄

2009年7月の日記

一覧で表示する

2009/07/30(木) そろそろ限界か

2009/07/30 23:58 サーバ運営・管理
Valustar VU45/T 本体 6年以上、DNSとして使っています。本来はデスクトップPCですが、24時間運転のサーバとして使っています。
CPU K6-2 450MHz,メモリ 256MByte SDRAM2枚,HDD ATA66 20GByte。

この時代の製品は、現代と異なり丈夫なものが多く、永く使えます。
台湾製のものは概ね4年くらいで逝きます。

FreeBSD 7.2 を cvsup でソースコードを取得し、

make buildworld すると 18時間弱
make buildkernel すると 約6時間

かかります。
FreeBSD 4 の時代は長くても8時間くらいで済んだものですが、、、

その他もろもろの構築作業行うと、足掛け3日かかります。
普通は、作業効率悪すぎるので、他の構築方法を選ぶか、大抵はこのスペックのマシンは捨てて、より高性能なものに入れ替えるのですけどね。

いろいろ代替方策はありますが、システムの都合上、どれも使えないのです。
どれだけコストダウンの努力をしているのかのごく一端でも垣間見ることがお分かりいただけたらと希望しています。

2009/07/29(水) OpenLDAP 2.4.17 の構築オプションはまともに機能しない?

2009/07/29 18:31 サーバ運営・管理
先日、アカウント管理に使用している OpenLDAP を、2,4,16 から 2.4.17 に更新しました。
構築時、最初に configure コマンドにてオプション設定するわけですが、オプションが有効にならなかったり、テストでエラーになったりします。2.4.16 では出なかったんだけれど、、

以下は気づいた点:
--disable-monitor と --enable-monitor=no は同じ意味になるはずだが、どういうわけか --enable-monitor=no は効かない場合がある。
--disable-monitor オプション付きでコンパイルしても、テストは実行されてしまう。だから、この場合 test056-monitor はエラーになる。
--disable-dynlist は、デフォルトでそういう設定だが、中途半端に有効になり、明示的に無効にする指定をしないと test044-dynlist はエラーになる。
--without-cyrus-sasl または --with-cyrus-sasl=no は指定しても機能しない。無効にするには、Cyrus-SASL そのものをライブラリとヘッダごと削除しないと駄目っぽい。
Cyrus-SASL は最近はまともにメンテナンスされておらず、特に FreeBSD 7.0以後、構築すると、Warning が沢山出てくる。使えるのだろうが、一抹の強い不安がある。
hdb バックエンドにおいて、test058-syncrepl-asymmetric がエラーになる。hdb はとりあえず使わないので、気にせずインストールしているが、、

1: くわばら 『cyrus-sasl2 を使って OTP のチェックを外すと旨くいった記憶がありますが、間違っていたらごめんなさい。 もう c...』 (2010/08/31 19:39)

2: たかはし@札幌 『現在は、cyrus-sasl は使っていません。 OpenLDAP 2.4.23 ですが、FreeBSD 8.1R で利用できて...』 (2010/09/02 16:17)

3: くわばら 『そうなんですか。私は8.0R なので凄く悩んでしまいました。 OpenLDAP も 2.3.X ですが、id を実行した時にグル...』 (2010/09/03 11:58)

2009/07/26(日) 便利そうだが使えない― milter-manager/dovecot-sieve

2009/07/26 23:40 サーバ運営・管理
弊社では、営業運用として電子メールサーバを稼動させています。
今の事業形態になる前を含め、本格稼動から9年経過し、2003年8月に大幅なシステム改良を顧客のご協力を得て行ったのが現行のシステムな訳ですが、一部ソフトウェアにサポート継続が出来るかどうかの問題が出てきたため、将来的な費用対効果もあって、一部を変更する検討をしていたのですが、、

現在は、
SMTP: Postfix
IMAP/POP: Courier-IMAP
LDA:Courier-maildrop
Virus/Spamscan: ClamAV/SpamAssassin/Amavisd-new
Auth:Cyrus-SASL/Courier Authlib/OpenLDAP
という布陣です。

メールサーバというのは、サービス特性上、1つのソフトウェアのみで構成不能なのが通常で、弊社の場合は9つのソフトウェアを組み合わせて構築しています。更に稼動させるために基本OS含め5つの主なソフトウェア(うち3つが自社開発)を使う必要があり、合計14のソフトウェアで構成していることになります。
Web サーバより、はるかに複雑なのです。

そのうち、稼動負荷の高い Amavisd-new と、将来的なメンテナンスに不安材料を抱える Courier-IMAP,Cyrus-SASL と、メンテナンスコストを大幅低減を狙うため、加えて Courier-maildrop, Courier-Authlib,Cyrus-SASL の代替を探していたところ、候補にしたのは、
・dovecot (Courier-IMAP と Cyrus-SASL を置き換える)
・dovecot-sieve (Courier-maildrop を置き換える)
・既存 ClamAV の milter 対応 (Amavisd-new を取り除く)
・既存 SpamAssassin の milter 対応 (Amavisd-new を取り除く)
・milter-manager (Amavisd-new の代替)

そしてこの5つが実現できることで、 Courier Authlib も不要になり、Courier シリーズ全廃&管理コスト削減という算段だったのですが、、

dovecot-sieve は、Courier-maidrop のように、外部プログラムを呼び出して、フィルタする、ということが、現状ではできません。
これはかなり致命的。
milter-manager で消化することを試みることにしました。milter-manager は ruby 1.8とC の混在環境で稼動するようです。

が、設定までは何とか出来るのですが、SMTP コネクションを接続し、milter-manager を呼び出したところで、どういう訳かサーバそのものが I/O デッドロック状態のようになります。
リセット・再起動しないと、キーボード入力すら受け付けないのです。

ruby のバージョンを 1.8.7 の最新にしてみたり、依存ライブラリ等を最新にしてみたり、上書きインストールをしてみたり、と色々試したのですが、どうもマルチスレッド絡みで根深そうなので、今回は、milter-manager の採用は見送りざるを得ませんでした。

結局置き換え出来たのは、
Courier-IMAP → dovecot
Cyrus-SASL → dovecot
Amavisd-new → ClamAV-milter (ClamAV 標準配布)

の3つで、運用管理するべきソフトが3つ減り、新たに dovecot が加わった形。
dovecot-sieve で外部コマンドが実行可能だと、Courier-maildrop と Courier-Authlib も廃止できて、更に2つ減らせたのだけれど、、
さもなければ、dovecot-deliver で maildrop と同様の機能を提供して頂くとか。現状は外部コマンド実行不可なので、この時点で当環境では dovecot-deliver の採用はできないことが判明。

dovecot-sieve は機能不足で、当環境では採用時期が早過ぎたようです。振り分けだけなら出来るのですけどね。。