Riakクラウドストレージ。パート2。RiakCSコンポーネントの構成

この記事では、Riak Cloud Storageシステムの個々のコンポーネント、つまりRiakCSコンポーネントを引き続き構成します。



画像


この記事は、Riak CS2.1.1システムの公式マニュアルの無料翻訳の続きです。

パート1。RiakKVの構成

パート3。支柱、プロキシおよび負荷分散、S3クライアント

Riak CSコンポーネントが正しく動作するようにするには、RiakKVへの接続方法を知ることが重要です。Riak CSノードは通常、対応するRiakKVノードと同じサーバー上で実行されます。つまり、変更が必要になるのは、Riakがデフォルト以外のパラメーターを使用して構成されている場合のみです。



Riak CS設定は、riak-cs.confおよびadvanced.conf構成ファイルのCSノードにあります。両方のファイルは通常、/ etc / riak-csディレクトリにあります。新しいriak-cs.confファイルは、config =オプションのペアを持つ単純なリストですが、advanced.configファイルを介してのみ変更できるオプションがあります。次のようになります:



ADVANCED.CONFIG



{riak_cs, [
    {parameter1, value},
    {parameter2, value},
    %% and so on...
]},


2.0.0より前のバージョンからアップグレードする場合(riak-cs.confファイルが導入されたとき)は、riak-cs.conf /advanced.configの場所にあるapp.configファイルを引き続き使用できます。app.configファイルの構文はadvanced.confファイルと同じであるため、advanced.confに使用される例はすべてapp.configファイルで直接使用できます。

古いapp.configファイルが新しい構成ファイルに置き換わることに注意してください。app.configが存在する場合、riak-cs.confもadvanced.configも使用されません。
注:レガシーapp.configについて

以前のバージョンのRiakCSからRiakCS 2.0にアップグレードしていて、継承されたapp.configファイルを引き続き使用する予定の場合は、一部の構成ファイルでオプション名が変更されていることに注意してください。また、Stanchion、Riak、RiakCSのバージョン2.0でIP /ポート形式が変更されました。Rolling UpgradesDocumentで変更を確認できます



使用可能なオプションの完全なリストとapp.configのオプションの完全なリストについては、完全な構成リファレンスを参照してください
以下のセクションでは、RiakCSの重要な構成オプションについて説明します。



ホストとポート。



RiakCSをRiakKVに接続するには、RiakKVが使用するホストとポートが設定されていることを確認してください。



  • riak_host -127.0.0.1:8087を、RiakCSに接続するRiakKVノードのIPアドレスとポート番号に置き換えます。


RiakCSのリスナーホストも設定する必要があります。



  • リスナー-127.0.0.1:8080を非ローカルで使用する場合は、RiakCSホストのIPアドレスとポート番号に置き換えます。ポート番号が、同じマシンで実行されているRiakKVホストおよびRiakCSホストのriak_hostポートと競合しないことを確認してください


注:IPアドレスについて

ここに入力するIPアドレスは、Riak CSが完全に異なるネットワークで実行されている場合を除き、riak.confファイルのRiakKVプロトコルバッファーインターフェイスに指定されているIPアドレスと一致する必要があります。アドレスの翻訳。
riak-cs.confにいくつかの変更を加えた後、Riak CSノードがすでに実行されている場合は、再起動します。



支柱ノードのパラメータ



1つのRiakCSノードを使用している場合は、ローカルホストで実行されるため、Stanchion設定を変更する必要はありません(注:Stanchionは、クラスター全体で1つのインスタンスにのみインストールされます)。Riak CSシステムに複数のノードがある場合は、StanchionノードのIPアドレスとポート、およびSSLを使用するかどうかを指定する必要があります。

Stanchionのパラメーターは、各RiakCSノードの./etc/riak-cs/confディレクトリにあるRiakCSノードのriak-cs.conf構成ファイルにあります。



Stanchionのホストとポートを設定するには、Stanchionが使用するホストとポートに次のパラメーターが設定されていることを確認してください。



  • stanchion_host -127.0.0.1:8085をStanchionホストのIPアドレスとポートに置き換えます。


SSLの使用



StanchionではSSLはデフォルトで無効になっています。パラメータstanchion_sslオフに設定されています。StanchionがSSLを使用するように構成されている場合は、値をonに変更します次の構成例では、Stanchionをlocalhost、ポート8085(デフォルト)に設定し、SSLの使用を許可します。



RIAK-CS.CONF



stanchion_host = 127.0.0.1:8085
stanchion_ssl = on


ADVANCED.CONFIG

{riak_cs, [
    %% Other configs
    {stanchion_host, {"127.0.0.1", 8085}},
    {stanchion_ssl, true},
    %% Other configs
]}


ホスト名の設定



より便利なRiakCSホスト名を定義して、トラブルシューティング中にプロンプ​​トが表示されるホストを特定するのに役立てることもできます。これは、/ etc /riak-cs.confにもあるriak-cs.confまたはvm.args構成ファイルで構成されます。RiakCSノード名はここに設定されますriak_cs@127.0.0.1:



RIAK-CS.CONF



nodename = riak_cs@127.0.0.1


VM.ARGS



-name riak_cs@127.0.0.1


127.0.0.1を、RiakCSを実行しているサーバーのIPアドレスまたはホスト名に変更します。



管理者アカウントを作成する



管理者は、ユーザーの作成や統計の取得などのアクションを実行するための特別に許可されたユーザーです。管理者アカウントは、他のユーザーのアカウントと同じです。Riak CSを将来使用するために、管理者アカウントを作成する必要があります。

注:匿名ユーザーの作成について。



管理者アカウントを作成する前に、riak-cs.confでanonymous_user_creation = onパラメーターを設定する必要があります(またはadvanced.config / app.configで{anonymous_user_creation、true}を設定します)。管理者が作成されたら、再度無効にすることができます。
管理者アカウントを作成するには、POSTHTTPリクエストと管理者アカウントに必要なユーザー名を使用します。例:



CURL



curl -H 'Content-Type: application/json' \
  -XPOST http://<host>:<port>/riak-cs/user \
  --data '{"email":"admin@example.com", "name":"admin"}'


JSON応答は次のようになります。



{
  "display_name" : "admin",
  "email" : "admin@example.com",
  "id" : "8d6f05190095117120d4449484f5d87691aa03801cc4914411ab432e6ee0fd6b",
  "key_id" : "OUCXMB6I3HOZ6D0GWO2D",
  "key_secret" : "a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag==",
  "name" : "admin_example",
  "status" : "enabled"
}


オプションで、Content-Typeをapplication / xmlに設定することにより、XMLを送受信できます。



管理者を作成したら、RiakCSノードごとに管理者権限を設定する必要があります。管理者権限は、/ etc / riak-csディレクトリにあるriak-cs.conf構成ファイルで設定されます。admin.keyの引用符の間にkey_id行を挿入します。secret_keyパラメータフィールドを貼り付けますadmin.secret:



RIAK-CS.CONF



admin.key = OUCXMB6I3HOZ6D0GWO2D
admin.secret = a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag==


ADVANCED.CONFIG



{riak_cs, [
           %% Admin user credentials
           {admin_key, "OUCXMB6I3HOZ6D0GWO2D"},
           {admin_secret, "a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag=="},
           %% Other configs
          ]}


バケットの制限



ユーザーが作成するバケットの数に制限を設定することもできます。デフォルトは最大100バケットです。ユーザーがバケットの作成制限を超えた場合でも、バケットの削除など、他の操作に使用できることに注意してください。Advanced.configファイルの各ノードでmax_buckets_per_userパラメーターを使用してデフォルトの制限を変更できます。これは、riak-cs.confファイルでの同じ変更ではありません。たとえば、以下の構成では最大1000が指定されています



。ADVANCED.CONFIG



{riak_cs, [
           %% Other configs
           {max_buckets_per_user, 1000},
           %% Other configs
          ]}


1人のユーザーによるバケットの作成に関する制限を削除する場合は、max_buckets_per_userパラメーターの値を無制限に設定できます。



接続プール



Riak CSは、2つの明示的な接続プールを使用してRiak KVと通信します。プライマリ(プライマリ)プールとセカンダリプールです。



プライマリ接続プールは、オブジェクトのロードまたは取得に関連するほとんどのAPI要求を処理するために使用されます。これは、構成ファイルでpool.request.sizeとして指定されます。デフォルトのプールサイズは128です。



セカンダリ接続プールは、バケットコンテンツの列挙要求に厳密に使用されます。パフォーマンスを向上させるには、個別の接続プールが必要です。

セカンダリ接続プールは、構成ファイルでpool.list.sizeとして定義されています。デフォルトでは、そのサイズは5です。



以下はconnection_pools構成エントリです。



app.configファイルにあるデフォルト:RIAK-CS.CONF



pool.request.size = 128
pool.request.overflow = 0
pool.list.size = 5
pool.list.overflow = 0


ADVANCED.CONFIG



{riak_cs, [
           %% Other configs
           {connection_pools,
           [
            {request_pool, {128, 0} },
            {bucket_list_pool, {5, 0} }
           ]},
           %% Other configs
]}


各プールの値はペアに分割され、最初の数値はプールの通常のサイズを表します。これは、RiakCSノードが処理できる特定のタイプの同時要求の数です。2番目の数値は、許可されるプールオーバーフローの数です。注意深いテストで、選択した値が特定のケースに役立つことが示されていない限り、ここでオーバーフローに0以外の値を使用することはお勧めしません。



チューニング



RiakKVでpb_backlog パラメーターの値を設定するときは注意することを強くお勧めしますRiak CSノードが開始されると、各接続プールはRiakKVへの接続を確立します。これは、プール内の接続がRiak KVに関連していると考えられているが、実際には切断された、雷鳴の群れの問題につながる可能性があります。TCP RSTパケットレート制限(net.inet.icmp.icmplimパラメーターによって制御される)により、一部のパケットは、ユーザーの要求を処理するために使用されるまで通知を受信しない場合があります。これは、Riak CSログファイルに{error、disconnected}メッセージとして現れ、エラーがユーザーに返されます。



Riak-CSでのSSL接続



RIAK-CS.CONF



ssl.certfile = "./etc/cert.pem"
ssl.keyfile = "./etc/key.pem"


ADVANCED.CONFIG

{ssl, [
    {certfile, "./etc/cert.pem"},
    {keyfile, "./etc/key.pem"}
   ]},


SSL暗号化キーへのパスの引用符で囲まれたテキストを置き換えます。デフォルトでは、各ノードで、cert.pemファイルとkey.pemファイルは/ etcディレクトリにあります。これらのキーまたは独自のキーを自由に使用できます。



認証機関(CA)、つまりCA証明書も提供する必要があることに注意してください。可能であれば、advanced.config構成ファイルを使用し、cacertfileパラメーターでその場所を指定する必要がありますcertfileやkeyfileとは異なり、cacertfileパラメーターコメントアウトされません。ここで証明書を追加する必要があります。このような構成の例:



ADVANCED.CONFIG



{ssl, [
       {certfile, "./etc/cert.pem"},
       {keyfile, "./etc/key.pem"},
       {cacertfile, "./etc/cacert.pem"}
      ]},
      %% Other configs


サードパーティのリソースでCA証明書を作成する手順を見つけることができます



プロキシと直接接続



Riak CSは、次の2つの方法のいずれかでS3クライアントと通信できます。



  1. プロキシ構成-S3クライアントがAmazonS3からのように、つまり一般的なAmazonURLを使用してRiakCSに接続する場合。
  2. 直接接続-RiakCSに接続されているS3クライアントを「S3互換サービス」として構成する必要があります。つまり、RiakCS接続ポイントがAmazonS3になりすます。このようなサービスの例は、Transmit、s3cmd、DragonDiskです。


プロキシ



プロキシ構成をセットアップするには、RiakCSクラスターアドレスのポイントとしてプロキシクライアントを構成します。次に、RiakCS資格情報を使用してクライアントを設定します。



Riak CSはプロキシ要求を受信すると、要求自体を処理し、要求がS3に送信されたかのようにクライアントに応答します。



サーバー側では、バケットURLに対するすべてのクライアント要求s3.amazonaws.comを対象とするため、riak-cs.confファイルroot_hostパラメーターはs3.amazonaws.comである必要がありますこれがデフォルトです。

重要:プロキシ構成の問題の1つは、多くのGUIクライアントでは、すべての接続に対して1つのプロキシしか構成できないことです。S3とRiakCSの両方に接続しようとしているお客様にとって、これは問題になる可能性があります。

直接接続



直接接続は、app.configファイルのriak-csセクションにあるcs_root_hostパラメーター介して構成されます。すべてのバケットURLがFQDNエントリポイントをターゲットにするため、値はRiakCSエントリポイントのFQDNに設定する必要があります。



また、エントリポイントの子をエンドポイント自体に解決するには、ワイルドカードDNSレコードが必要になります。例:



CONFIG



data.riakcs.net
*.data.riakcs.net


ガベージコレクターの設定



画像


Riak CSでガベージコレクターを構成するには、次の設定を使用できます。詳細については、「ガベージコレクション」セクションを参照してください



  • gc.leeway_period — (leeway_seconds advanced.config app.config) — , , , , . 24h(24 )
  • gc.interval (gc_interval advanced.config app.config) — , . 15m (15 ). , . , gc_interval infinity.
  • gc.retry_interval (gc_retry_interval advanced.config app.config) — , , pending_delete . - , , - . 6h (6 ).
  • gc.max_workers (gc.max_workers advanced.config app.config) — , . 2.
  • active_delete_threshold(advanced.configまたはapp.configのactive_delete_threshold)-しきい値未満のオブジェクトブロックは同期的に削除され、それらのマニフェストはscheduled_deleteとしてマークさます。デフォルトは0です。


Advanced.configまたはapp.config構成ファイルでのみ設定できる追加の設定がいくつかあります。次の設定はいずれも、riak-cs.conf構成ファイルからは利用できません。



  • epoch_start — , . , + leeway_seconds. 0 . , , , . . Erlang. , 10, <<«10»>>.
  • initial_gc_delaygc_interval Riak CS. : GC ; GC. , initial_gc_delay.
  • max_scheduled_delete_manifests — ( ), scheduled_delete . , , . , , , leeway_seconds. , , . .
  • gc_batch_size-このパラメーターは、セカンダリインデックスクエリの結果をページングするために使用されるサイズを表します。デフォルトは1000です。


非推奨の構成

現時点では、Riak CS 2.0はpg_paginated_indexesパラメーターの設定を引き続きサポートしているため、これらの設定を使用しないことを強くお勧めします。設定は次のメジャーリリースで削除されます。

その他のRiakCS設定



構成可能なRiakCSパラメーターの完全なリストについては、構成リファレンスドキュメントを参照してください



リンク



Riakクラウドストレージ。パート

1。RiakKVRiakクラウドストレージの構成パート

2。RiakCSRiakCloudStorageコンポーネントの構成パート3。支柱、プロキシおよび負荷分散、S3クライアント



オリジナルマニュアル。



All Articles