Linux rsync同步集群web端
软件环境:CentOS 6.5
操作系统:CentOS 6.5 源服务器:192.168.0.250
目标服务器:192.168.0.248
目的:保证集群web(源服务器)挂掉后,另外一台机器接着提供web(目标服务器)服务
第一部分:在目标服务器192.168.0.248上操作
在目标服务器安装Rsync服务端
1、关闭SELINUX
#vi /etc/selinux/config
SELINUX=disabled
#setenforce 0 #立即生效
2、开启防火墙TCP 873端口(或者关闭防火墙)
#vi /etc/sysconfig/iptables 编辑防火墙配置文件
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 873 -j ACCEPT
#/etc/init.d/iptables restart? #最后重启防火墙使配置生效
3、安装RSYNC服务端软件
#yum install rsync xinetd
4、编辑配置文件,设置开机启动
#vi /etc/xinetd.d/rsync
rsync disable = no 修改为no 保存退出
#/etc/init.d/xinetd start 启动服务
5、创建RSYNCD.CONF配置文件
#vi /etc/rsyncd.conf #创建配置文件?添加以下代码
log file = /var/log/rsyncd.log #日志文件位置启动rsync后自动产生这个文件无需提前创建
pid file = /var/run/rsyncd.pid? #pid文件的存放位置
lock file = /var/run/rsync.lock? #支持max connections参数的锁文件
secrets file = /etc/rsync.pass? #用户认证配置文件里面保存用户名称和密码
motd file = /etc/rsyncd.Motd? #rsync启动时欢迎信息页面文件位置
uid = root #设置rsync运行权限为root
gid = root #设置rsync运行权限为root
port=873? #默认端口
use chroot = no #默认为true修改为no增加对目录文件软连接的备份
read only = no? #设置rsync服务端文件为读写权限
list = no #不显示rsync服务端资源列表
max connections = 200 #最大连接数
timeout = 600? #设置超时时间
auth users = admin #执行数据同步的用户名可以设置多个用英文状态下逗号隔开
hosts allow = 192.168.0.250? #允许进行数据同步的客户端IP地址可以设置多个用英文状态下逗号隔开
[vcfs] #自定义名称
path = ?/usr/local/bin/vcfs/ #rsync服务端数据目录路径
comment = backvcfs #模块名称
6、创建用户认证文件
#vi /etc/rsync.pass 配置文件添加以下内容
admin:123456 #格式用户名:密码可以设置多个每行一个用户名:密码
7、设置文件权限
#chmod 600 /etc/rsyncd.conf? #设置文件所有者读取、写入权限
#chmod 600 /etc/rsync.pass? #设置文件所有者读取、写入权限
8、启动RSYNC
#/etc/init.d/xinetd start? #启动
#service xinetd stop?? #停止
#service xinetd restart? #重新启动
二.第二部分在源服务器192.168.0.250上操作
安装Rsync客户端
1、关闭SELINUX
#vi /etc/selinux/config? #编辑防火墙配置文件,重启生效
SELINUX=disabled
#setenforce 0?? #立即生效
2、开启防火墙TCP 873端口
#vi /etc/sysconfig/iptables? #编辑防火墙配置文件
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 873 -j ACCEPT
#/etc/init.d/iptables restart #最后重启防火墙使配置生效
3、安装配置RSYNC客户端端软件
#whereis rsync? ?#查看系统是否已安装rsync,出现下面的提示说明已经安装
rsync: /usr/bin/rsync /usr/share/man/man1/rsync.1.gz
#yum install? xinetd? #只安装xinetd即可CentOS中是以xinetd来管理rsync服务的
#yum install rsync xinetd #如果默认没有rsync运行此命令进行安装rsync和xinetd
#vi /etc/xinetd.d/rsync #编辑配置文件设置开机启动
rsync disable = no #修改为no
#/etc/init.d/xinetd start #启动CentOS中是以xinetd来管理rsync服务的
4、创建认证密码文件
#vi /etc/passwd.txt? #编辑文件?添加以下内容
123456 #密码
#chmod 600 /etc/passwd.txt? #设置文件权限只设置文件所有者具有读取、写入权限即可
5、测试源服务器192.168.0.250到目标服务器192.168.0.248之间的数据同步
(以推送的方式,从源头推送到同步的机器)
#rsync -avH –port=873 –progress –delete? /usr/local/bin/vcfs/ admin@192.168.0.248::vcfs –password-file=/etc/passwd.txt
三.测试
- 在源250机器上web端增加(删除)osd,mon,mds。 运行同步命令。然后登入248上web端查看是否成功。
- 添加用户测试。
- 在源上增加各种网络服务,例如cifs nfs iscsi。
四.添加crontab任务实时同步更新
在源服务器上操作192.168.0.250
增加rsync_vcfs.sh 添加如下内容:
[root@node3 ~]# cat rsync_vcfs.sh
#!/bin/bash
/usr/bin/rsync -avH –port=873 –progress –delete? /usr/local/bin/vcfs/ admin@192.168.0.244::vcfs –password-file=/etc/passwd.txt
保存退出后。
增加crontab任务如下:
[root@node3 ~]# crontab –e
* * * * * /bin/bash /root/rsync_vcfs.sh 1>/dev/null
保存后。重启crond服务
service? crond? restart
五.最后测试
1.在源250机器上web端增加(删除)osd,mon,mds。 运行同步命令。然后登入248上刷新web端查看是否成功。实现实时刷新。
2.添加用户测试。
3.在源上增加各种网络服务,例如cifs? nfs? iscsi。然后再目标服务器248上面查看。
六.总结
针对整个Linux文件系统,rsync都能同步的,只要指定同步的文件路径,需要在配置文件中增加相应的模块,指定同步目录。修改同步脚本以及crontab任务。本例中,同步集群web端目录/usr/local/bin/vcfs