做问卷比较好的网站,设计网站大全湖南岚鸿网站大全,红色旅游网页设计,设计宝文章目录 1. 背景2. 操作2.1 geo主节点查看仓库的路径2.2 安装 inotify-tools2.3 主从免密2.4 编写同步脚本2.5 同步文件 3. 验证 1. 背景
由于某个repo的主从artifacts目录偏差非常严重(主节点100G#xff0c;从节点10G)#xff0c;为了保证主从目录数据的一致性#xff0… 文章目录 1. 背景2. 操作2.1 geo主节点查看仓库的路径2.2 安装 inotify-tools2.3 主从免密2.4 编写同步脚本2.5 同步文件 3. 验证 1. 背景
由于某个repo的主从artifacts目录偏差非常严重(主节点100G从节点10G)为了保证主从目录数据的一致性通过rsync同步来实现。
此外由于rsync仅仅是同步了主从节点的artifacts文件其实际并未操作数据库因为对数据库本身数据不会造成任何影响。
2. 操作
2.1 geo主节点查看仓库的路径 获取当前repo的hash路径 Menu - Admin - Project - Select Project- Gitaly相对路径 eg Gitaly相对路径是**hashed/4a/44/4a44dc15364204a80fe80e9039455cc1608281820fe2b24f1e5233ade6af1dd5.git** 则此项目的artifacts路径是/var/opt/gitlab/gitlab-rails/shared/artifacts/4a/44/4a44dc15364204a80fe80e9039455cc1608281820fe2b24f1e5233ade6af1dd5 2.2 安装 inotify-tools 该工具可以实时监听某个目录的变化同时触发rsync进行同步。 yum install -y inotify-tools2.3 主从免密
ssh-keygen #一路回车即可
ssh-copy-id -i ~/.ssh/id_rsa.pub rootsecondary_ip #输入从节点的密码即可2.4 编写同步脚本
cd /usr/local/src/
cat inotify.sh
HOST_IP10.100.0.2 #从节点ip
MONITOR_DIR/var/opt/gitlab/gitlab-rails/shared/artifacts/4a/44/4a44dc15364204a80fe80e9039455cc1608281820fe2b24f1e5233ade6af1dd5 #主节点上repo的artifacts目录
DES/var/opt/gitlab/gitlab-rails/shared/artifacts/4a/44/4a44dc15364204a80fe80e9039455cc1608281820fe2b24f1e5233ade6af1dd5 #从节点上的目标路径
USEroot
CMD/usr/bin/inotifywait
${CMD} -mrq --timefmt %Y%m%d %H:%M --format %T %w%f%e -e modify,delete,create,attrib ${MONITOR_DIR} | while read files
do
/opt/gitlab/embedded/bin/rsync -avzP ${MONITOR_DIR}/ --delete --timeout100 ${USE}${HOST_IP}:$DES
echo ${files} was rsynced /tmp/rsync.log 21
done2.5 同步文件
cd /usr/local/src/
nohup bash inotify.sh
tail -f nohup.out #查看同步的文件信息3. 验证
通过tree、du -sh等命令查看文件数量和大小。