1

5 つの appscale VM 用の単純な同種 (​​1 つのコントローラー、複数のサーバー) のクラスター デプロイがあります。テストでは、実行したい appengine プロセスの数に対して設定した最大および最小の境界内で実行されました。次に、負荷がかかると、1 つのノードがダウンします。残りは実行し続けます。私の別のロードバランサーはそれをうまく処理します。冗長性が機能して回復力が得られたことを嬉しく思います。良い。しかし、どうすればその悪いノードをプレイに戻すことができるでしょうか?

簡単な答えが「サポートされていません」である場合、私の本当の質問は次のとおりです。cassandraをデータストアとして使用して、これをハッキングするにはどうすればよいですか?

4

1 に答える 1

0

これを処理するというコマンドがありappscale-add-instancesます。ここにはさらに多くのドキュメントがありますが、要約は次のとおりです。

  1. 新しいマシンに、現在実行中のマシンと同じバージョンの AppScale がインストールされていることを確認してください。
  2. IP アドレスを含む YAML ファイルを作成します。単一のノードを追加する例は次のとおりです。

    メモリキャッシュ: 192.168.10.3

    taskqueue_slave: 192.168.10.3

    アプリエンジン: 192.168.10.3

これは、memcache、taskqueue、および appengine サービスを実行するマシンが 1 台あることを示しています。

  1. 実行appscale-add-keypair --add_to_existing --ips your-yaml-file.yamlして、新しいノードで SSH キーを同期します。Amazon EC2、Google Compute Engine、または Eucalyptus で実行している場合は、この手順をスキップしてください。
  2. 実行appscale-add-instances --ips your-yaml-file.yamlして新しいノードを追加してください!

古い回答 (後世のために保存され、このサポートの実装方法のウォークスルー):

したがって、簡単な答えは「サポートされていません」です。クラッシュしたノードを追加するケースは、一般的に新しいノードを追加するケースと非常によく似ているので、AppScale をハックしてこれを機能させる方法は次のとおりです。

  1. AppScale ツール ( github の AppScale/appscale-toolsappscale-add-nodes ) を確認し、現在実行中の AppScale デプロイに追加するノードのリストを取得する、bin で新しいコマンドを作成します。
  2. AppController ( AppController/djinn.rb )のメイン AppScale コード ( github の AppScale/appscale ) に新しい SOAP 公開メソッドを追加し、呼び出されます( SOAP を介してメソッドを公開する方法とその定義については、djinnServer.rbを参照してください。これは、AppScale ノードとして起動する IP のリストを 1 つの引数として受け取ります。add_nodes_from_ipsdjinn.rb
  3. Shadow AppController appscale-add-nodes(IP アドレスは ~/.appscale/locations-appscale.yaml にあります) に接続し、IP のリストを使用して新しい SOAP 公開メソッドを呼び出し、AppScale を起動します。

SOAP 公開メソッドはstart_appcontroller、各 IP アドレスで呼び出す必要があります。これにより、AppController デーモンがそこで開始され、他の AppController に接続できるようになります。開始する役割のリストはあなた次第です。AppScale が新しいノードを何に使用するかを決定できるように、open 役割を使用することをお勧めします。

取り入れることは間違いなくたくさんありますが、コメントに応じてこの回答を更新できることを嬉しく思います(もちろん、SOAPの追加方法など、この個々の部分ごとにAppScale wikiにページを追加します一般に AppController へのメソッド)。

于 2012-09-20T21:43:44.773 に答える