vsc-zk 包含用于使用 zookeeper 构建 zookeeper 树和工具的脚本。
项目描述
描述
vsc-zk 包含用于使用 zookeeper 构建 zookeeper 树和工具的脚本。
vsc-zk
zookeeper 工具
vsc-zk 包含用于使用 zookeeper 构建 zookeeper 树和工具的脚本。
-
zkinitree 从配置文件在 zookeeper 中构建树。
-
vsc-zkrsync 在同步(大型的)(共享)文件系统时使用 zookeeper 在多个节点之间分发 rsync。
在执行实际数据同步之前,大量 rsync 调用都花费在收集所需元数据上。在增量 rsync 的情况下,这个问题会更严重。在多个进程之间分配负载可能会导致显著的性能提升,尽管其他瓶颈,如访问元数据,可能会变得明显。
该实现使用 zookeeper 协调收集和同步数据的分配。
安装 Zookeeper
需要一个具有适当 ACL 的 zookeeper 服务器到基础 znode(zookeeper 节点)。
如果不存在此类服务器,可以按以下方式安装
zkversion=3.4.6
basepath=`mktemp -d` # not permanent, choose other directory as desired
mkdir -p $basepath/zk/server/data
cd $basepath/zk/server
# use another mirror if needed
wget http://apache.belnet.be/zookeeper/zookeeper-$zkversion/zookeeper-$zkversion.tar.gz
tar xzf zookeeper-$zkversion.tar.gz
rm -f zkServer.sh
cat > zkServer.sh <<EOF
#!/bin/bash
./zookeeper-$zkversion/bin/zkServer.sh \$@
EOF
chmod +x zkServer.sh
cat > zk.conf <<EOF
tickTime=2000
dataDir=$PWD/data
clientPort=2181
EOF
启动 zookeeper 服务器
`./zkServer.sh start $PWD/zk.conf `
注意:您应该已经安装了 Java(JDK 6 或更高版本)以运行 Zookeeper。更多信息可以在 Zookeeper 文档中找到。
依赖关系
Vsc-zk 需要
- ZooKeeper 3.4 或更高版本,因为它使用事务。
- Kazoo 1.3.1 或更高版本 (
pip install kazoo
) - vsc-base 的最新版本 (>= 1.6.7)
构建初始 zookeeper 树
使用 zkinitree 从配置文件在 zookeeper 中构建初始树。它将创建具有指定 ACL 的路径。
示例配置文件可以在示例文件夹中找到(zkinitree.cfg)
zkrsync 的用法
N-并行化 rsync 的示例用法
将可重用值放入配置文件中,例如 zkrs.conf
[MAIN]
servers=<servers>
session=<session>
domain=<domain>
daemon=true
user=<user>
passwd=<password>
depth=<depth>
#debug=true
#dryrun=false
#delete=false
启动 N+1 个源(第一个源客户端将是主节点)
zkrsync -S -r <sourcepath> --configfiles=zkrs.conf
启动 N 个目标
zkrsync -D -r <destpath> --configfiles=zkrs.conf
测试路径构建:添加 pathsonly
选项
运行 zkrsync -H
查看所有选项
默认日志记录到 /tmp/zkrsync/<session>-<source|dest>-<pid>.log
。使用 logfile
选项来更改模板。使用 debug
选项(或短 -d
)进行更详细的日志记录。
在守护进程模式下运行时,将生成一个 pidfile。默认位置是 /tmp/zkrsync/<session>-<source|dest>-<pid>.pid
(pid 是启动守护进程的进程的 pid)。这也可以使用 pidfile
选项进行模板化。
如果(与 Zookeeper 相关的)出现问题(尚未进行清理)
- 杀死所有正在运行的源和目标客户端(该会话)
- 等待大约 20 秒(视情况而定),确保所有 Zookeeper 连接都已超时
- 运行 exactly one source client,如果之前的关闭没有干净完成,Zookeeper 会识别这一点,并在退出前尝试进行新的清理。
- 如果之前的步骤未能清理,可能仍然有一个正在运行的客户端。确保它们都被杀死
- 启动一个新的 zkrsync 进程
全局说明
- 始终定义一个会话以确保您不会混淆不同的会话
- 确保参数路径、dryrun 和 delete 都相同:这些参数(在此时刻)未进行检查,并且每个客户端将使用自己的参数。这可能导致不一致(例如,一些路径使用 dry-run 选项运行,而其他路径则实际上是同步的。)
- 参数深度仅在路径构建中使用,因此源主节点将始终提供此参数。
项目详情
vsc-zk-2.0.7.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 919e0a425e4430c7969219f4bed6c96e8c90e1965246eaa2d107840df0d240c9 |
|
MD5 | 8b0fdeb2119950b42f0fbcc572a7fb70 |
|
BLAKE2b-256 | 5512734e88d3c68f6d0e1cbd0f9b778f67e6452132aa8143fcb27889794e6892 |