- 什么是实时同步服务
当nfs服务器中/data目录中的数据发生变化时,会实时同步到backup服务器中的/data目录中 - 实现原理
第一、用户将静态数据通过web服务器存储到nfs服务器/data目录中(nfs存储服务)
第二、nfs服务器中通过sersync监控/data服务的变化,一旦出现变化就同步到backup服务器的/data目录中(rsync+sersync服务) - 实时同步服务的部署
backup服务器部署(rsync服务端)
1、下载rsync服务
[root@backup01 ~]# yum install -y rsync
2、编写配置文件
[root@backup01 ~]# vim /etc/rsyncd.conf
uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.password
log file = /var/log/rsyncd.log
[data]
comment = commit
path = /data
3、创建同步目录、用户、密码文件
[root@backup01 ~]# useradd rsync
[root@backup01 ~]# mkdir /data
[root@backup01 ~]# chown -R rsync.rsync /data
[root@backup01 ~]# echo 'rsync_backup:1' > /etc/rsync.password
[root@backup01 ~]# chmod 600 /etc/rsync.password
4、开启rsyncd服务并设置守护进程
root@backup01 ~]# systemctl enable rsyncd
[root@backup01 ~]# systemctl start rsyncd
[root@backup01 ~]# systemctl status rsyncd
nfs服务器部署(nfs服务端、rsync客户端、sersync服务端)
部署rsync客户端
1、下载rsync服务
[root@nfs01 ~]# yum install -y rsync
2、创建同步目录和密码文件
[root@nfs01 ~]# mkdir /data
[root@nfs01 ~]# echo '1' > /etc/rsync.passwd
[root@nfs01 ~]# chmod 600 /etc/rsync.passwd
部署sersync服务端
1、下载sersync:https://github.com/wsgzao/sersync
[root@nfs01 ~]# mkdir -p /server/tools
将下载好的tar包上传到/server/tools目录下面
[root@nfs01 /server/tools]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz
[root@nfs01 /server/tools]# ll
total 712
drwxr-xr-x 2 root root 41 Oct 26 2011 GNU-Linux-x86
-rw-r--r-- 1 root root 727290 Nov 12 13:49 sersync2.5.4_64bit_binary_stable_final.tar.gz
[root@nfs01 /server/tools]# mv GNU-Linux-x86 /usr/local/sersync
2、配置sersync服务
[root@nfs01 /server/tools]# cd /usr/local/sersync/
[root@nfs01 /usr/local/sersync]# ll
total 1772
-rwxr-xr-x 1 root root 2214 Oct 26 2011 confxml.xml
-rwxr-xr-x 1 root root 1810128 Oct 26 2011 sersync2
[root@nfs01 /usr/local/sersync]# vim confxml.xml 只粘贴了需要修改的地方
5 <fileSystem xfs="true"/>
12 <inotify>
13 <delete start="true"/>
14 <createFolder start="true"/>
15 <createFile start="true"/>
16 <closeWrite start="true"/>
17 <moveFrom start="true"/>
18 <moveTo start="true"/>
19 <attrib start="true"/>
20 <modify start="true"/>
21 </inotify>
22
23 <sersync>
24 <localpath watch="/data">
25 <remote ip="172.16.1.31" name="data"/>
26 <!--<remote ip="192.168.8.39" name="tongbu"/>-->
27 <!--<remote ip="192.168.8.40" name="tongbu"/>-->
28 </localpath>
29 <rsync>
30 <commonParams params="-az"/>
31 <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.passwd"/>
32 <userDefinedPort start="true" port="873"/><!-- port=874 -->
33 <timeout start="false" time="100"/><!-- timeout=100 -->
34 <ssh start="false"/>
35 </rsync>
3、开启sersync服务并设置守护进程
[root@nfs01 /usr/local/sersync]# ./sersync2 -dro ./confxml.xml
部署nfs服务端
1、下载nfs-utils
[root@nfs01 /data]# yum install nfs-utils
2、配置nfs
[root@nfs01 /data]# vim /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
3、创建nfs用户
[root@nfs01 /data]# groupadd -g 666 www
[root@nfs01 /data]# useradd -u 666 -g 666 www
[root@nfs01 /data]# chown -R www.www /data/
4、开启nfs服务并设置守护进程
[root@nfs01 /data]# systemctl enable nfs-server rpcbind
[root@nfs01 /data]# systemctl start nfs-server rpcbind
[root@nfs01 /data]# systemctl status nfs-server rpcbind
web服务器部署(nfs客户端)
部署nfs客户端
1、下载nfsutils
[root@web01 ~]# yum install -y nfs-utils
2、创建挂载目录和用户
[root@web01 ~]# mkdir /data
[root@web01 ~]# groupadd -g 666 www
[root@web01 ~]# useradd -u 666 -g 666 www
[root@web01 ~]# chown -R www.www /data
3.远程挂载目录
[root@web01 ~]# vim /etc/fstab
172.16.1.41:/data /data nfs defaults 0 0
[root@web01 ~]# mount -a
[root@web01 ~]# showmount -e 172.16.1.41
Export list for 172.16.1.41:
/data 172.16.1.0/24
部署完成