Keepalived + LVS(DR) 高可用集群

4 篇文章 0 订阅

 

1.       简介

LVS( Linux Virtual Server ) Linux 虚拟服务器,可以把多台服务器虚拟为一个虚拟 IP ,同时实现各种负载均衡算法

Keepalived 是基于 LVS ,并与 LVS 高度融合的,监控 LVS 下所有真实服务器健康状态,并通过健康健康状态动态调整 LVS 的复杂均衡转发权重和规则。同时 keepalived 具备热备功能。

Memcached Session manager 负载后端服务器Tomcat的Session共享和同步。

 

2.       环境准备

四台虚拟机 linux as 5, 小本太慢,每台分配512内存。

内核:

[root@hadoop00 ~]# uname -r

2.6.18-8.el5

LVS: ipvsadm-1.24.tar.gz

Keepalived: keepalived-1.1.17

 

IP 规划

名称

IP

说明

VIP

10.10.10.10

外部应用使用的VIP

调度主服务器

10.10.10.11

Keepalived+LVS 主

调度备服务器

10.10.10.12

Keepalived+LVS 备

真实服务器 1 地址

10.10.10.13

web 服务器 1

真实服务器 2 地址

10.10.10.14

web 服务器 2

 

3.       LVS 安装配置

请参见:http://acooly.iteye.com/blog/1151921

4.       Keepalived 安装配置

安装依赖: kernel-devel openssl-devel

如果你的 Redhat 是官方注册或配置了本地仓库,可以使用:

yum install kernel-devel

yum install openssl-devel

自动安装依赖包

如果没有官方注册,可以直接在安装盘中查找相关依赖包进行手动安装

cd /media/CDROW/Server

ls *openssl-devel*

rpm –ivp …

 

安装 keepalived

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

./configure

make

make install

 

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

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

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

mkdir /etc/keepalived

touch /etc/keepalived/keepalived.conf

 

 

配置 keepalived+LVS

Keepalived 启动的时候默认会检查 /etc/keepalived/keepalived.conf 文件是否存在,如果存在则直接加载该配置文件作为 keepalived 的配置文件,一般的配置都采用在该目录下提供配置文件。注意: keepalived 不会对配置文件的正确性进行合法性检查,所以最好在 windows 中用专业的编辑器编辑并确认无误后在拷贝到该目录。 

Keepalived LVS 都安装在虚拟服务器上,并且与 LVS 紧密结合,安装 keepalived 后无需单独启动 LVS 服务, keepalived 会自动管理 LVS 服务进程, LVS 转发策略, LVS 负载算法和权重。

 

/etc/keepalived/keepalived.conf 配置文件如下:

 

global_defs {
	router_id	KEEPALIVED_LVS
}

vrrp_sync_group KEEPALIVED_LVS {
	group {
		KEEPALIVED_LVS_WEB
	}
}
 
vrrp_instance KEEPALIVED_LVS_WEB {
        state MASTER              //注意:如果Keepalived的备机,这里是SLAVE
        interface eth0
        lvs_sync_daemon_interface eth0
        garp_master_delay 5
        virtual_router_id 100
        priority 150              //注意:这里是主备的权重,备一般权重低于主
        advert_int 1
        authentication {
                auth_type PASS
                auth_pass 111111
        }
        virtual_ipaddress {
                10.10.10.10
        }
}
 
virtual_server 10.10.10.10 80 {
        delay_loop 3
        lb_algo wrr                  //定义负载均衡算法,这里是权重轮训
        lb_kind DR                   //定义模式,这里是Direct route
        persistence_timeout 0        //会话保存时长(秒),0表示不使用stickyness会话  
        protocol TCP
        // 后端服务器定义
        real_server 10.10.10.13 80 {
           weight 1                   //权重
           //HttpGET 方式验证真实服务有效性
           HTTP_GET {                 
           url {
                     //验证后端服务是否正常的访问地址
                     path /checkRealServerHealth.28055dab3fc0a85271dddbeb0464bfdb
                     //访问地址内容的 MD5 摘,通过对比摘要验证后端服务器是否可用
                     digest 26f11e326fc7c597355f213e5677ae75
               }
               connect_timeout 3     //连接超时时间
               nb_get_retry 3        //重试次数
               delay_before_retry 3  //每次重试前等待延迟时间
           }
        }
	
        real_server 10.10.10.14 80 {
           weight 1
           HTTP_GET {
           url {
                     path /checkRealServerHealth.28055dab3fc0a85271dddbeb0464bfdb
                     digest 26f11e326fc7c597355f213e5677ae75
               }
               connect_timeout 3
               nb_get_retry 3
               delay_before_retry 3
          
        }
}

 

 

5.       验证 keepalived+LVS

启动所有真实服务器的 LVS 客户端 : 请参见:http://acooly.iteye.com/blog/1151921 

分别启动主备的调度服务器的 keepalived ,不用独立启动 LVS 的虚拟服务器, Keepalived 会自动管理 LVS 的进程和服务。

[root@hadoop00 keepalived]# service keepalived start

 

检查 keepalived 进程

[root@hadoop00 keepalived]# ps aux|grep keepalived

root      6635  0.0  0.1   4352   596 ?        Ss   20:30   0:00 keepalived -D

root      6636  0.0  0.2   4396  1332 ?        S    20:30   0:00 keepalived -D

root      6638  0.0  0.1   4396   936 ?        S    20:30   0:00 keepalived -D

应该有 3 个进程,其中一个是主服务进程,另外两个分别是 checker 子进程和 vrrp 子进程

 

[root@hadoop00 keepalived]# pstree |grep keepalived

     |-keepalived---2*[keepalived]

 

查看 LVS 内存模块

[root@hadoop00 keepalived]# lsmod| grep ip_vs

ip_vs_wlc               6081  1

 

查看系统日志。

因为我在启动 keepalived 是使用了选项 –D , 这将详细的打印日志消息

tail -f /var/log/messages

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值