Chinaunix首页 | 论坛 | 博客
  • 博客访问: 965864
  • 博文数量: 86
  • 博客积分: 2283
  • 博客等级: 大尉
  • 技术积分: 861
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-04 09:02
个人简介

没什么好说的。

文章分类

全部博文(86)

文章存档

2014年(1)

2013年(5)

2012年(7)

2011年(26)

2010年(20)

2009年(27)

分类: 架构设计与优化

2013-02-20 15:22:18

拓扑图: 实验ip规划 VIP:192.168.1.200 Real server1:192.168.1.195 Real server2:192.168.1.193 心跳线:10.1.1.1、10.1.1.2 DR1:192.168.1.192 DR2:192.168.1.1.190 实现过程 第一:在主节点上的配置 首先配置LVS [root@localhost ~]# cd tools/ [root@localhost tools]# ls ipvsadm-1.24.tar.gz ipvsadm-1.24.tar.gz [root@localhost tools]# tar zxvf ipvsadm-1.24.tar.gz [root@localhost tools]# cd ipvsadm-1.24 [root@localhost ipvsadm-1.24]# ln -s /usr/src/kernels/2.6.18-164.el5 /usr/src/linux/ [root@localhost ipvsadm-1.24]# make all && make install 然后安装配置keepalived [root@localhost tools]# ls keepalived-1.2.2.tar.gz keepalived-1.2.2.tar.gz [root@localhost tools]# tar zxvf keepalived-1.2.2.tar.gz [root@localhost tools]# cd keepalived-1.2.2 [root@localhost keepalived-1.2.2]# vi keepalived/libipvs-2.6/ip_vs.h 找到下面一行: #include /* For __beXX types in userland */ 把他放到下面一行的下面: #include [root@localhost keepalived-1.2.2]# make && make install [root@localhost keepalived-1.2.2]# ln -s /usr/local/sbin/keepalived /sbin/ [root@localhost ~]# cd /etc/keepalived/ [root@localhost keepalived]# cp keepalived.conf keepalived.conf.bak //备份 [root@localhost keepalived]# vi keepalived.conf //修改设置档如下 ! Configuration File for keepalived global_defs { notification_email { wethnicity@126.com 38205036@qq.com } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.1.192 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_typePASS auth_pass 1111 } virtual_ipaddress { 192.168.1.200 } } virtual_server 192.168.1.200 80 { delay_loop 6 lb_algo rr lb_kind DR nat_mask 255.255.255.0 persistence_timeout 50 protocol TCP real_server 192.168.1.193 80 { weight 1 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 } } real_server 192.168.1.195 80 { weight 1 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 } } } 在备用节点上的设置和主节点基本完全相同(因为是提供相同的服务),仅仅需要修改的就是keepalived.con vrrp_instance VI_1 { state BACKUP //修改处 interface eth0 virtual_router_id 51 priority 80 //修改处 advert_int 1 authentication { auth_typePASS auth_pass 1111 } 第二:在real server上的设置(两个real server基本相同,故这里只设置一个) [root@localhost ~]# cd /var/www/html/ [root@localhost html]# vi index.html It's 192.168.1.195!! [root@localhost html]# /etc/init.d/httpd start [root@localhost ~]# vi /etc/init.d/lvsrs #!/bin/bash VIP=192.168.1.200 /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up /sbin/route add -host $VIP dev lo:0 echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce sysctl -p #end [root@localhost ~]# chmod a+x /etc/init.d/lvsrs [root@localhost ~]# /etc/init.d/lvsrs start 第三:测试的部分(开启real server的apache服务) [root@localhost ~]# ipvsadm IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.1.200:http rr persistent 50 -> 192.168.1.193:http Route 1 0 0 -> 192.168.1.195:http Route 1 0 0 [root@localhost ~]# /etc/init.d/keepalived start IE中访问不断刷新就能看到效果 另外可以人为的制造单点故障来测试,具体的过程参看/var/log/messages 总结:这是负载均衡学习的一个总结,接下来重点要就高可用的方案。 最后列出软件呢安装时出现的问题及其解决办法 1、 Keepalived安装错误一例(make错误)(本部分拾人牙慧) /usr/include/sys/types.h:235: 错误:与 ‘blkcnt_t’ 类型冲突 /usr/src/kernels/2.6.18-238.19.1.el5-i686//include/linux/types.h:142: 错误:‘blkcnt_t’ 的上一个声明在此 make[2]: *** [ip_vs_nl_policy.o] 错误 1 make[2]: Leaving directory `/usr/local/src/keepalived-1.2.2/keepalived/libipvs-2.6' make[1]: *** [all] 错误 1 make[1]: Leaving directory `/usr/local/src/keepalived-1.2.2/keepalived' make: *** [all] 错误 2 解决方法: 进入源码目录就是你解压的目录了: cd /usr/local/src/keepalived-1.2.2 vi keepalived/libipvs-2.6/ip_vs.h 找到下面一行: #include /* For __beXX types in userland */ 把他放到下面一行的下面: #include 我想我说明白了,这是最新版本的问题,如果用keepalived-1.2.1则不会出现这个问题了 2、ipvsadm make时的错误 make[1]: gcc: Command not found make[1]: *** [libipvs.o] Error 127 make[1]: Leaving directory `/home/wss/lvs/ipvsadm-1.24/libipvs' make: *** [libs] Error 2 [root@localhost ipvsadm-1.24]# 解决办法 [root@localhost ~]# ln -s /usr/src/kernels/2.6.18-164.el5 /usr/src/linux/ 结束最后实验
阅读(2192) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~