CentOS6.4高可用集群LVS+Keepalived(NAT模式)

拓扑图

环境概述:


操作系统:

CentOS6.3_x64

负载均衡模式:NAT
VIP:192.168.108.180

公网IP,其余为内网


NVTP:192.168.0.50

LVS-MASTER LVS-BACKUP WEB1 WEB2

eth0:192.168.108.170

eth1:192.168.0.10


eth0:192.168.108.171

eth1:192.168.0.20


eth0:192.168.0.30

网关:192.168.0.50


eth0:192.168.0.40

网关:192.168.0.50

ipvsadm

在负载调度器上使用的LVS群集管理工具,通过调用ip_vs模块来添加、删除服务器节点,以及查看群集的运行状态。

Keepalived 主要实现VRRP功能,用作RealServer的web服务器健康状态以及LoadBalance(负载均衡)主机和BackUP主机之间failover(系统自动主从切换)的实现。
三种LVS模式 DR:直接路由 、Tuning:tcp/ip隧道和NAT:网络地址转换
Web公共存储 可以使用NFS网络文件系统来代替,两台Web同时挂载NFS,过程略...

安装依赖包:


1

[root@localhost ~]# yum install -y gcc gcc-c++ make pcre pcre-devel kernel-devel openssl-devel libnl-devel popt-devel

一、配置主从LVS服务器

1、检查linux内核是否集成lvs模块:modprobe -l | grep ipvs

2、开启路由转发功能:echo "1">/proc/sys/net/ipv4/ip_forward

3、安装ipvsadm


1

2

3

4

wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz

tar -zxvf ipvsadm-1.26.tar.gz

cd ipvsadm-1.26

make && make install

在执行make的时候如果出现错误提示:libipvs.h:14:23:error:net/ip_vs.h:No such file ordirectory则添加软连接ln -s /usr/src/kernels/2.6.18-194.el5-x86_64/ /usr/src/linux

4、安装keepalived


1

2

3

4

5

wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz

tar zxvf keepalived-1.2.7.tar.gz

cd keepalived-1.2.7

./configure --prefix=/usr/local/keepalived

make && make install

将keepalived配置成系统服务 


1

2

3

4

5

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

mkdir /etc/keepalived/

cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

5、修改主keepalived配置文件(备只修改router_id、state和priority)


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

[root@localhost ~]# vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {

test@sina.com #故障接受联系人

}

notification_email_from admin@test.com #故障发送人

smtp_server 127.0.0.1  #本机发送邮件

smtp_connect_timeout 30

router_id LVS_MASTER   #BACKUP上修改为LVS_BACKUP

}

vrrp_instance VI_1 {

state MASTER    #BACKUP上修改为BACKUP

interface eth0

virtual_router_id 51   #虚拟路由标识,主从相同

priority 100    #BACKUP上修改为90

advert_int 1

authentication {

auth_type PASS

auth_pass 1111   #主从认证密码必须一致

}

virtual_ipaddress {  #虚拟IP(VTP)

192.168.108.180

 }

}

vrrp_instance LAN_GATEWAY { #定义内网网关

 state MASTER#BACKUP上修改为BACKUP

 interface eth1

 virtual_router_id 50 #虚拟路由ID,主从相同

 priority 100  #BACKUP上修改为90

 advert_int 1

 authentication {

 auth_type PASS

 auth_pass 1111

 }

 virtual_ipaddress {  #内网网关虚拟IP

 192.168.0.50

 }

}

virtual_server 192.168.0.50 80 { #定义内网网关虚拟IP和端口

delay_loop 6    #检查真实服务器时间,单位秒

lb_algo rr      #设置负载调度算法,rr为轮训

lb_kind NAT     #设置LVS负载均衡NAT模式

persistence_timeout 50 #同一IP的连接60秒内被分配到同一台真实服务器

protocol TCP    #使用TCP协议检查realserver状态

real_server 192.168.0.10 80 {  #第一个网关节点

weight 3          #节点权重值

TCP_CHECK {       #健康检查方式

connect_timeout 3 #连接超时

nb_get_retry 3    #重试次数

delay_before_retry 3  #重试间隔/S

 }

}

real_server 192.168.0.20 80 {  #第二个网关节点

weight 3

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

  }

 }

}

virtual_server 192.168.108.180 80 { #定义外部虚拟IP

delay_loop 6

lb_algo rr

lb_kind NAT

persistence_timeout 50

protocol TCP

real_server 192.168.0.30 80 {  #第一个web服务器

weight 3

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

connect_port 80

 }

}

real_server 192.168.0.40 80 {  #第二个web服务器

weight 3

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

connect_port 80

  }

 }

}

[root@localhost ~]# service keepalived restart #启动keepalived

二、配置两台real-web服务

1、配置两台内网Web服务器网关指向192.168.0.50

2、启动http服务并写入测试页


1

2

3

4

5

[root@localhost ~]# service httpd start

[root@localhost ~]# echo “192.168.0.30″ > /var/www/html/index.html

[root@localhost ~]# echo “192.168.0.40″ > /var/www/html/index.html

[root@localhost ~]# service iptables stop  #关闭防火墙

[root@localhost ~]# setenforce 0  #临时关闭selinux

三、测试及常用命令

http://192.168.108.180#访问一直刷新会轮训显示192.168.0.30/40

模拟宕掉主LVS,服务器照常工作,再宕掉Web1,这时只会显示Web2,这样就实现ip负载均衡,高可用集群。当主LVS恢复后,会切换成主动服务器,如果Keepalived监控模块检测web故障恢复后,恢复的主机又将此节点加入集群系统中。

常用命令:

[root@localhost ~]# ipvsadm -ln #显示集群中服务器ip信息

[root@localhost ~]# ip addr #显示VTP绑定在哪个服务器上

[root@localhost ~]# tail -f /var/log/messger

(从日志中可知,主机出现故障后,备机立刻检测到,此时备机变为MASTER角色,并且接管了主机的虚拟IP资源,最后将虚拟IP绑定在etho设备上)

时间: 2025-01-20 19:45:41

CentOS6.4高可用集群LVS+Keepalived(NAT模式)的相关文章

CentOS6.5高可用集群LVS+Keepalived(DR模式)

环境介绍 操作系统:CentOS6.5_x64 mini 负载均衡模式:DR(直接路由) LVS与Keepalived简述: LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.使用集群技术和Linux操作系统实现一个高性能.高可用的服务器,很好的可伸缩性.可靠性和管理性. LVS集群采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构

memcached+magent+keepalived高可用集群二

memcached+magent+keepalived高可用集群二. 上篇我们已经配置好memcached+magent了下面 那如果magent宕机了,讲不能继续提供服务,所以就用到了keepalived,添加一台备用的magent代理服务器.当一台magent宕机了由另一台来接替. 配置步骤: 两台magent代理服务器,一台做主一台做从,当主的宕机了由从的接替继续工作. 两台magent代理服务器再启动时指定相同的主缓存节点与备份缓存节点. 通过keepalived配置文件设置优先级来决定

memcached高可用集群原理及介绍

memcached高可用集群原理及介绍.memcached在实现分布式群集部署时,memcached服务之间是不能进行通讯的,分布式也是通过客户端的算法吧数据保存在不同的memcached中,所以当我们做完群集客户端往里面写入数据时,会出现下面的情况. 客户端往一个memcached节点写入数据后,另外两个节点是查询不到的. 那么如何结局额这个问题,就是接下来要做的了. memcached这种群集之间不能相互通讯导致了这种情况,这在访问量很大的web网站中是不允许的.所以我们就要使用到一个mag

Linux之HA高可用集群的基础概念总结

HA(High Availability)高可用集群,其特点为根据实际需求为前端Diretor,后端RS-server,数据库服务器,共享存储等集群节点做一个从备份服务器或者多个服务器互相备份,一旦主服务器挂掉,备份服务器能立马检测到并取代主服务器上的资源继续运行服务,从而最大限度避免了因服务器宕机造成的服务中止.  主节点(active/primary)备节点(passive/standby)  主调度器(Director)一般为集群中的关键节点,所以一般都有备份节点的存在:而后端RS-ser

高可用集群HA及负载均衡集群LB的实现方法

集群是个热门话题,在企业中越来越多地应用Linux操作系统提供邮件.Web.文件存储.数据库等服务,随着Linux应用的日益增长,高可用及http://www.aliyun.com/zixun/aggregation/13996.html">负载均衡Linux集群也在企业中逐步地发展起来.Linux平台的低成本.高性能.高扩展性使得Linux集群能够以低廉的价格很好地满足各种应用的需求. 本文介绍Linux集群的基础知识,集群的分类.在熟悉集群的基础知识后会以RHCS(RedHat Clu

RabbitMQ学习系列(六): RabbitMQ 高可用集群

前面讲过一些RabbitMQ的安装和用法,也说了说RabbitMQ在一般的业务场景下如何使用.不知道的可以看我前面的博客,http://www.cnblogs.com/zhangweizhong/category/855479.html 本来一直想写一个介绍RabbitMQ高可用的集群的文章.不过,后来发现园子里,有个已经RabbitMQ大牛写了,关于高可用集群的文章了.特别巧合的是,还是以前公司的同事.所以,这里就不啰嗦.直接引用过来吧.原文地址:http://www.cnblogs.com/

轻松构建Mysql高可用集群系统

一. MySQL复制的实现原理 MySQL支持单向.双向复制.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入一个二进制日志文件中,并创建一个索引文件以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,日志文件会通知主服务器,从服务器在日志中读取的最后一次成功更新的位置.接着,从服务器在上次成功更新的位置处开始进入更新操作.更新完成后从服务器开始进入等待状态,等待主服务器后续的更新. 需要注意的是:在进行复制时,所

高可用集群Heartbeat简述

一.什么是高可用集群?高可用集群是怎么工作的? 高可用集群(HA:High Availability),就是为了保证服务的持续可用性,使用1个或多个备用主机来保证主服务器宕掉后能自动接替其工作的方案. 这些主机中,正在工作的,我们称为主节点,看着主节点挂掉然后才能干活的,我们称之为备节点,一般高可用集群中,只有两个节点是很特殊的HA集群,一般都是3个或3个以上. 而主机工作一般都是提供各种服务,不管是网页服务还是邮件服务或者数据库服务等,我们将这些服务和服务所需的一些特性或者属性称为资源:(re

基于corosync+pacemaker的nginx高可用集群安装配置

  一.corosync.pacemaker介绍 corosync是用于高可用环境中的提供通讯服务的,它位于高可用集群架构中的底层(Message Layer),扮演着为各节点(node)之间提供心跳信息传递这样的一个角色; pacemaker是一个开源的高可用资源管理器(CRM),位于HA集群架构中资源管理.资源代理(RA)这个层次,它不能提供底层心跳信息传递的功能,它要想与对方节点通信需要借助底层的心跳传递服务,将信息通告给对方.通常它与corosync的结合方式有两种: pacemaker