其实一直都是这样想的,我相信我所看到的 而不是看别人的,所以做什么事情 证明真理的办法就是实践。

先说说公司的问题吧,

专线接入 1G 光纤 速度大概在100M/s  全速。但是满足不了 高速运转的服务器,

数据传输 是经过了 3个服务器, 数据源------》中转站-----》数据存储源。

中转站的目的是 保证数据安全,防止网络传输影响。

 

文件的同步镜像在很多地方都需要用到,因此rsync这款免费软件得到了广泛的应用,包括在Windows平台上,都已经有了支持rsync“cwRsyncServer”
但是,我们一般都是通过结合crontab计划任务来实现文件同步或者备份的,这样做的缺点是效率低,不能做到实时同步。
现在,在Linux平台下我们可以利用2.6及以上内核的inotify监控文件系统机制,通过inotify-tools来实现实时同步了。

环境
Server:Linux cluster.hpc.org 2.6.18-308.4.1.el5xen
Client: Linux ln4 2.6.18-ky3.170.13

软件:inotify-tools-3.14.tar.gz

wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz

操作步骤
一、在TJ 服务器上创建ssh生成密钥
[root@cluster ~]#  ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 直接回车
Enter passphrase (empty for no passphrase): 直接回车
Enter same passphrase again: 直接回车
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
55:bc:66:9c:19:ac:bf:d1:4f:e3:bf:14:33:11:74:91 


二、将密钥中的公钥传到87上
[root@cluster ~]# cd .ssh/
[root@cluster .ssh]#  scp 
/root/.ssh/id_rsa.pub   bgi_tj@192.168.6.4:~/.ssh/
password: 
id_rsa.pub                                    100%  391     0.4KB/s   00:00   

在天河 数据路径账户进行修改秘钥

[bgi_tj@localhost ~]# cd .ssh/
[bgi_tj@localhost .ssh]# mv id_rsa.pub authorized_keys
[bgi_tj@localhost .ssh]# chown root:root authorized_keys 
[bgi_tj@localhost .ssh]# chmod 600 authorized_keys 

四、测试从TJ使用ssh连到天河,理论上是不需要输入密码的(一定要达到这样的效果)在进行下一步

 ssh bgi_tj@192.168.6.4

五、在TJ 上安装inotify

tar -zxvf inotify-tools-3.14.tar.gz

cd inotify-tools-3.14/

./configure

make 

make  install

六、创建inotify脚本

#!/bin/sh

 

 

SRC=/mnt/export/test

 

DST=bgi_tj@192.168.6.4:/vol6/home/bgi_tj/test

 

inotifywait -mrq -e modify,delete,create,attrib ${SRC} | while read D E F

do

/usr/bin/rsync  -ahqzt  --delete     $SRC     $DST

done 

 

 [root@cluster ~]# chmod +x inosync.sh

七、测试

nohup   sh inosync.sh >inosync.sh.nohup 2>inosync.sh.error & 

在天津 写入数据  在超算上查看。是否增加 

说明这只是单一的数据 同步 服务端为标准。

 

九、每次开机自动运行监控脚本
[root@cluster ~]#  echo "/root/inosync.sh &">> /etc/rc.d/rc
十、附脚本解释
inotifywait   -mrq -e create,move,delete,modify $SRC | while read D E F;do       
-m 是保持一直监听
-r 是递归查看目录
-q 是打印出事件~
-e create,move,delete,modify 
监听 创建 移动 删除 写入 事件
rsync   -aHqzt --delete $SRC $DST
-a 存档模式
-H 保存硬连接
-q 制止非错误信息
-z 压缩文件数据在传输
-t 维护修改时间
-delete 删除于多余文件