LB集群之LVS/keepalived

在上一个实验的基础上LVS/DR

(NTA,DR HA 都是用 nginx 服务操作的,省去了安装nginx安装配置)

lvs虽然已经配置成功也实现了负载均衡,但是我们测试的时候发现,当某台real server把httpd进程停掉,那么director照样会把请求转发过去,这样就造成了某些请求不正常。所以需要有一种机制用来检测real server的状态,这就是keepalived。它的作用除了可以检测rs状态外,还可以检测备用director的状态,也就是说keepalived(集HA+LB于一体)可以实现ha集群的功能,当然了也需要一台备用director.

实验环境:三台虚拟机,10.72.4.48 (dir/master),10.72.4.39(rs2&slave),10.72.4.37 (rs2)

[[email protected] ~]# ipvsadm -C  #清空之前的规则

[[email protected] ~]# yum install -y keepalived  #安装keepalived

[[email protected] ~]# vim /etc/keepalived/keepalived.conf

state MASTER   #备用服务器上为 BACKUP

interface eth0

virtual_router_id 51

priority 100  #备用服务器上为90

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

10.72.4.100

}

}

virtual_server 10.72.4.100 80 {

delay_loop 6                  #(每隔10秒查询realserver状态)

lb_algo wlc                  #(lvs 算法)

lb_kind DR                  #(Direct Route)

persistence_timeout 60        #(同一IP的连接60秒内被分配到同一台realserver)

protocol TCP                #(用TCP协议检查realserver状态)

real_server 10.72.4.37 80 {

weight 100               #(权重)

TCP_CHECK {

connect_timeout 10       #(10秒无响应超时)

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

real_server 10.72.4.39 80 {

weight 100

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

}

------------------------------------------------

[[email protected] ~]# scp /etc/keepalived/keepalived.conf 10.72.4.39:/etc/keepalived/keepalived.conf  #拷贝到从上

[[email protected] ~]# vim /etc/keepalived/keepalived.conf #只改以下两处,其他地方不都不用改

vrrp_instance VI_1 {

state BACKUP   #备用服务器上为 BACKUP

interface eth0

virtual_router_id 51

priority 90  #备用服务器上为90

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

10.72.4.100

}

}

------------------------------------------

[[email protected]dir ~]# /etc/init.d/keepalived start

Starting keepalived:                                       [  OK  ]

[[email protected]rs2 ~]# /etc/init.d/keepalived start

Starting keepalived:                                       [  OK  ]

[[email protected]rs1 ~]vim /usr/local/sbin/lvs_nat.sh  #编译脚本

#! /bin/bash
vip=10.72.4.100
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up 
route add -host $vip lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

[[email protected] ~]sh /usr/local/sbin/lvs_nat.sh   #执行脚本

[[email protected]rs2 ~]vim /usr/local/sbin/lvs_nat.sh  #编译脚本

#! /bin/bash
vip=10.72.4.100
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up 
route add -host $vip lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

[[email protected]rs2 ~]sh /usr/local/sbin/lvs_nat.sh #执行脚本

[[email protected] ~]# vim /usr/local/sbin/lvs_dr.sh  #编译打开dir 上的端口转发脚本

#! /bin/bash

echo 1 > /proc/sys/net/ipv4/ip_forward

[[email protected] ~]# sh /usr/local/sbin/lvs_dr.sh #执行脚本

[[email protected]rs2 ~]# /etc/init.d/nginx stop  #停掉 rs2 上的nginx ,

Stopping nginx:                                            [  OK  ]

#停掉rs2 上的nginx 后,IE 刷新 10.72.4.100,不会再出现rs2 上的内容。且主服务器也会把rs2 的IP 踢除,重新启动rs2 上的nginx 服务,会恢复正常。

--------------------------------------------------------

[[email protected] ~]# /etc/init.d/keepalived stop #停掉主dir上的 keepalived ,rs2从上的keepalived就会启动,取代dir 成为主,继续工作。

Stopping keepalived:                                       [  OK  ]

再次重新启动主的 keepalived ,就会恢复到之前的状态。

时间: 2024-10-26 23:37:36

LB集群之LVS/keepalived的相关文章

CentOS Linux 负载均衡高可用WEB集群之LVS+Keepalived配置

CentOS Linux 负载均衡高可用WEB集群之LVS+Keepalived配置 LB集群是locd balance集群的简称.翻译成中文是:负载均衡集群的意思:集群是一组相互独立的.通过高速网络互联的计算机相互之间构成一个组合,并以单一的系统的模式加以管理.LVS是Linux Virtual Server的简写,翻译中文是Linux虚拟服务器,是一个虚拟的服务器集群系统. 负载均衡集群:是为了企业提供更为实用,性价比更高的系统机构解决方案.负载均衡集群把用户的请求尽可能的平均分发到集群的各

基于Vmare的虚拟Linux集群搭建-lvs+keepalived

基于Vmare的虚拟Linux集群搭建-lvs+keepalived 本文通过keepalived实现lvs服务器的的双机热备和真实服务器之间的负载均衡.这方面的blog挺多,但是每个人搭建集群的环境不同,遇到的问题也不同,本文简述配置的一些过程以及配置过程中遇到问题时的解决方案. 准本工作 1. 创建Linux虚拟机 本文是基于Vmare虚拟环境搭建集群的,所以首先在Vmare中创建一些虚拟机(安装一个Linux系统,其他的复制第一次安装的即可),本文创建4台虚拟机.网卡模式设置成桥接方式,这

linux系统构架 - LB集群之LVS介绍

LB 集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有 nginx.lvs.keepalived ,商业的硬件负载设备 F5.Netscale. LB 集群的架构如下图,原理也很简答,就是当用户的请求过来时,会直接发到分发器(Director Server)上,然后它把用户的请求根据预先设置好的算法,智能均衡地分发到后端的真正服务器(real server)上.如果不同的机器,可能用户请求到的数据不一样,为了避免这样的情况发生,所以用到了共享存储

基于VMware的虚拟Linux集群搭建-lvs+keepalived

通过keepalived实现lvs服务器的的双机热备和真实服务器之间的负载均衡的blog挺多的,在搭建的时候也参考了相关博文,不同人搭建的实验环境不一样,本文是基于VM搭建的虚拟集群环境,全部虚拟机网卡模式为NAT方式相连,处于同一网段. 搭建环境: 使用redhead 2.6.32-431.el6.x86_64版本的linux,创建四台,配置相关网络信息,确保同一网段下. 配置好各自ip即可,虚拟ip在配置lvs时设定. 安装配置LVS 1.在主备Lvs上安装ipvsadm和keepalive

linux cluster LB集群之LVS

Linux Cluster 类型分类: 负载均衡集群:Load balancing 高可用集群:High Avaiability 高性能集群:High Performance 及分布式系统 LB:LB的实现是在提供相同服务的多台服务器之前添加调度器即负载均衡集群 工作协议层来划分: tcp:根据请求报文中的目标地址和端口进行调度: 应用层:根据请求的内容进行调度,而且此种调度为"代理"方式: lvs: Linux Virtual Server,虚拟服务, 由章文嵩研发工作于layer4

LB集群之LVS介绍

负载均衡 前言: LB--load balance 比如说有1w/s并发(请求量),启用一台机器只是支持1k/s并发,那么如果支持1w并发则需要1k/s * 10并发的机器同时工作才可以满足. 开源软件:nginx 第7层应用级别.lvs 第4网络层.keepalived 商业硬件设置:F5.Netscale LVS架构: 负载均衡架构图 用户访问一个站点,通过互联网访问一个域名,域名解析后返回一个IP,然而这个IP相当于一个分发器.调度器Director,收到用户的请求(Director通过算

LB集群之LVS/DR

[[email protected] ~]# ipvsadm -C  #清空掉之前的LVS/nat 的规则 [[email protected] ~]# ipvsadm -ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port           Forward Weight ActiveConn InActConn [[email pr

linux系统构架 - LB集群之LVS的DR设置

在lvs的nat模式的基础上 1.清空ipvsadm规则 ipvsadm -C 查看 ipvsadm -ln 2.清空iptables规则 iptables -t nat -F 3.修改rs的网卡配置,修改回来网关 vi /etc/sysconfig/network-scripts/ifcfg-eth0 重启eth0 ifdown eth0; ifup eth0 4.dir网卡 ifdown eth1 dirIP:192.168.1.118  rs1IP:192.168.1.116 rs2IP:

配置LVS/DR模式的LB集群

集群与存储 Day2 配置LVS/DR模式的LB集群1 配置网站服务器 51/521.1 配置VIP地址[[email protected] ~]# ifconfig lo:1 192.168.4.252/32[[email protected] ~]# ifconfig lo:1 1.2 修改网络接口运行参数/proc/sys/net/ipv4/conf[[email protected] conf]# echo 1 > lo/arp_ignore [[email protected] con