文档章节

keepalived+lvs(HA+LB)

joansun
 joansun
发布于 2014/06/02 15:27
字数 1133
阅读 74
收藏 0
                  Keepalived+lvs (HA+LB)

主机环境:RHEL6 系列 selinux and iptables disabled
实验主机:
LVS‐ACTIVE:
192.168.2.15
LVS‐BACKUP:
192.168.2.117
LVS‐VIP:
192.168.2.27
Realsever:
192.168.2.243 192.168.2.111

主备机上的软件包安装
yum install gcc -y
yum install openssl-devel -y
yum install libnl-devel
tar zxf keepalived-1.2.12.tar.gz
cd keepalived-1.2.12
./configure --prefix=/usr/local/keepalived
make && make install
cd /usr/local/keepalived/  keepalived所有的文件目录都在这,可以做软链接放到规定路径
ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/etc/keepalived/ /etc/
lncd keepalived/ -s /usr/local/keepalived/sbin/keepalived /sbin/
cd /etc/keepalived/ 修改配置文件
ls
vim keepalived.conf (格式严格)

! Configuration File for keepalived
  global_defs {
   notification_email {
     root@localhost #接收警报的 email 地址,可以添加多个

   }
   notification_email_from keepalived@joan2.example.com #设置邮件的发送地址

   smtp_server 127.0.0.1 #设置邮件的发送地址

   smtp_connect_timeout 30 #设置连接 smtp 服务器超时时间

   router_id LVS_DEVEL #load balancer 的标识 ID,用于 email 警报

}
vrrp_instance VI_1 {
    state MASTER #备机改为 BACKUP,此状态是由 priority 的值来决定的,当前
priority 的值小于备机的值,那么将会失去 MASTER 状态

    interface eth0 #HA 监测网络接口

    virtual_router_id 45 #主、备机的 virtual_router_id 必须相同,取值 0-255

    priority 78  #主机的优先级,主机优先级一定要大于备机

    advert_int 1 #主备之间的通告间隔秒数

    authentication {#主备切换时的验证

        auth_type PASS #设置验证类型,主要有 PASS 和 AH 两种

        auth_pass 1111 #设置验证密码,在一个 vrrp_instance 下,MASTER 与 BACKUP 必
须使用相同的密码才能正常通信

    }
    virtual_ipaddress {
        192.168.2.27#设置虚拟 IP 地址,可以设置多个虚拟 IP 地址,每行一个

    }
virtual_server 192.168.2.27 80 {#定义虚拟服务器

     delay_loop 6  #每隔 6 秒查询 realserver 状态

     lb_algo rr  #lvs 调度算法,这里使用轮叫

     lb_kind DR  #LVS 是用 DR 模式

     #persistence_timeout 50 #会话保持时间,单位是秒,这个选项对于动态网页是非常有
用的,为集群系统中 session 共享提供了一个很好的解决方案。有了这个会话保持功能,用户的
请求会被一直分发到某个服务节点,直到超过这个会话保持时间。需要注意的是,这个会话保
持时间,是最大无响应超时时间,也就是说用户在操作动态页面时,如果在 50 秒内没有执行任
何操作,那么接下来的操作会被分发到另外节点,但是如果一直在操作动态页面,则不受 50 秒
的时间限制。

     protocol TCP #指定转发协议类型,有 tcp 和 udp 两种

     real_server 192.168.2.243 80 { #配置服务节点

      weight 1  #配置服务节点的权值,权值大小用数字表示,数字越大,权
值越高,设置权值的大小可以为不同性能的服务器分配不同的负载,可以对性能高的服务器设
置较高的权值,而对性能较低的服务器设置相对较低的权值,这样就合理的利用和分配了系统
资源

      TCP_CHECK { #realserve 的状态检测设置部分,单位是秒

      connect_timeout 3 #10 秒无响应超时

      nb_get_retry 3 #重试次数

      delay_before_retry 3 #重试间隔

      }

    }
    real_server 192.168.2.111 80 {
      weight 1
      TCP_CHECK {
      connect_timeout 3
      nb_get_retry 3
     delay_before_retry 3
     }
    }
}可以照这样添加虚拟服务器
/etc/init.d/keepalived restart 启动keepalived
分别在 realserver 上执行以下命令
192.168.2.243
ifconfig eth0:0 192.168.2.27 netmask 255.255.255.255 up 添加虚拟ip
arptables -A IN -d 192.168.2.27 -j DROP
arptables -A OUT -s 192.168.2.27 -j mangle --mangle-ip-s 192.168.2.243
/etc/init.d/arptables_jf save
/etc/init.d/arptables_jf start
192.168.2.111
ifconfig eth0:0 192.168.2.27 netmask 255.255.255.255 up
arptables -A IN -d 192.168.2.27 -j DROP
arptables -A OUT -s 192.168.2.27 -j mangle --mangle-ip-s 192.168.2.111
/etc/init.d/arptables_jf save
/etc/init.d/arptables_jf start


检测:
1.高可用测试:停止 master 上的 keepalived 服务,看 backup 是否接管。
2. 负载均衡测试:访问 http://192.168.2.27,看到页面在两个 realserver 上切换表示成功!
你也可以通过 ipvsadm -Lnc 查看详细连接情况!
3. 故障切换测试:任意关闭 realserver 上的 httpd 服务,Keepalived 监控模块是否能及时发现,
然后屏蔽故障节点,同时将服务转移到正常节点来执行。
西





© 著作权归作者所有

共有 人打赏支持
joansun
粉丝 4
博文 12
码字总数 8931
作品 0
西安
使用KeepAlive实现将lvs进行高可用

配置keepalived: 1、使用DR模式: 环境说明: 192.168.2.205 node1.sky.com keepalived+lvs 服务器 DIP 192.168.2.206 node2.sky.com keepalived+lvs 服务器 DIP 192.168.2.220 lvs VIP 19......

wushank
06/26
0
0
讨论下keepalived和heartbeat

最近要做一个信息查询系统,要用到MYSQL+PHP,由于数据量大所以想做个集群。。。 但是不知道是做keepalived+lvs还是heartbeat+lvs 谁能说下keepalived和heartbeat各自的优缺点 谢谢~...

SpaceQ
2010/09/22
6.6K
2
keepalived+lvs的疑问

小弟最近在VMware上面配置keepalived+lvs遇到一个疑问,就是LVS通过DR实现虚拟服务器,Real Server都配置VIP,那我们访问网页的时候怎么知道是通过负载均衡器然后再转发到Real Server,而不是...

一块云
2012/12/17
595
1
keepalived+lvs实现高可用负载均衡集群

LVS实战篇 第1章 环境准备 1.1 系统环境 1.1.1 系统版本 [root@lb01 ~]# cat /etc/redhat-releaseCentOS release 6.9 (Final)[root@lb01 ~]# uname -r2.6.32-696.el6.x86_64[root@lb01 ~]# u......

北座城市
05/27
0
0
LVS DR模式负载均衡搭建、keepalived高可用+LVS负载均衡配合

LVS DR模式搭建 准备: dir(调度器):192.168.188.2 rs1:192.168.188.3 rs2:192.168.188.6 vip:192.168.188.200 安装ipvsadm dir设置 rs1设置 rs2设置 keepalived+LVS LVS缺点: 当使用...

若白衣
04/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

深夜胡思乱想

魔兽世界 最近魔兽世界出了新版本, 周末两天升到了满级,比之前的版本体验好很多,做任务不用抢怪了,不用组队打怪也是共享拾取的。技能简化了很多,哪个亮按哪个。 运维 服务器 产品 之间的...

Firxiao
7分钟前
0
0
MySQL 8 在 Windows 下安装及使用

MySQL 8 带来了全新的体验,比如支持 NoSQL、JSON 等,拥有比 MySQL 5.7 两倍以上的性能提升。本文讲解如何在 Windows 下安装 MySQL 8,以及基本的 MySQL 用法。 下载 下载地址 https://dev....

waylau
41分钟前
0
0
微信第三方平台 access_token is invalid or not latest

微信第三方开发平台code换session_key说的特别容易,但是我一使用就带来无穷无尽的烦恼,搞了一整天也无济于事. 现在记录一下解决问题的过程,方便后来人参考. 我遇到的这个问题搜索了整个网络也...

自由的开源
今天
0
0
openJDK之sun.misc.Unsafe类CAS底层实现

注:这篇文章参考了https://www.cnblogs.com/snowater/p/8303698.html 1.sun.misc.Unsafe中CAS方法 在sun.misc.Unsafe中CAS方法如下: compareAndSwapObject(java.lang.Object arg0, long a......

汉斯-冯-拉特
今天
2
0
设计模式之五 责任链模式(Chain of Responsibility)

一. 场景 相信我们都有过这样的经历; 我们去职能部门办理一个事情,先去了A部门,到了地方被告知这件事情由B部门处理; 当我们到了B部门的时候,又被告知这件事情已经移交给了C部门处理; ...

JackieRiver
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部