Jump to: navigation, search

Translations:ReleaseNotes/Liberty/7/ja

Revision as of 15:06, 17 October 2015 by Yosshy (talk | contribs)

object-server とレプリケーションサーバ用の設定ファイルの [DEFAULT] 設定セクション中の servers_per_port 設定値を 1 以上の整数にすることで、object-servers-per-disk (ディスク単位のオブジェクトサーバ)を複数にする事ができるようになりました。この設定の整数値は、Ring 中の単一ローカルポートにおいて、いくつの個別の object-server ワーカーがリクエストを処理するかを決定します。このモードでは、親となる swift-object-server プロセスが元々のユーザとして実行を継続します(低レベルポートのバインディングが必要な場合は root になります)。このプロセスは Ring 中で定義された全てのポートをバインドします。その後、親プロセスはリッスンソケット単位で指定された数のワーカーを fork します。子プロセス(ポート単位サーバ)は特権を破棄し、object-server ワーカーが通常持っている挙動とほとんど同じ動作をしますが、1つ例外があります: Ring はディスク単位に個別のポートを持っており、object-server は単一ディスクに対するリクエストのみ処理します。親プロセスはワーカープロセスが死んだ事を検知し、(適切なリッスンソケットを持つ)ワーカープロセスを再起動します。新しいポートを持つサーバ上のデバイスを持った、Ring ファイルのアップデートが見つかった場合、親プロセスは不足しているサーバを新たに実行し、Ring に最早見当たらないポートがあった場合、このポートを持っていた余分のサーバを停止します。Ring ファイルは、長くても object-server 設定ファイル中の各 ring_check_interval パラメータ(いずれもデフォルトは 15秒)で設定されたスケジュールで Ring ファイルがスタートします。テストでは、既存の workers 設定に比べ、このデプロイ設定(値=3)が応答遅延を最も削減し、秒間リクエストを改善し、低速なディスク I/O を分断します。この機能の使用の為、各デバイスは異なるポートを使用して Ring に追加されなければなりません。