FreeBSD6での大量jail環境構築中。
大量なので、システムディレクトリは全部 unionfs -b でやろうとしたのだ が、あれれ、FreeBSD 6って、unionfsがまた不安定でやんの。unionfsの ディレクトリにたいしてrsync書き込みすると落ちる。lockまわりか (※)。
てことで、nullfs に変更。システムディレクトリをroマウント、/varだけ
rwマウント。書き込みの起きるパーティションは全部 /var ということで手を打っ
た。そんでもって50個のjailを作って50個同時にmakeをさせてみた。多少反応が
鈍くなる程度。よろしい。昔は jexec
がなかったから
同時に大量のジョブを流し込むのが面倒だったような記憶が。
さてさて現状では50個のjailに50個のLANアドレスを付けている。 プライベートアドレスだからIPv4としてはぜいたくな/24をつけているのだが、 さすがに50個も消費するともったいない。てことで、loopback インタフェース で頑張る。
% sudo -H zsh # ifconfig lo1 create # for i in {100..149}; do ifconfig lo1 alias 192.168.1.$i netmask 0xffffffff done
てな感じでlo1にIP aliasを付けまくって、それらに対してjailを起動する。
外から来たSSHリクエストにだけこたえるようにするにはipfwでfwdを指定す る。たとえば、10000+n 番ポートに来たリクエストを 192.168.1.(100+n) の22番ポートに振るには
% sudo -H zsh # for i in {0..49}; do ipfw add 30000 fwd 192.168.1.$((100+n)):22 from any to me $((10000+n)) done
という感じ。ついでに、帰りパケットが外に出て行くために親環境の ほうで、natdをあげておかないといけないのでちうい。
後日otsuneさんより FreeBSD unionfsの改善提案というページがあることを教えて いただいた。
叱咤激励感想ツッコミはゲストブックへ
Generated with mkdiary.rb