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

[经验分享] Linux LVS+Heartbeat+memcached+nfs Web集群的构建

[复制链接]

尚未签到

发表于 2015-9-1 12:09:53 | 显示全部楼层 |阅读模式
经过几天的学习与折腾,终于搞定了LVS+Heartbeat+memcached+nfs,时间主要花在ldirectord上了。把安装与配置记录下来,以防日后遗忘,也方便他人学习。以下配置在CentOS5.1下测试通过的,如果没有笔误,应该没有什么问题。 一、说明 LVS 是Linux Virtual Server,主要用来实现后端服务的负载均衡,用源码包ipvsadm构建,本文使用基于tunneling模式的转发机制,调度算法使用 weighted Least-connec  
  经过几天的学习与折腾,终于搞定了LVS+Heartbeat+memcached+nfs,时间主要花在ldirectord上了。把安装与配置记录下来,以防日后遗忘,也方便他人学习。以下配置在CentOS5.1下测试通过的,如果没有笔误,应该没有什么问题。
  一、说明
  LVS 是Linux Virtual  Server,主要用来实现后端服务的负载均衡,用源码包ipvsadm构建,本文使用基于tunneling模式的转发机制,调度算法使用 weighted Least-connected(wlc),即每个新的连接被分配到负担最小的服务器。
  Heartbeat 是一种心跳检测机制,主要用来实现双机互备份,它的接管工作是通过ARP欺骗的手段来完成的。
  Memcached memcached不是memcache,它是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。在本文主要用来实现session共享。
  NFS 在本文用来实现web源程序目录挂载到web服务器的本地目录
  
1.拓扑图
  
  
  

DSC0000.jpg   
  
2.服务器主机名与IP分配
  
VIP:192.168.1.10
  
Virtual Server
  主机名:lvs1
  Eth0_IP:192.168.1.2/24
  Eth1_IP:192.168.10.9/29(heartbeat line)
  
Virtual Server_backup
  主机名:lvs2
  Eth0_IP:192.168.1.3/24
  Eth1_IP:192.168.10.10/29(heartbeat line)
  
Real Server web1
  主机名:web1
  IP:192.168.1.4/24
  
Real Server web2
  主机名:web2
  IP:192.168.1.5/24
  
Memcached and web code
  主机名:share
  IP:192.168.1.6/24
  
Mysql server
  主机名:data
  
IP:192.168.1.7/24
  
  二、安装与配置LVS
  
1.安装 ipvsadm
  
# tar zxvf ipvsadm-1.24.tar
  # cd ipvsadm-1.24
  
# ln –s /usr/src/kernels/2.6.18-53.el5-i686/ /usr/src/linux
  # make
  
# make install
  
2. Configure shell of tunlvs on Vritual Server and Vritual server_backup
  
  
  # vi /etc/rc.d/init.d/tunlvs
  
#!/bin/sh
  VIP=192.168.1.10
  WEB1=192.168.1.4
  WEB2=192.168.1.5
  /etc/rc.d/init.d/functions
  case "$1" in
  start)
  echo "start LVS directorserver"
  /sbin/ifconfig tunl0 $VIP broadcast $VIP netmask 255.255.255.255 up
  /sbin/route add -host $VIP dev tunl0
  /sbin/ipvsadm -C
  /sbin/ipvsadm -A -t $VIP:80 -s wlc
  /sbin/ipvsadm -a -t $VIP:80 -r $WEB1:80 -i
  /sbin/ipvsadm -a -t $VIP:80 -r $WEB2:80 -i
  /sbin/ipvsadm
  ;;
  stop)
  echo "close LVS directorserver"
  /sbin/ipvsadm -C
  ;;
  *)
  echo "Usage:$0 {start|stop}"
  exit 1
  esac
  
  # chmod 755 /etc/rc.d/init.d/tunlvs
  
  3、Configure shell of tunl on Real_web1 and Real_web2
  
  
  # vi /etc/rc.d/init.d/tunl
  
#!/bin/sh
  VIP=192.168.1.10
  /etc/rc.d/init.d/functions
  case "$1" in
  start)
  echo "tunl port starting"
  /sbin/ifconfig tunl0 $VIP broadcast $VIP netmask 255.255.255.255 up
  /sbin/ifconfig add -host $VIP dev tunl0
  echo "1">/proc/sys/net/ipv4/conf/tunl0/arp_ignore
  echo "2">/proc/sys/net/ipv4/conf/tunl0/arp_announce
  echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
  echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
  sysctl –p
  ;;
  stop)
  echo "tunl port closing"
  ifconfig tunl0 down
  echo "1">/proc/sys/net/ipv4/ip_forward
  echo "0">/proc/sys/net/ipv4/conf/all/arp_announce
  ;;
  *)
  echo "Usege:$0 {start|stop}"
  exit 1
  
esac
  
  4、test lvs
  
  Virtual Server:
  
  # /etc/rc.d/init.d/tunlvs start
  
  Real_web1 and Real_web2:
  
  # /etc/rc.d/init.d/tunl start
  
  Real_web1:
  
  # echo “this is test for web1”>>/var/www/html/index.html
  
  Real_web2:
  
# echo “this is test for web2”>>/var/www/html/index.html
  
  
  
五、NFS与Memcached(Session共享)
  
1.Nfs
  # rpm -ivh /mnt/CentOS/portmap-4.0-65.2.2.1.i386.rpm
  # rpm -ivh /mnt/CentOS/nfs-utils-1.0.9-24.el5.i386.rpm
  # vi /etc/exports
  /webdata 192.168.1.4(rw,sync,no_wdelay) 192.168.1.5(rw,sync,no_wdelay)
  # chkconfig –level 35 portmap on
  # chkconfig –level 35 nfs on
  # /etc/rc.d/init.d/portmap start
  # /etc/rc.d/init.d/nfs start
  
2.Memcached
  
# rpm –ivh /mnt/Centos/ libevent-1.1a-3.2.1.i386.rpm
  # rpm –ivh /mnt/Centos/ libevent-devel-1.1a-3.2.1.i386.rpm
  
# tar zxvf memcached-1.2.6.tar.tar
  # ./configure
  # make && make install
  
# memcached -d -m 512 –l 192.168.1.6 -p 11211 -u root
  # killall –HUP memcached
  
六、挂载 web主目录与配置php使用session共享
  
Real_web1 and Real_web2
  
1.mount
  # showmount –e 192.168.1.6
  # mount –t nfs 192.168.1.6:/webdata /var/www/html
  # vi /etc/fstab
  192.168.1.6:/webdata /var/www/html nfs defaults 0 0
  
2. 配置php使用session共享
  
# tar zxvf memcache-2.2.3.tgz
  # phpize
  # ./configure –enable-memcache
  # make && make install
  
# vi /etc/php.ini
  
[Session]
  extension=memcache.so
  extension_dir = "/usr/lib/php/modules"
  session.save_handler = memcache
session.save_path = “tcp://192.168.1.6:11211”
  
七、监控页的设置
  
Real_web1 and Real_web2:
  
这里是配合ldirectord.cf的ldirectord守护进程
  # mkdir /var/www/test
  # vi /etc/httpd/conf/httpd.conf
  
Alias /test/ "/var/www/test/"
  <Directory "/var/www/test/">
  Options FollowSymLinks
  AllowOverride None
  Order allow,deny
  Allow from all
  </Directory>
  
# echo "Test Page" > /var/www/test/test.html
  
八、Mysql Server
  
# /etc/rc.d/init.d/mysqld start
  # mysqladmin -u root -p password test
  # mysql –root –p
  > grant all on *.* to mysql@’192.168.1.0/24’ identified by ‘your_password ’with grant option;
  > flush privileges;                    
  > quit;

运维网声明 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-108341-1-1.html 上篇帖子: Memcached 基础应用 下篇帖子: PHP Fatal error: Class 'Memcached' not found
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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