从上图可以看出用户访问图片等文件时,会用到nginx负载均衡访问124机器和117机器。如果124机器出现FastDfs服务异常/挂掉,甚至宕机后,117机器会当做主机器一样不会造成用户访问不到等问题。但是由于数据特别重要(数据丢了公司赔客户一笔钱啊),所以做最坏打算硬备份一份数据到某机器中。这里就用到了linux自带的Rsync数据镜像备份工具,它支持增量备份(每次备份缺少的最新数据)。
1、安装Rsync
主机器和备份机均需要安装,centos为例
yum install rsync
2、主机器配置
#rsyncd.conf配置文件
vim /etc/rsyncd.conf
uid = root
gid = root
use chroot = no
max connections = 4
pid file = /var/run/rsyncd.pid
# exclude = lost+found/
# transfer logging = yes
timeout = 900
# ignore nonreadable = yes
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
secrets file = /etc/rsync.password
hosts allow = 192.168.1.0/24 #允许的网络
auth users = fdfs #虚拟用户
[fastdfs] #模块名
path = /data/fdfs/
#rsync.password密码文件
vim /etc/rsync.password
fdfs:123456
# 另外需要修改密码文件权限
chmod 600 /etc/rsync.password
配置完开启rsync, 注意是后台守护进程方式启动
rsync --daemon
#启动后查看是否监听端口是873,如果不是可能有错误
netstat -apn | grep rsync
3、备份机配置
#rsync.password密码文件
vim /etc/rsync.password
fdfs:123456
# 另外需要修改密码文件权限
chmod 600 /etc/rsync.password
#备份机不需要配置rsyncd.conf
4、在备份机拉取数据
#使用虚拟用户fdfs,拉取fastdfs模块数据到本地的/data/fastdfs/目录
rsync -avz fdfs@192.168.1.124::fastdfs /data/fastdfs/ --password-file=/etc/rsync.password
5、添加定时任务拉取
vim /data/fastdfs/fdfs_download.sh
rsync -avz fdfs@192.168.1.124::fastdfs /data/fastdfs/ --password-file=/etc/rsync.password
#定时任务每五分钟拉取一次,也可以设置30 23 * * * 每天晚上11:30拉取
crontab -e
*/5 * * * * /bin/bash /data/fastdfs/fdfs_download.sh &>/dev/null