一、需求背景
发现公司好多项目都用到memched。并且都是单点,memched服务器 挂了就会影响业务,于是百度之,发现memched不可以集群,也没有看到有什么高可用方案,但是发现了repcached(memched主从复制),结合LVS的NAT模式不同端口转发实现memched双机HA,本文章记录本人的部署过程,从属实战,没有文字性的说明,欢迎各位指点。
二、环境:
- CentOSrelease6.4(Final)
- 调度机(master):
- vip:172.28.26.100
- vip1:172.28.16.100(lvs转发网关)
- eth1:172.28.26.101(内网)
- eth2:172.28.16.101(lvs转发网段)
- 调度机(backup):
- eth1:172.28.26.99(内网)
- eth2:172.28.16.99(lvs转发网段)
- memched备节点:
- eth1:172.28.26.102(内网)
- eth2:172.28.16.102(lvs转发网段)
- memched主节点:
- eth1:172.28.26.103(内网)
- eth2:172.28.16.103(lvs转发网段)
- 调度机(master):
- echo'201eth1'>>/etc/iproute2/rt_tables
- echo'defaulttableeth1via172.28.26.1deveth1'>/etc/sysconfig/network-scripts/route-eth1
- echo'from172.28.26.101/255.255.255.255tableeth1'>/etc/sysconfig/network-scripts/rule-eth1
- echo'from172.28.26.100/255.255.255.255tableeth1'>>/etc/sysconfig/network-scripts/rule-eth1
- echo'from172.28.16.101/32tableZW_LVS_LAN'>/etc/sysconfig/network-scripts/rule-eth2
- memched节点1:
- echo'defaulttableZW_LVS_LANvia172.28.16.100'>/etc/sysconfig/network-scripts/route-eth2
- echo'from172.28.16.0/24tableZW_LVS_LAN'>/etc/sysconfig/network-scripts/rule-eth2
- echo'202ZW_LVS_LAN'>>/etc/iproute2/rt_tables
- memched节点2:
- echo'defaulttableZW_LVS_LANvia172.28.16.100'>/etc/sysconfig/network-scripts/route-eth2
- echo'from172.28.16.0/24tableZW_LVS_LAN'>/etc/sysconfig/network-scripts/rule-eth2
- echo'202ZW_LVS_LAN'>>/etc/iproute2/rt_tables
- fs.file-max=1000000
- kernel.core_uses_pid=1
- kernel.msgmax=1048560
- kernel.msgmnb=1073741824
- kernel.shmall=4294967296
- kernel.shmmax=68719476736
- kernel.sysrq=0
- net.core.netdev_max_backlog=1048576
- net.core.rmem_default=2097152
- net.core.rmem_max=16777216
- net.core.somaxconn=1048576
- net.core.wmem_default=2097152
- net.core.wmem_max=16777216
- net.ipv4.conf.default.accept_source_route=0
- net.ipv4.conf.default.rp_filter=1
- net.ipv4.ip_forward=1
- net.ipv4.ip_local_port_range=102465000
- net.ipv4.neigh.default.gc_thresh1=10240
- net.ipv4.neigh.default.gc_thresh2=40960
- net.ipv4.neigh.default.gc_thresh3=81920
- net.ipv4.tcp_fin_timeout=1
- net.ipv4.tcp_keepalive_intvl=15
- net.ipv4.tcp_keepalive_probes=5
- net.ipv4.tcp_keepalive_time=30
- net.ipv4.tcp_max_orphans=3276800
- net.ipv4.tcp_max_syn_backlog=1048576
- net.ipv4.tcp_max_tw_buckets=50000
- net.ipv4.tcp_mem=94500000915000000927000000
- net.ipv4.tcp_orphan_retries=3
- net.ipv4.tcp_reordering=5
- net.ipv4.tcp_retrans_collapse=0
- net.ipv4.tcp_retries2=5
- net.ipv4.tcp_rmem=4096873804194304
- net.ipv4.tcp_sack=1
- net.ipv4.tcp_synack_retries=1
- net.ipv4.tcp_syncookies=0
- net.ipv4.tcp_syn_retries=1
- net.ipv4.tcp_timestamps=1
- net.ipv4.tcp_tw_recycle=1
- net.ipv4.tcp_tw_reuse=1
- net.ipv4.tcp_window_scaling=1
- net.ipv4.tcp_wmem=4096163844194304
- net.ipv6.conf.all.disable_ipv6=1
- net.ipv6.conf.default.disable_ipv6=1
- net.ipv4.conf.eth0.rp_filter=1#memched节点不需要
- net.ipv4.conf.eth1.rp_filter=1#memched节点不需要
- net.ipv4.conf.eth2.rp_filter=1#memched节点不需要
- net.ipv4.conf.all.rp_filter=0#memched节点不需要
- yum-yinstallipvsadmkeepalivedsendmail
- tar-zxvflibevent-1.4.13-stable.tar.gz
- cdlibevent-1.4.13-stable
- ./configure--prefix=/usr/local
- make
- makeinstall
- tar-zxvfmemcached-1.4.15.tar.gz
- cdmemcached-1.4.15
- ./configure--with-libevent=/usr/local
- make
- makeinstall
- tar-zxvfmemcached-1.2.8-repcached-2.2.tar.gz
- cdmemcached-1.2.8-repcached-2.2
- ./configure--enable-replication
- make
- makeinstall
五、启动服务
- /etc/init.d/keepalivedstart
- /usr/local/bin/memcached-d-v-l0.0.0.0-p11233-X11244-uroot(11244是数据同步端口)
- /usr/local/bin/memcached-d-v-l0.0.0.0-p11234-uroot-x172.28.16.103-X11244(11234是服务监听端口,11244是监听数据同步端口;-x指定masterIP,-X指定master数据同步监听端口)
- PS:
- 1、如果启动的时候报错如下:
- [root@yw_memcached_slave~]#/usr/local/bin/memcached-d-v-l0.0.0.0-p11233-X11244-uroot
- /usr/local/bin/memcached:errorwhileloadingsharedlibraries:libevent-1.4.so.2:cannotopensharedobjectfile:Nosuchfileordirectory
- 请yum安装libeven
- [root@yw_memcached_slave~]#yum-yinstalllibeven
- 2、repcached是日本人开发的实现memcached复制功能,它是一个单master单slave的方案,但它的master/slave都是可读写的,而且可以相互同步,如果master坏掉,slave侦测到连接断了,它会自动listen而成为master;而如果slave坏掉,master也会侦测到连接断,它就会重新listen等待新的slave加入;master没有抢占功能,如果master挂掉再起来只能是从了,并且永远只能是从。
六、测试
本文出自 “为了梦想奋斗” 博客,转载请与作者联系!
原文地址:http://navyaijm.blog.51cto.com/4647068/1177508
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。