current.jp.FreeBSD.org の動作環境

current.jp.FreeBSD.org という計算機は, もちろん web や ftp 等のサービスを提供しているわけですが, 提供されている中身自体,つまり SNAPSHOTs の作成等もこの計算機 (もちろん 1 台です)でやっています. ここでは,この計算機の動作環境について簡単に説明します.

稼働している OS

もちろん,FreeBSD を用いています.ただ,稼働させているバージョンについては, 過去からいくつかの変化がありました.

サービスを開始する(1999年9月)以前に, 試験的に(個人の計算機上で)運用していた際には, 当時の 4-current を用いていました. しかし,実際にサービスを運用することになった時点で「さすがに -current でサービス計算機を作るのは不安だ」という判断から, 当時の 3-stable 上で運用することになりました.つまり, 3-stable 上で 3-stable/4-current の SNAPSHOTs を作成していたことになります.

しかし,1999 年 10 月頭に -current へ入った signal 回りの変更によって, この状態をかえなければならない状態になります.というのも, 当時の 3-stable 上では 4-current の binary が実行できないため, SNAPSHOTs 作成ができなくなってしまったからです.数日後,4-current へ OS を変更することによって,無事元の SNAPSHOTs 作成ができるようになりました.

OS の version 変更,というのは,普通に考えれば,そう大変な作業ではありません. しかし,current.jp.FreeBSD.org が設置されている場所は,普段人がいない場所, であるため,全ての作業を完全にリモートで実行するか,現地に誰かが行く, という作業が必要になります.このため,1999 年 10 月の変更の後は, あまり大きな変更を行えない状態にありました.

時はかわって 2000 年 7 月, current.jp.FreeBSD.org を運用している計算機の更新作業が行われました. 更新の主な目的は,disk 容量の増加,新しい OS への変更 (その当時における最新の 5-current が用いられました)です.IPv6 サービスや, ISO image 提供など,この計算機更新によって, より多くのサービスを提供できることになりました. また,計算機の console を serial 側に変更することによって, 仮に reboot した場合でも,遠隔地から serial 経由で操作することにより, 稼働する OS の変更をやりやすくする,といった改善も行われました. 2000 年 10 月中旬に起きた「make release を実行すると, boot floppy 作成時に kernel が停止してしまう」問題の際にも, この serial console が活躍しました(本来は活躍しない方が良いわけですけども).

現在では,(たまたま) 2000 年 9 月下旬ころの 5-current が用いられています. しかし「-current でありながら,安定した version を使いたい」 という current.jp.FreeBSD.org の持つ矛盾を解消することは, とても難しい問題です.そもそも,現状が本当に安定しているかどうか, ということすらはわかりません.また,先の事例のように 「どうしても OS の version を変更しなければならない」 という状況になることも考えられます.今後も, 状況を見て適宜 OS の変更を行いつづけることになるでしょう.


稼働しているツール等

OS 以外の各種ツールは,基本的に全て ports を用いてインストールされています. また,適宜 /usr/ports 以下を更新し,古くなった物は新しくしています. ちなみに,最近の 4-stable 以降では,weekly script で「古い ports がどれか」 をチェックしてくれる機構があります(default では無効ですので,利用する場合は, /etc/periodic.conf 等を用いて有効にする必要があります)ので, これを利用すると便利でしょう. 各種サービスを提供する際に用いられているツールは,以下の通りです.

Web
あまり高度な機能を必要としないこと,IPv4/IPv6 共に利用可能なもの, という観点から,thttpd (www/thttpd)を用いています.
anonymous ftp
過去,wu-ftpd (ftp/wu-ftpd)を用いていましたが,現在では OS 附属の ftpd を基本的にそのまま用いています(より詳しい log を取得するため, 一部 code を変更していますけれども).
ftp mirroring
packages や XFree86 については,外部の計算機から ftp 経由で mirroring しています.この際に spegla (net/spegla)を用いています.
rsync
これはもちろん rsync (net/rsync) です.
ISO-IMAGE 作成
実際に image を作成する際に,mkisofs (sysutils/mkisofs)を用いています.
Source Code Tour
code の解析や HTML ファイル作成のために global (devel/global) を用いています.
その他
その他のサービスについては,それぞれのサービスのために個別に書かれた script があります.SNAPSHOTs 作成用の script 等は, as-is の形で提供しています.

もちろん,これらの構成は「現時点」のものです. これからも必要に応じて適宜 update,あるいは変更し続けることになると思います. 逆に,そうし続けなければ, 常に変化し続けている FreeBSD の SNAPSHOTs 作成はできないでしょう.


目次に戻る

[Powered by FreeBSD]

www@jp.FreeBSD.org
Copyright (C) 2000 The FreeBSD Project (Japan). All rights reserved.
$Date: 2002/01/05 16:13:12 $