Linux/Python学习论坛-京峰教育

 找回密码
 立即注册

一键登录:

搜索
热搜: 活动 交友 discuz
查看: 888|回复: 0

Keepalived + LVS(DR) 高可用集群

[复制链接]

238

主题

288

帖子

1925

积分

超级版主

Rank: 8Rank: 8

积分
1925
QQ
发表于 2015-3-23 20:37:45 | 显示全部楼层 |阅读模式
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://123.57.11.203/thread-1363-1-1.html


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 配置文件如下:

Python代码  收藏代码
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     //<span>连接超时时间</span>  
               nb_get_retry 3        //<span>重试次数</span>  
               delay_before_retry 3  //<span>每次重试前等待延迟时间</span>  
           }  
        }  
      
        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

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|京峰教育,只为有梦想的人 ( 京ICP备15013173号 )

GMT+8, 2019-8-18 04:44 , Processed in 0.032740 second(s), 13 queries , Apc On.

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