设为首页 收藏本站
查看: 1969|回复: 0

[经验分享] nfs+keepalive+inotify+unison实现共享服务池的高可用

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-14 09:40:25 | 显示全部楼层 |阅读模式
nfs服务器  rip1:192.168.1.134
          rip2:192.168.1.135
           vip:192.168.1.137
   客户端   ip1: 192.168.1.136
           ip2: 192.168.1.234
用nfs来提供共享
用keepalive来实现对nfs的高可用
用inotify来检测文件的变化
用unison来同步主从nfs共享文件夹的数据

1.nfs服务器的搭建
yum install -y nfs-utils rpcbind
/etc/init.d/rpcbind start
/etc/init.d/nfs start
vi /etc/exports
/nfs_data/home/paixian192.168.1.0/24(rw,sync,no_wdelay)
/etc/init.d/nfs reload
chmod 755 /nfs_data
chown -R nfsnobody:nfsnobody /nfs_data

2.客户端测试
yum install -y nfs-utils rpcbind
/etc/init.d/rpcbind  start
/etc/init.d/nfs start
[iyunv@localhost paixian]# showmount -e192.168.1.134
Export list for 192.168.1.134:
/nfs_data/home/paixian 192.168.1.0/24
nfs服务器测试成功!下一步就是要做keepalive来实现高可用

3.keepalive实现nfs高可用


主的keepalive配置
[iyunv@min local]# cat/etc/keepalived/keepalived.conf|egrep -v "\#|^$"
! Configuration File for keepalived
global_defs {
  notification_email {
962653162@qq.com
chenmin@paixian365.com
   }
  notification_email_from Alexandre.Cassen@firewall.loc
  smtp_server 192.168.1.135
  smtp_connect_timeout 30
  router_id LVS_DEVEL
}
vrrp_instance VI_1 {
   state MASTER
   interface eth1
   virtual_router_id 51
   priority 100
   advert_int 1
   authentication {
       auth_type PASS
       auth_pass 1111
    }
   virtual_ipaddress {
       192.168.1.137/24
    }
}
}
从的keepalive配置
[iyunv@min ~]#  cat /etc/keepalived/keepalived.conf|egrep -v"\#|^$"
! Configuration File for keepalived
global_defs {
  notification_email {
962653162@qq.com
chenmin@paixian365.com
   }
  notification_email_from Alexandre.Cassen@firewall.loc
  smtp_server 192.168.1.135
  smtp_connect_timeout 30
  router_id LVS_DEVEL
}
vrrp_instance VI_1 {
   state BACKUP
   interface eth0
   virtual_router_id 51
   priority 99
   advert_int 1
   authentication {
       auth_type PASS
       auth_pass 1111
    }
   virtual_ipaddress {
       192.168.1.137/24
    }
}
}
客户机测试
[iyunv@localhost paixian]#showmount -e192.168.1.137
Export list for 192.168.1.137:
/nfs_data/home/paixian 192.168.1.0/24
看来需求是可以解决了,当在客户机删除或者创建一个文件的时候就会同步到别的客户机和主nfs服务器上,那么问题来了,另外一台从的nfs服务器该如何同步呢?那么我们需要用到unison+inotify来实现主从那个共享文件的互相同步了

4.用inotify+unison实现共享文件互相同步

http://wenku.baidu.com/link?url= ... qq-pf-to=pcqq.group
1.135上的操作
wgethttp://caml.inria.fr/pub/distrib/ocaml-3.12/ocaml-3.12.0.tar.gz ///下载2进制安装程序
tar xf ocaml-3.12.0.tar.gz
cd ocaml-3.12.0
./configure
make world opt
make install
wgethttp://www.seas.upenn.edu/~bcpie ... nison-2.48.3.tar.gz
mv unison-2.48.3.tar.gz ../
cd ..
tar xf unison-2.48.3.tar.gz
cd unison-2.48.3
make UISTYLE=text
yum install emacs -y(报错etags安装emacs)
mkdir /root/bin/
cp unison /root/bin/(报错没有/root/bin这个文件夹)
make install
双机互信:
ssh-keygen
ssh-copy-id -i .ssh/id_rsa.pubroot@192.168.1.134(2台互相做)
scpunison root@192.168.1.135:/usr/local/bin/unison
134上创一个/root/bin目录然后把unison复制到/root/bin下面
创建文件[iyunv@min paixian]# cat /root/.unison/default.prf

#Unison preferences file

batch= true
owner= true
group= true
perms= -1
fastcheck= true
rsync= false
sshargs= -C
xferbycopying= true
confirmbigdel= false
log= true
logfile= /home/unison/unison.log
然后复制到134上
scp/root/.unison/default.prf 192.168.1.134:/root/.unison/default.prf

1.135和1.134安装inotify

wget   http://github.com/downloads/rvoi ... y-tools-3.14.tar.gz
mvinotify-tools-3.14.tar.gz /usr/local
cd /usr/local
tar xf inotify-tools-3.14.tar.gz
mv inotify-3.14 inotify
./configure
make&&make install
写脚本检测变同步
[iyunv@minpaixian]# cat /usr/local/unison.sh
inotifywait-mrq --timefmt '%Y/%m/%d-%H:%M:%S' --format '%T %w %f %e' -emodify,attrib,move,create,delete /nfs_data/home/paixian|while read files
do
/root/bin/unison/nfs_data/home/paixian ssh://192.168.1.134//nfs_data/home/paixian &&echo "${files} was rsynced" >>/tmp/unison.log 2>&1
done
复制到134
scp/usr/local/unison.sh 192.168.1.134:/usr/local/unison.sh
然后修改里面的ip为192.168.1.135即可
开始同步可能得花很长一段时间
但后面就可以做到4台甚至N台(只要你多几台挂载就行)实时同步并且高可用了


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-113378-1-1.html 上篇帖子: keepalive的简单应用——管理VIP的飘动 下篇帖子: keepalived热备,vip问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表