LB/LVS之KeepAlived

2024-03-14 08:18
文章标签 lb keepalived lvs

本文主要是介绍LB/LVS之KeepAlived,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!




基于LVS LB集群解决方案一:LVS + KeepAlived

KeepAlived在该项目中的功能:
1. 实现调度器的HA
2. 对RealServer做健康检查
3. 动态维护IPVS路由表
http://www.keepalived.org
=================================================================================

拓扑结构:
Client:                                   CIP: 192.168.122.1

Director:           VIP:192.168.122.100 
      DIP:     director1 192.168.122.2   director2 192.168.122.3                                     
           
Real Server: RIP: 192.168.122.10    192.168.122.20 192.168.122.30
       VIP: 192.168.122.100  192.168.122.100 192.168.122.100
      
DNS Server:
www.uplook.com  ===> 192.168.122.100
注:主/备Directory VIP由高可用软件添加


一、实施步骤
1. 准备工作(集群中所有主机)
IP, hostname, hosts, iptables, SELinux, ssh trust, ntp 
[root@uplook ~]# cat /etc/hosts
127.0.0.1                localhost
192.168.122.2      director1.uplook.com director1
192.168.122.3      director2.uplook.com director1
192.168.122.10     node1.uplook.com node1
192.168.122.20     node2.uplook.com node2
192.168.122.30     node3.uplook.com node3

2. RS配置
配置好网站服务器,测试所有RS                //为了测试效果,提供不同的页面
[root@uplook ~]# ip addr add dev lo 192.168.122.100/32    //在lo接口上绑定VIP

方法一:不对VIP的ARP请求响应
[root@uplook ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore //non-arp
[root@uplook ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 

方法二:不对VIP的ARP请求响应
[root@uplook ~]# arptables -A IN -d 192.168.122.100 -j DROP                
[root@uplook ~]# arptables -A OUT -s 192.168.122.100 -j mangle --mangle-ip-s <real_ip> 
[root@uplook ~]# service arptables_jf save                           
[root@uplook ~]# chkconfig arptables_jf on                       


3. 主/备调度器安装软件
[root@master ~]# yum -y install ipvsadm keepalived
[root@backup ~]# yum -y install ipvsadm keepalived

=================================================================================
源码安装方法
ipvsadm
[root@uplook ~]# yum -y install ipvsadm kernel-headers kernel-devel openssl-devel popt-devel

KeepAlived
[root@uplook keepalived-1.2.1]#  ./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-358.el6.x86_64/
Keepalived configuration
---------------------------------------------
Keepalived version    : 1.2.1
Compiler                  : gcc
Compiler flags          : -g -O2 -DETHERTYPE_IPV6=0x86dd
Extra Lib                 : -lpopt -lssl -lcrypto
Use IPVS Framework  : Yes
IPVS sync daemon support : Yes
Use VRRP Framework        : Yes
Use Debug flags           : No
[root@uplook keepalived-1.2.1]# make
[root@uplook keepalived-1.2.1]# make install
=================================================================================


4. 主/备调度器Keepalived配置
Master
获得Real Server测试页面的MD5SUM值 <用于对Real Server健康检查>
[root@uplook ~]# genhash -s 192.168.122.10 -p 80 -u /test.html             //RS网站的主目录
MD5SUM = c5f42eddf777ef2d2b0f7263c094c20e

[root@uplook ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id director1   //辅助改为director2
}

vrrp_instance VI_1 {
    state MASTER    //辅助改为BACKUP
    interface eth0    //心跳接口,尽量单独连接心跳
   virtual_router_id 80  //MASTER,BACKUP一致
    priority 100     //辅助改为50
    advert_int 1              设置同步时间间隔
    authentication {      设置验证类型和密码
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {       设置lvs vip
        192.168.122.100
    }
}

virtual_server 192.168.122.100 80 {
    delay_loop 6 健康检查时间间隔
    lb_algo rr     负载均衡调度算法
    lb_kind DR   负载均衡转发规则
    nat_mask 255.255.255.0
    persistence_timeout 50 设置会话保持时间
    protocol TCP
 
    real_server 192.168.122.10 80 {                                                            
        weight 1                                                                                           
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }

    real_server 192.168.122.20 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
    
    real_server 192.168.122.30 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
     }
}

BACKUP


5. 启动KeepAlived(主备均启动)
[root@uplook ~]# chkconfig keepalived on
[root@uplook ~]# service keepalived start
[root@uplook ~]# tail -f /var/log/messages

[root@uplook ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.122.100:80 wrr
  -> 192.168.122.10:80               Route   1      0          0        
  -> 192.168.122.20:80               Route   3      0          0  
  -> 192.168.122.30:80               Route   3      0          0

[root@uplook ~]# ipvsadm -Ln -c
IPVS connection entries
pro expire state       source             virtual            destination
TCP 01:57  FIN_WAIT    192.168.1.254:58698 192.168.122.100:80    192.168.122.10:80
TCP 01:57  FIN_WAIT    192.168.1.254:58699 192.168.122.100:80    192.168.122.20:80
TCP 01:57  FIN_WAIT    192.168.1.254:58695 192.168.122.100:80    192.168.122.20:80
TCP 01:56  FIN_WAIT    192.168.1.254:58691 192.168.122.100:80    192.168.122.20:80
TCP 01:58  FIN_WAIT    192.168.1.254:58700 192.168.122.100:80    192.168.122.20:80
TCP 01:58  FIN_WAIT    192.168.1.254:58702 192.168.122.100:80    192.168.122.10:80
TCP 01:58  FIN_WAIT    192.168.1.254:58703 192.168.122.100:80    192.168.122.20:80
TCP 01:57  FIN_WAIT    192.168.1.254:58696 192.168.122.100:80    192.168.122.20:80
TCP 01:57  FIN_WAIT    192.168.1.254:58693 192.168.122.100:80    192.168.122.20:80


二、测试
所有分发器和Real Server都正常

主分发器故障及恢复

Real Server故障及恢复


三、Keepalived不抢占
nopreempt  仅针对BACKUP







这篇关于LB/LVS之KeepAlived的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/807773

相关文章

LVS学习入门

1.LVS DR模式负载均衡配置详解(配置篇一) http://www.07net01.com/storage_networking/LVS_DRmoshifuzaijunhengpeizhixiangjie_peizhipianyi__56840_1358680093.html 2.LVS负载均衡DR模式部署 http://www.cnblogs.com/xdpxyxy/

# 高可用的并发解决方案nginx+keepalived(一)

高可用的并发解决方案nginx+keepalived(一) 段子手 一、课程计划介绍 1、课程标题 为并发量高的优质网站量身定制高可用的并发解决方案 nginx+keepalived。 2、引导语 在这个互联网飞速发展的时代,人们已经离不开网络,其中网购最为常见。在家网购,上班路上网购,吃饭也购物,下班还网购,2017年双十一天猫支付峰值达到了25.6万笔/秒。热点网站中频繁出现的大量

Clickhouse LB实践

目前Clickhouse在线上使用,不管是多分片还是多副本都是以集群方式部署,那么对外暴露多台Clickhouse服务,通常会通过LB方式使每台服务器能够均匀的接受到客户端的请求,另外一点就是在其中一台服务发生故障,仍然能通过故障转移方式正常对外提供服务。接下来会介绍关于Clickhouse通常使用的两种LB方案。 BalancedClickhouseDataSource BalancedCl

lvs DR模式调试

DS配置: # cat /etc/keepalived_docker/keepalived.conf ! Configuration File for keepalivedglobal_defs {router_id LVS_70 # 设置lvs的id,在一个网络内应该是唯一的}vrrp_instance VI_70 {state MASTER #

LVS 负载均衡集群指南

1. 引言 LVS (Linux Virtual Server) 虚拟服务器,是 Linux 内核中实现的负载均衡技术,以其高性能、高可靠性和高可用性而闻名。LVS 工作在 TCP/IP 协议栈的第四层 (传输层),通过将流量分配到多个后端服务器,提高系统性能、可用性和可靠性。LVS 被广泛应用于各种场景,例如网站、数据库、游戏服务器等,是构建高可用、高性能 Web 服务的利器。 2. LVS

Keepalived+LVS+Nginx负载均衡之高可用

一、Keepalived介绍    Keepalived是分布式部署系统解决系统高可用的软件,结合LVS(Linux Virtual Server)使用,其功能类似于heartbeat,解决单机宕机的问题。       二、Keepalived技术原理    keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protoco

Nginx: 高可用和与虚拟路由冗余协议VRRP原理以及KeepAlived软件架构

Nginx 服务的高可用 1 )服务可用 假定是这样一个最传统的一个CS模式的一个客户服务器模式 这里有用户和一台服务器服务器可能是mysql, 也可能是webserver, 或其他服务器 想实现服务可用的一个三要素 1.1 ) server 需要公网的ip地址以及申请一个域名1.2 ) 需要服务软件和相关端口1.3 ) 存在对应的数据,如: webserver需要css, ht

Linux服务篇--高可用集群Keepalived

本章概要 高可用集群KeepalivedKeepalived配置Keepalived支持IPVS 1、高可用集群 集群Cluster 集群类型:   LB集群:负载均衡集群     四层 lvs,nginx(stream),haproxy(mode tcp)     七层 nginx,haproxy(mode http),varnish(diectors modules)   HA集群:高

rabbitmq基于haproxy和keepalived构建高可用集群

1.rabbitmq安装参照之前博客 2.haproxy的安装,haproxy的安装主要是看懂配置文件,以下为使用docker-compose方式安装的相关配置文件 #新建haproxy文件加,mkdir /data/haproxy#新建docker-compose.yml文件和haproxy.cfg文件 docker-compose.yml version: "3.9"servic

【Mysql】通过Keepalived搭建mysql双主高可用集群

一、环境信息 主机名ip操作系统mysql版本VIP(虚拟ip)hadoop01192.168.10.200centos7_x865.7192.168.10.253hadoop03192.168.10.202centos7_x865.7 二、mysql集群搭建 两台节点,如果未部署mysql服务,部署文档请看【Mysql】mysql三种安装方式(二进制、yum、docker)-CSDN博客