2014年11月6日木曜日

Contrailのzookeeperが保持しているテーブル

zookeeperが保持しているテーブルは zkCli.shのターミナルで確認すると簡単
/usr/share/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181
[zk: 127.0.0.1:2181(CONNECTED) 0] ls /
[id, svc-monitor, schema-transformer, api-server, fq-name-to-uuid, zookeeper

svc-monitor.pyとschema-transformerはkazooのclass kazoo.recipe.election.Electionを使ってリーダーを選出している。
electionのリンクはこちらhttp://kazoo.readthedocs.org/en/latest/api/recipe/election.html

Contrailのコードはzkclient.pyの
class ZookeeperClient(object):
--- omit ---
    def master_election(self, path, identifier, func, *args, **kwargs):
        while True:
            self._election = self._zk_client.Election(path, identifier)
            self._election.run(self._zk_election_callback, func, *args, **kwargs)
--- omit ---

このリーダー選出時にZookeeperの/svc-monitorや/schema-transformerに格納されたIDを参照している
[zk: 127.0.0.1:2181(CONNECTED) 1] ls /svc-monitor
[11daffd619854056bfe07fe869f113b5__lock__0000000013, 0e8842d2039441cea5fc55c8107d9e6b__lock__0000000012, 820af8461c1d473d9198f8046fab1001__lock__0000000009]

[zk: 127.0.0.1:2181(CONNECTED) 2] ls /schema-transformer
[a0accb0261f442a3b960341da64fbad8__lock__0000000014, 470f9849bb5a4f5f943eef69c0da436b__lock__0000000013, 8f277ad7c7f04365bfa13c3ff3370135__lock__0000000012]
残りのデータは何に使っているか調査中
/api-server/subnets仮想ネットワークの情報が入っている

/fq-name-to-uuid
全てのFull Query Nameが入っている

/id/bgp/route-targets
仮想ネットワークに割り当てられたroute-targetのIDが入っている

/id/security-groups/id
作成されたセキュリティグループのID情報が入っている

/id/virtual-networks
仮想ネットワークのIDが入っている

11/11追記 重複したらまずいデータとかが入っているとの情報。

0 件のコメント:

コメントを投稿