usamimi.info servers
初期の頃はサーバーが一台だった為、全ての処理をtoyaが行っていました。
今に至るまでにDBや画像ファイルの処理を別サーバーに分離していますが
今回はCGI(Perl,PHP)の実行とユーザーデータの保存を分離します。
- メリット
CGIはtoyaで実行されますが、データの保存はpatchouliに保存されるようになります。
toyaはCGIの実行に専念し、今までtoyaからデータを呼び出していた
負荷分散サーバーのr-moonやyukariはpatchouliに保存されているデータを参照するようになります。
こうする事で、CGIの実行サーバーを増やすことが可能になると同時にtoyaへのI/O負荷が分散されます。
- デメリット
ファイルロックなど一意性の確保は大丈夫なのかどうなのか
komachi(隔離サーバー)での実例がある為
設定をちゃんと行えば実行と保存が別のサーバーでも問題は無いと思われる。
現行のtoyaでは週1のバックアップ以外特に何もしていませんが
予定しているpatchouliにはファイルシステムにZFSを採用し
HDD3台を使ってRAID-Zで運用します。
ユーザー毎にアカウント容量を変更 †
zfsの採用によって、より柔軟にアカウント容量が管理できるようになる為
200MBの標準から用途に応じて容量を割り当てられるようになります。
zfsにはユーザーでも実行可能なsnapshot機能がある為、ユーザーの皆さんが任意のタイミングで
アカウントのデータをサーバー上にバックアップしておくことが出来る様になる予定です。
またこれは、アカウント容量に加算されません。
誤って削除してしまった場合や以前の状態に戻したい場合に有効な機能であり
システムの障害にはRAID-Zや別サーバーへのバックアップで対応します。
http://www.atmarkit.co.jp/flinux/rensai/opensolaris04/opensolaris04a.html
現在生ログの集約と処理はr-moonとmarisaが担当していますが
少なくとも集約に関してはpatchouliに移す予定です。
ただしI/O負荷が大きい場合は行わないかもしれません。
アカウントデータ管理をtoyaから引き継ぐ †
現在、全てのサーバーがtoyaに保存されているアカウントの情報を
参照して処理を行っていますが、これがpatchouliになります。
CGIの実行よりは負荷は低い為、負荷分散の一環です。
patchouli上にjailを使ってtoya(メインサーバー)と同等の役割をもつ
remiliaを構築すると、サーバーリソースが無駄にならずに済むかも
初期の頃からずっと使い続けてきたtoyaの環境を破棄し
同等の機能でクリーンインストールした環境を用意する
現在のtoyaでは、古いモジュールが邪魔して不安定になったり
他のサーバーで上手くいった事が上手くいかないことがある為
toyaの環境を1から作り直します。
i386の32bit環境からamd64の64bit環境への移行も狙いの一つです。