centos7.2 搭建keepalived+lvs

centos7 系统安装出来默认的网卡设备名变成了eno....看着不舒服,先来修改下网卡设备名
添加虚拟网卡后不要使用ifconfig查看,要使用ip addr来看虚拟网卡设备名一般为ens37...



安装系统前光标放在"install centos 7"使用tap建,在kernel最后面添加net.ifnames=0 biosdevname=0



已安装好的系统

vim /etc/sysconfig/grub
GRUB_CMDLINE_LINUX在其后面添加net.ifnames=0 biosdevname=0

grub2-mkconfig -o /boot/grub2/grub.cfg 

vim /etc/udev/rules.d/90-eno-fix.rules
将eno...改成eth0

网卡文件名和设备名全部改成eth开头即可。
[[email protected] network-scripts]# ls
ifcfg-eth0   ifdown-eth   ifdown-post    ifdown-TeamPort  ifcfg-eth1
[[email protected] network-scripts]# cat ifcfg-eth0(这里)
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=eth0(这里)
DEVICE=eth0(这里)

reboot即可

修改网卡原文链接

这里顺带提一下修改MAC电脑的密码,开机按command+r进入重装系统界面,调出命令行,输入resetpassword回车,选择用户,根据提示来即可。



进入正题

selinux和firewalld关闭
1.wget http://www.keepalived.org/software/keepalived-1.2.22.tar.gz

2.wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26-1.src.rpm
rpm -ivh  ipvsadm-1.26-1.src.rpm
yum install -y ipvsadm

3.yum install -y gcc gcc+ openssl openssl-devel keepalived

4.tar -xf keepalived-1.2.22.tar.gz

5.cd keepalived-1.2.22/ && ./configure --prefix=/usr/local/ && make && make install

6.mkdir /etc/keepalived

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

8.cd /etc/keepalived/ && vim keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
        [email protected](不使用sendmail,修改为本地)
   }
   notification_email_from [email protected](这里也是)
   smtp_server localhost
   smtp_connect_timeout 30
   router_id LVS1 (这里先修改为LVS1)
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER(主)
    interface eth0  (绑定的网卡与你的网卡设备名一致)
    virtual_router_id 51(VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组)
    priority 100(主节点的优先级(1-254之间),备用节点必须比主节点优先级低)
    advert_int 1(组播信息发送间隔,两个节点设置必须一样  )
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.10.200 (VIP)
    }
}

virtual_server 192.168.10.200 8080 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
 persistence_timeout 0
    protocol TCP
    nat_mask 255.255.255.0

    real_server 192.168.10.20 8080 {
        weight 1
        SSL_GET {
            url {
              path /index.jsp
              digest ff20ad2481f97b1754ef3e12ecd3a9cc
            }
            url {
              path /mrtg/
              digest 9b3a0c85a887a256d6939da88aabd8cd
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}       

9.按同样的方法配置另一节点并修改配置文件,可将次节点的配置文件复制到另一节点,并修改以下几项:
router_id  LVS2
state   BACKUP
priority   99
其它项不必修改。

10.两边都配置完成后先启动主节点
systecmctl start keepalived

11.HTTP_GET:配置健康检查

url {
        path /index.jsp  健康检查的页面
        digest 625eddd79c61cf84c71c0c17448f8093  根据页面计算出的MD5的值,这个值一定不能随便写,不然keepliv
}

下面说一下如何计算digest 

进入到/usr/local/keepalive/bin

./genhash -s 192.168.1.107 -p 8080 -u /index.jsp
通过上诉命令计算digest  然后写到配置文件上就可以了。

12.配置真实服务器

说明:一般真实互联网应用都配置为lb_kind = dr 模式,因为这种模式效率是最高的,缺点就是配置稍微复杂一点,需要配置客户端。

DR模式原理请参考:http://atong.blog.51cto.com/2393905/1348602

简单说一下:  假设A为前端负载均衡服务器, B,C为后端真实服务器。 A接收到数据包以后,会把数据包的MAC地址改成B的(根据调度算法,假设发给B服务器),然后把数据包重新发出去,交换机收到数据包根据MAC地址找到B,把数据包交给B。 这时B会收到数据包,同时验证请求IP地址,由于数据包里的IP地址是给A的,所以正常情况下B会丢弃数据包,为了防止这种情况,需要在B机器的回环网卡上配置A的IP地址。并设置ARP压制。

1:在真实服务器上运行脚本文件

#!/bin/bash
#description : start realserver
VIP=192.168.10.200
/etc/rc.d/init.d/functions
case "$1" in
start)
echo " start LVS of REALServer"
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
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
;;
stop)
/sbin/ifconfig lo:0 down
echo "close LVS Directorserver"
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac   

VIP=192.168.10.200   大家只要修改这个地方为虚拟IP即可,别的地方都不需要改。

2:需要对脚本授权 

chmod +x lvs_real.sh

3:如果脚本是在windows编辑在拷贝过去的会有问题,好像是回车换行符不同导致的。

sed -i ‘s/\r$//‘ lvs_real.sh

4:运行脚本

./lvs_real.sh

13.健康检查方式
virtual_server 192.168.10.200 8080 {
   delay_loop 6
   lb_algo rr
   lb_kind DR
   nat_mask 255.255.255.0
   persistence_timeout 0
   protocol TCP
   real_server 192.168.10.129 8080 {
       weight 1
      TCP_CHECK {
        connect_port    8080
        connect_timeout 5
      }
   }
   real_server 192.168.10.130 8080 {
       weight 1
      TCP_CHECK {
        connect_port    8080
        connect_timeout 5
      }
   }
}

connect_timeout 5   :连接超时时间
nb_get_retry 3        :重连次数
delay_before_retry 3  :重连间隔时间
connect_port 8080        :检测端口

原文1
原文2

下次想分享下6系统基于图形化的lvs+keepalived

原文地址:http://blog.51cto.com/13293172/2130269

时间: 2024-08-01 10:58:35

centos7.2 搭建keepalived+lvs的相关文章

RHEL6 搭建 keepalived + lvs/DR 集群

搭建 keepalived + lvs/DR  集群 使用Keepalived为LVS调度器提供高可用功能,防止调度器单点故障,为用户提供Web服务: LVS1调度器真实IP地址为192.168.4.50 LVS2调度器真实IP地址为192.168.4.55 服务器VIP地址设置为192.168.4.252 真实Web服务器地址分别为192.168.4.51.192.168.4.52 实验拓扑图: 实验步骤: 实验准备: 配置yum源 # service iptables stop       

搭建keepalived + lvs DR

简介:lvs 能为服务器提供负载均衡 keepalived 能为lvs服务器提供热备切换,提高可用性.并对服务器池的节点进行健康检查,自动移除故障节点. 一 搭建lvs 1 网络环境: .配置各IP: lvs1:172.16.16.173 :lvs2:172.16.16.174 :web1:172.16.16.175 :web2:172.16.16.177 四台服务器都需配置vip:172.16.16.172以作为负载均衡提供服务. (1)lvs的vip根据eth0的虚接口进行配置 2) 节点服

LVS DR模式搭建 keepalived + LVS

lvs DR dir 编写脚本vim /usr/local/sbin/lvs_dr.sh #! /bin/bashecho 1 > /proc/sys/net/ipv4/ip_forwardipv=/usr/sbin/ipvsadmvip=192.168.91.200rs1=192.168.91.129rs2=192.168.91.130#注意这里的网卡名字ifdown ens33ifup ens33ifconfig ens33:2 $vip broadcast $vip netmask 255

Centos7 搭建 Keepalived+LVS 备注

NAT模型需要RealServer gateway设定为,DR模式需要执行 RealServer.sh.需要先安装network-tools. #!/bin/bash#description : start realserver VIP=192.168.8.188host='/bin/hostname'case "$1" in start) echo " start LVS of REALServer" /sbin/ifconfig lo down /sbin/if

linux系统搭建keepalived+LVS负载均衡无法访问VIP的问题

故障现象: 客户端访问VIP时,出现无法访问,查看日志信息显示如下: kernel: IPVS: RR: no destination available kernel: IPVS: RR: no destination available kernel: IPVS: RR: no destination available ...... 经网上查询原因大概有二 1.ipvs rr模块没安装,经lsmod |grep rr 显示已经安装,排除. 2.keepalived所有的服务器端口服务没启动

LVS DR 模式搭建、Keepalived+LVS DR模式搭建

LVS DR 模式搭建 Keepalived+LVS DR模式搭建 原文地址:http://blog.51cto.com/13515599/2097080

Keepalived+lvs+httpd之负载均衡

最近在研究 负载均衡.目前研究的是keepalived+lvs模式 1.软件介绍 keepalived:顾名思义是保持存活,常用来搭建设备的高可用,防止业务核心设备出现单点故障.keepalived主要用作realserver的健康检查以及负载均衡主机和backup主机之间的故障漂移. 单点故障:在公司整个业务流程中,某一点出现故障就会导致整个系统架构不可用,单点故障常发生在数据库.核心业务系统等.对此我们的解决办法是对核心业务系统进行高可用负载均衡. LVS:Linux    Virtual 

基于centos7上面搭建LVS+keepalived

基于centos7上面搭建LVS+keepalived 地址规划调度服务器 DR1 主服务器:192.168.10.173 DR2 备份服务器:192.168.10.174 调度服务器 wed1:192.168.10.171 web2:192.168.10.172 虚拟ip vip:192.168.10.10 客户机 client:192.168.10.11 1:配置调度服务器DR1,DR2 [[email protected] ~]# yum install ipvsadm keepalive

Keepalived+LVS+nginx搭建nginx高可用集群

nginx是一款非常优秀的反向代理工具,支持请求分发,负载均衡,以及缓存等等非常实用的功能.在请求处理上,nginx采用的是epoll模型,这是一种基于事件监听的模型,因而其具备非常高效的请求处理效率,单机并发能力能够达到上百万.nginx接收到的请求可以通过负载均衡策略分发到其下一级的应用服务器,这些服务器一般是以集群方式部署的,因而在性能不足的情况下,应用服务器可以通过加机器的方式扩展流量.此时,对于一些特大型的网站,性能的瓶颈就来自于nginx了,因为单机的nginx的并发能力是有上限的,