gitlab实时备份

前言

       gitlab自带的备份功能做不到实时备份,为了尽可能减少意外情况导致的丢失数据,需要实时备份数据。备份的大头主要是两部分,数据库和代码库。

      数据库由DBA配置主备。后续补充说明备份过程.....

      代码库经过测试,通过lsyncd同步repo仓库是可行的。

      Lysncd 实际上是lua语言封装了 inotify 和 rsync 工具。

      接下来主要讲一下lsyncd的配置及使用方法:

配置

一、安装rsync:

lsyncd基于rsync,且要求rsync >= 3.1,默认安装 yum install -y rsync,可输入rsync --version查看当前版本,如果不符合要求,按照以下方法升级rsync版本,两台服务器A/B均要安装rsync。

#如果版本太低,直接卸载

yum -y remove rsync

#下载rsync源码

wget 

#解压

tar -zxvf rsync-3.1.2.tar.gz

#进入目录

cd rsync-3.1.2

#编译安装

./configure

make install

#查看是否升级成功

rsync --version

二、配置免密码登录

如果想要将A的数据同步到B,A必须拥有免密码登录B的权限,可以设置密钥登录来完成。只需要两条命令即可,下面的命令在A服务器执行:

#生成密钥文件

ssh-keygen -t rsa

#将公钥拷贝到B

ssh-copy-id root@192.168.1.20

#测试

ssh root@192.168.1.20

如果服务器不是使用的22作为SSH端口,需要-p参数指定端口号。

三、安装lsyncd并配置

安装:

 yum install -y lsyncd

安装完成后配置文件位于/etc/lsyncd.conf,会看到如下的内容,其中--是注释符。


vim /etc/lsyncd.conf修改配置文件


lsyncd.conf

继续输入命令lsyncd -nodaemon /etc/lsyncd.conf运行查看下是否有报错,如果有报错根据报错情况检查修改如果没有报错即可启动lsyncd。

启动命令

systemctl start lsyncd

查看lsyncd状态

systemctl status lsyncd 

设置开机自启动

systemctl enable lsyncd。

问题:

lsyncd 启动错误 lsyncd error terminating since out of inotify watches

是因为由于仓库文件数量通常较多,往往需要修改inotify的监控数量上限,修复使用 

echo 5000000 > /proc/sys/fs/inotify/max_user_watches

参考

官网开源地址

https://github.com/axkibe/lsyncd

官网配置手册

https://axkibe.github.io/lsyncd/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。