CentOS6.2下搭建LVS(NAT)+Keepalived实现高性能高可用负载均衡
  vRjYELaPnroq 2023年11月02日 58 0


 

 keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换。Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。

 

基于LVS(NAT)+ Keepalived实现高性能高可用负载均衡服务器。


其实NAT模式在企业用的不多,我和很多朋友都沟通过这个事情,我们搭建这个环节主要是测试一下整个性能与DR的具体的差距。但是在搭建这个环境过程中遇到一点小问题,就是

内网的VIP不知道如何去设置,这个问题困扰了我很长时间,因为LVS也只是刚刚接触,期间给我一个之前的学员电话他给我提供了一个方法,昨天晚上回去测试OK~!今天上午在线上也测试了,没有问题。以后要继续努力~!朝着我的目标前进~!同时希望各位在参考时遇到什么问题和我及时沟通,以便更好的完善文档!~

软件下载:
keepalived:http://www.keepalived.org/software/keepalived-1.2.2.tar.gz
ipvsadm: http://www.linuxvirtua​​ls​​erver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz 注意:(for kernel 2.6.28-rc3 or later)
popt-​​stat​​ic:http://mirror.centos.org/centos/6/os/x86_64/Packages/popt-static-1.13-7.el6.x86_64.rpm
 

实验拓扑图

1、在2台Director Server上分别配置LVS+Keepalived[root@host1 ~]# rpm -ivh popt-static-1.13-7.el6.x86_64.rpm

#看我前一篇文章http://crazylinux.blog.51cto.com/259244/811591

[root@host1 ~]# yum -y install kernel-devel make gcc openssl-devel l​ftp​ libnl* popt*

[root@host1 ~]# ​ln​ -s /usr/src/kernels/2.6.18-194.el5-x86_64/ /usr/src/linux

[root@host1 ~]# tar -zxvf ipvsadm-1.26.tar.gz -C /usr/src/

[root@host1 ~]# ​cd​ /usr/src/ipvsadm-1.26/

[root@host1 ipvsadm-1.26]# make

[root@host1 ipvsadm-1.26]# make install

[root@host1 ~]# tar -zxvf keepalived-1.2.2.tar.gz -C /usr/src/

[root@host1 ~]# cd /usr/src/keepalived-1.2.2/

[root@host1 keepalived-1.2.2]# ./configure

[root@host1 keepalived-1.2.2]# make

[root@host1 keepalived-1.2.2]# make install

[root@host1 keepalived-1.2.2]# ​cp​ /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

[root@host1 keepalived-1.2.2]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

[root@host1 keepalived-1.2.2]# ​mkdir​ /etc/keepalived

[root@host1 keepalived-1.2.2]# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/

[root@host1 keepalived-1.2.2]# cp /usr/local/sbin/keepalived /usr/sbin/

2 、开启路由转发[root@host1 ~]# vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

[root@host1 ~]# sysctl -p

3、配置Keepalived
[root@host1 ~]# less /etc/keepalived/keepalived.conf

  1. ! Configuration File for
  2. global_defs {
  3. #备上修改LVS_BACKUP
  4. }
  5. vrrp_insta​nc​e VI_1 {
  6. #备上修改BACKUP
  7. interface eth0
  8. 51
  9. 100                #备上修改80
  10. 1
  11. authenti​cat​ion {
  12. auth_type PASS
  13. 1111
  14. }
  15. virtual_ipa​dd​ress {
  16. 10.0.0.10
  17. }
  18. }

  19. vrrp_instance LAN_GATEWAY {
  20. #备上修改BACKUP
  21. interface eth1
  22. 52
  23. 100                 #备上修改80
  24. 1
  25. authentication {
  26. auth_type PASS
  27. 1111
  28. }
  29. virtual_ipaddress {
  30. 192.168.10.10
  31. }
  32. }

  33. virtual_server 10.0.0.10 80
  34. 6
  35. lb_algo rr
  36. lb_kind NAT
  37. #    nat_mask 255.255.255.0
  38. #    persistence_​time​out 50
  39. proto​col​ TCP

  40. 192.168.10.3 80
  41. 1
  42. TCP_CHECK {
  43. 10
  44. nb_get_re​tr​y 3
  45. 80
  46. }
  47. }
  48. 192.168.10.4 80
  49. 1
  50. TCP_CHECK {
  51. 10
  52. 3
  53. 80
  54. }
  55. }
  56. }


 BACKUP服务器同上配置,先安装lvs再按装keepalived,然后配置/etc/keepalived/keepalived.conf,只需将批注部分改一下即可。

4、分别在2台Real Server上面设置网关把网关都设置成:192.168.10.10

5、在2台RealServer中分别配置HTTP[root@host3 ~]# yum -y install ​httpd​ [root@host3 ~]# cd /var/www/html/

[root@host3 html]# cat ind​ex​.html

<h1>RealServer for 192.168.10.3</h1>

[root@host3 html]# /etc/init.d/httpd start

另一台机器配置一样,过程略、、、

6、测试:
分别启动Keepalived

[root@host1 ~]# ​chkconfig​ keepalived on

[root@host1 ~]# /etc/init.d/keepalived restart

[root@host1 ~]# ipvsadm -ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Sche​du​ler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  10.0.0.10:80 rr

  -> 192.168.10.3:80              Masq    1      0          0        

  -> 192.168.10.4:80              Masq    1      0          0 

先关闭LVS_Master的Keepalived,观察LVS_Backup的日志

[root@host2 ~]# tailf /var/log/messages

Mar 22 22:39:16 host2 Keepalived_vrrp: VRRP_Instance(LAN_GATEWAY) Transition to MASTER STATE

Mar 22 22:39:16 host2 Keepalived_vrrp: VRRP_Instance(VI_1) Transition to MASTER STATE

Mar 22 22:39:17 host2 Keepalived_vrrp: VRRP_Instance(LAN_GATEWAY) Entering MASTER STATE

Mar 22 22:39:17 host2 Keepalived_vrrp: VRRP_Instance(LAN_GATEWAY) ​set​ting protocol VIPs.

Mar 22 22:39:17 host2 Keepalived_vrrp: VRRP_Instance(LAN_GATEWAY) Sending gratuitous ARPs on eth1 for 192.168.10.10

Mar 22 22:39:17 host2 Keepalived_vrrp: VRRP_Instance(VI_1) Entering MASTER STATE

Mar 22 22:39:17 host2 Keepalived_vrrp: VRRP_Instance(VI_1) setting protocol VIPs.

Mar 22 22:39:17 host2 Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 10.0.0.10

Mar 22 22:39:17 host2 Keepalived_healthcheckers: Netlink reflector reports IP 192.168.10.10 added

Mar 22 22:39:17 host2 Keepalived_healthcheckers: Netlink reflector reports IP 10.0.0.10 added

Mar 22 22:39:22 host2 Keepalived_vrrp: VRRP_Instance(LAN_GATEWAY) Sending gratuitous ARPs on eth1 for 192.168.10.10

Mar 22 22:39:22 host2 Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 10.0.0.10

在测试机上访问:

在2台RealServer中分别配置HTTP

[root@host3 ~]# yum -y install httpd

[root@host3 ~]# cd /var/www/html/

[root@host3 html]# cat index.html

<h1>RealServer for 192.168.10.3</h1>

[root@host3 html]# /etc/init.d/httpd start

另一台机器配置一样,过程略、、、

7、测试:
分别启动Keepalived

[root@host1 ~]# chkconfig keepalived on

[root@host1 ~]# /etc/init.d/keepalived restart

[root@host1 ~]# ipvsadm -ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  10.0.0.10:80 rr

  -> 192.168.10.3:80              Masq    1      0          0        

  -> 192.168.10.4:80              Masq    1      0          0 

先关闭LVS_Master的Keepalived,观察LVS_Backup的日志

[root@host2 ~]# tailf /var/log/messages

Mar 22 22:39:16 host2 Keepalived_vrrp: VRRP_Instance(LAN_GATEWAY) Transition to MASTER STATE

Mar 22 22:39:16 host2 Keepalived_vrrp: VRRP_Instance(VI_1) Transition to MASTER STATE

Mar 22 22:39:17 host2 Keepalived_vrrp: VRRP_Instance(LAN_GATEWAY) Entering MASTER STATE

Mar 22 22:39:17 host2 Keepalived_vrrp: VRRP_Instance(LAN_GATEWAY) setting protocol VIPs.

Mar 22 22:39:17 host2 Keepalived_vrrp: VRRP_Instance(LAN_GATEWAY) Sending gratuitous ARPs on eth1 for 192.168.10.10

Mar 22 22:39:17 host2 Keepalived_vrrp: VRRP_Instance(VI_1) Entering MASTER STATE

Mar 22 22:39:17 host2 Keepalived_vrrp: VRRP_Instance(VI_1) setting protocol VIPs.

Mar 22 22:39:17 host2 Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 10.0.0.10

Mar 22 22:39:17 host2 Keepalived_healthcheckers: Netlink reflector reports IP 192.168.10.10 added

Mar 22 22:39:17 host2 Keepalived_healthcheckers: Netlink reflector reports IP 10.0.0.10 added

Mar 22 22:39:22 host2 Keepalived_vrrp: VRRP_Instance(LAN_GATEWAY) Sending gratuitous ARPs on eth1 for 192.168.10.10

Mar 22 22:39:22 host2 Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 10.0.0.10

在测试机上访问:

启动LVS_Master,在查看LVS_Backup日志
[root@host2 ~]# tailf /var/log/messages
Mar 22 22:51:50 host2 Keepalived_vrrp: VRRP_Instance(LAN_GATEWAY) Received higher prio advert
Mar 22 22:51:50 host2 Keepalived_vrrp: VRRP_Instance(LAN_GATEWAY) Entering BACKUP STATE
Mar 22 22:51:50 host2 Keepalived_vrrp: VRRP_Instance(LAN_GATEWAY) removing protocol VIPs.
Mar 22 22:51:50 host2 Keepalived_vrrp: VRRP_Instance(VI_1) Received higher prio advert
Mar 22 22:51:50 host2 Keepalived_healthcheckers: Netlink reflector reports IP 192.168.10.10 removed
Mar 22 22:51:50 host2 Keepalived_vrrp: VRRP_Instance(VI_1) Entering BACKUP STATE
Mar 22 22:51:50 host2 Keepalived_vrrp: VRRP_Instance(VI_1) removing protocol VIPs.
Mar 22 22:51:50 host2 Keepalived_healthcheckers: Netlink reflector reports IP 10.0.0.10 removed
一切访问正常~!

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  4koL3J55wyKx   2023年11月13日   38   0   0 icogitCentOS
  9E2BTpjt8nym   2023年12月06日   36   0   0 WindowsgitCentOS
vRjYELaPnroq