Jump to: navigation, search

Translations:ReleaseNotes/Liberty/7/ja

Revision as of 16:05, 17 October 2015 by Amotoki (talk | contribs)
  • object-server とレプリケーションサーバーの設定ファイルの [DEFAULT] 設定セクション中の servers_per_port 設定値を正の整数にすることで、object-servers-per-disk (ディスク単位のオブジェクトサーバー) を複数にすることができるようになりました。この設定の整数値は、Ring 内の1つのローカルポートに対して、何個の 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 に追加されなければなりません。