Hash-based partitioning in OpenStack Telemetry

偶然看到Redhet Principal Engineer的一篇slides,内容是关于Telemetry Central Agent Partitioning的。 比较感兴趣,先简单翻译下从宏观上了解下。

Background

  • 在Ironic conductors中,使用连续哈希环(consistent hash-ring)来分配节点。受此方法启发。

  • 主要想法是当共享最小信息时,允许central agents来自我组织。

  • BP spec中的关键步骤是blissful ignorance

How does it work?

  • 启动多个central agents。

  • tooz group membership允许每个agent知道其他agents的存在。

  • 每个agent载入相同的discovery extensions。

  • 每个discoverer都尝试来discover所有的resources。

  • 但是只poll被分配的resources的子集。

How does the agent know which resources it's been assigned?

  • 每个discovered resource都有一个resource ID(UUID, IP addr, etc)。

  • 每个独立的agent使用agent pool的基数来运算一个list清单做哈希。

  • 我们依赖哈希算法的均匀分布特性。

  • 所以每个agent能分辨:我是不是该为这个事情负责。

What happens when an agent dies or a fresh agent is started?

  • 每个agent注册一个tooz group membership callback,所以一旦pool中live agents发生了变化,所有注册了的agent都会被通知到。

  • 一旦发生agent join或者leave,hash清单会改变大小。

  • 在下一次polling cycle中,每个agent划分不同的不连续的子集来决定做哪些resources的discover。

  • 总之,我们覆盖到所有的resources,以一个single polling cycle为模。

What are the keys win for this approach?

  • light
  • fast
  • simple
  • ignorant
  • thrifty

Reference

Eoghan Glynn http://www.slideshare.net/EoghanGlynn/hash-based-central-agent-workload-partitioning-37760440

推荐阅读更多精彩内容

  • 酒是中国人日常用品,男人都要喝酒。有的喜欢豪饮万丈,有的喜欢小口品笳。我是两种喝法都尝过,不管是哪种喝法,烈酒下肚...
    犇壵森淼阅读 62评论 0 1
  • 周末去看了期待已久的电影《路边野餐》,这部低成本的独立电影只上映十天,因为排片太少,我在炎热的夏日里往返四十公里才...
    渡远行舟阅读 290评论 0 2
  • 看到有个朋友写了7年来的生活,大概写了几个问题: 第一,在家与老公共同做外贸,钱有了,却感觉自己与社会脱节了。 第...
    陶子_演说教练阅读 32评论 1 0