lsyncd+rsyncd real-time fs synchronization
时间:2010-09-07 来源:rainbow
lsyncd 的原理和作用
(1)开源软件lsyncd(http://code.google.com/p/lsyncd)采用inotify原理监听某一目录,如果目录内发生增、删、改、利用rsync协议自动同步到多个服务器
(2)inotify,从kernel 2.6.13开始正式并入内核,RHEL5支持,可以在.config 中search CONFIG_INOTIFY=y确认内核对inotify的支持
(3)可以本地多点目录的监控并实现到远程目录的同步
(4)在rsync client上通过lsyncd监控并推送数据给rsync server的rsync daemon,rsync server接收lsyncd推送过来的数据,并写入本地磁盘,完成数据同步
(5)lsyncd适合于目录(文件)内容非实时变化的数据同步,对于实时变化的数据同步可以考虑DRBD(http://www.drbd.org)
(6)lsyncd 暂时不支持用户认证参数(auth users),基于安全的考虑只用通过rsyncd的host allow(deny)来解决安装和配置
wget http://www.samba.org/ftp/rsync/src/rsync-3.0.7.tar.gz
wget http://lsyncd.googlecode.com/files/lsyncd-1.37.tar.gz
Note:由于rsync的服务器和客户端存在版本匹配的问题,所以可以在所有服务器上面安装最新的rsync包,在服务器端运行daemon,客户端进行run rsync。
安装目标服务器server2(remote),server3相同
cd /usr/local
tar zxvf rsync-3.0.7.tar.gz
cd rsync-3.0.7
./configure && make && make install
配置/etc/rsyncd.conf
uid = web
gid = web
use chroot = no
max connections = 4
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[testweb]
path = /usr/local/test/
read only = no
hosts allow = 192.168.21.0/24
Notes:uid,gid 说明同步过来文件的文件用户属性
安装xinetd
yum -y install xinetd
安装rsync daemon,由xinetd来启动
vi /etc/xinetd.d/rsync
service rsync
{
disable = no
only_from = 192.168.21.0/24
instances = 5
socket_type = stream
wait = no
user = root
server = /usr/local/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
# chkconfig xinetd on
# chown web:web /usr/local/test
# service xinetd start
安装源服务器server1(local)
# cd /usr/local
# tar zxvf rsync-3.0.7.tar.gz
# cd rsync-3.0.7