本文共 2268 字,大约阅读时间需要 7 分钟。
Spotify最近开源了其Cassandra编排工具。Cstar是一个命令行工具,用于在Cassandra集群中的所有主机上运行脚本。
\\Cstar的出现是为了在Cassandra节点中运行shell命令。这些shell命令通常与性能、安全性、一致性、升级等相关。
\\据Spotify称,2017年,Spotify Cassandra fleet达到了3000个节点;从那时起,安全高效地运行shell命令的需求变得越来越迫切。比如,整个Cassandra fleet的计划升级就是其中一项噩梦般的任务,该过程需要以下步骤:
\\此外,在操作Cassandra fleet时还存在一系列其他相关的问题,如网络故障、ssh连接中断、cpu密集型操作、Cassandra进程/节点重启而不影响性能和可用性,或部分完成执行处理(任务仅在某些节点中成功)。
\\在Spotify的早期,在Cassandra节点上运行命令的最常见方式是在多个终端中键入命令。
\\Cstar的目标是解决这些问题。要使用cstar,所有涉及到的机器都应该使用类UNIX系统,如OSX或Linux,并且运行cstar的机器必须有python 3。
\\Cstar通过cstar命令运行,如下所示:
\\\# cstar COMMAND [HOST-SPEC] [PARAMETERS]\\
HOST-SPEC指定在哪个节点上运行脚本。指定HOST-SPEC有以下三种方式:
\\下面是集群上的一些CLI命令示例:
\\\# cstar run --command='service cassandra restart' --seed-host some-host\# cstar puppet-upgrade-cassandra --seed-host some-host --puppet-branch=cass-2.2-upgrade\\\\下面是一个脚本示例,该脚本通过在不同的分支上运行puppet来升级Cassandra集群,然后重新启动节点,最后升级sstable文件:\\
\# !/usr/bin/env bash\# C* cluster-parallel: true \# C* dc-parallel: true \# C* strategy: topology \# C* description: Upgrade one or more clusters by switching to a different puppet branch \# C* argument: {\"option\":\"--snapshot-name\
转载地址:http://bwuio.baihongyu.com/