欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

keepalived双机备热+LVS负载均衡——超详细!!!

程序员文章站 2024-01-31 23:35:10
...

LVS的工作原理

(本文很长,预计5分钟)
LVS 的工作模式分为4中分别是 NAT,DR,TUN,FULL-NAT。其中做个比较,由于工作原理的关系的,NAT的配置最为简单,但是NAT对调度器的压力太大了,导致其效率最低,DR和TUN的工作原理差不多,但是DR中,所有主机必须处于同一个物理环境中,而在TUN中,所有主机可以分布在不同的位置,服务器一个在纽约,一个在深圳。最多应用的是FULL-NAT。
keepalived双机备热+LVS负载均衡——超详细!!!
lvs实现原理

(1)首先,客户端向调度器(Director Server)发起一个请求,调度器将这个请求发送至内核

(2)PREROUTING链首先会接收到用户请求,判断目标IP确定是本机IP,将数据包发往INPUT链。

(3)当请求达到INPUT链上,调度器判断报文中的目标端口来确定这个访问是不是要访问集群服务(因为还有可能只是ssh想单纯的远程登录主机这个主机),如果是访问的集群服务,那么就会强制修改这个包的目标IP

(4)POSTROUTING链接收数据包后发现目标IP地址刚好是自己的后端服务器,那么此时通过选路,将数据包最终发送给后端的服务器

Keepalived 的热备工作原理

Keepalived采用VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)热备份协议,以 软件的方式实现Linux服务器的多机热备功能。VRRP是针对路由器的一种备份解决方案——由多台 路由器组成一个热备组,通过共用的虚拟Р地址对外提供服务,每个热备组内同一时刻只有一台主 路由器提供服务,其他路由器处于冗余状态,若当前在线的路由器失效,则其他路由器会自动接替 (优先级决定接替顺序)虚拟IP地址,以继续提供服务。 热备组内的每台路由器都可能成为主路由器,虚拟路由器的P地址(VIP)可以在热备组内的路由器之间进行转移,所以也称为漂移Р地址。使用Keepalived 时,漂移地址的实现不需要手动建立虚接口配置文件(如ens33:0),而是由Keepalived根据配置文件自动管理

keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。vrrp模块是来实现VRRP协议的。

接下来我们介绍一下实验环境
keepalived双机备热+LVS负载均衡——超详细!!!
实验环境:安装两台web服务器,NFS存储,keepalived主调度器,keepalived备用调度器
,防火墙,一台用户机

一、安装WEB服务器
(1),安装依赖(挂载Centos07映射文件)
Centos01和Centos02web服务器安装httpd服务
[aaa@qq.com ~]# yum -y install httpd
keepalived双机备热+LVS负载均衡——超详细!!!

(2),启动httpd服务和设置开机自启
[aaa@qq.com ~]# systemctl start httpd
[aaa@qq.com ~]# systemctl enable httpd
(3)设置欢迎页面
Centos01
[aaa@qq.com ~]# echo “www.benet.com” > /var/www/html/index.html
Centos02
[aaa@qq.com~]# echo “www.accp.com” > /var/www/index.html

一、安装keepalived双机备热
(1),安装keepalived双机备热相关依赖(挂载Centos07映射文件)
[aaa@qq.com ~]# yum -y install ipvsadm keepalived
keepalived双机备热+LVS负载均衡——超详细!!!

(2),编辑Keepalived主配置文件
[aaa@qq.com ~]# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived
	
	global_defs {
	   router_id LVS_HA_MASTER                   //主调度器名字
	}
	
	vrrp_instance VI_1 {
	    state MASTER                             //主调度器
	    interface ens32                          //监听网卡
	    virtual_router_id 51                     //虚拟路由器ID
	
	    priority 100                             //主调度器优先级
	    advert_int 1                             //状态检擦间隔时间1秒
	    authentication {                                    
	        auth_type PASS                       //密码验证
	        auth_pass 1111                       //指定密码
	    }
	    virtual_ipaddress {
	        192.168.100.254                      //指定漂移IP地址
	    }
	}
	
	virtual_server 192.168.100.254 80 {          //配置服务器池VIP地址和端口
	    delay_loop 6                             //健康状态检擦间隔时间6秒
	    lb_algo rr                               //LVS使用算*回
	    lb_kind DR
	    persistence_timeout 50                   //访问LVS链接保持时间50秒
	    protocol TCP                             //LVS调度器协议使用TCP
	
	    real_server 192.168.100.10 80 {          //服务池中第一台服务器
	        weight 1                             //权重
	        TCP_CHECK {                          //检查TCP协议
	            connect_port 80                  //检擦端口
	            connect_timeout 3                //TCP链接超时时间
	            nb_get_retry 3                   //TCP链接失败后重新连接3次
	            delay_before_retry 3             //每一次重连间隔3秒
	                }
	        }
	    }

(3),启动keepalived服务
keepalived双机备热+LVS负载均衡——超详细!!!

可以看到多了一个IP地址
keepalived双机备热+LVS负载均衡——超详细!!!

(4),配置备份调度器
偷个懒=_=,复制centos03虚拟机上的主配置文件到本机
keepalived双机备热+LVS负载均衡——超详细!!!

(5)在配置文件中修改条件,配置为备份调度器

[aaa@qq.com ~]# vim /etc/keepalived/keepalived.conf
keepalived双机备热+LVS负载均衡——超详细!!!

三、开启防火墙功能
[aaa@qq.com ~]# systemctl start firewalld
[aaa@qq.com ~]# systemctl enable firewalld
划分区域
keepalived双机备热+LVS负载均衡——超详细!!!

修改防火墙规则
keepalived双机备热+LVS负载均衡——超详细!!!
keepalived双机备热+LVS负载均衡——超详细!!!
keepalived双机备热+LVS负载均衡——超详细!!!

3,修改网卡中的IP地址和网关
(1),配置web服务器网关
keepalived双机备热+LVS负载均衡——超详细!!!

(2),修改本地循环地址
[aaa@qq.com ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0
keepalived双机备热+LVS负载均衡——超详细!!!

(3),route -n 显示一下网关和路由
keepalived双机备热+LVS负载均衡——超详细!!!

web服务器Centos02 ,keepalived主从调度器Centos03、Centos04 ,NFS存储Centos05的
操作同上! ! !
(4)修改web服务器的内核参数(Centos01,Centos02)
keepalived双机备热+LVS负载均衡——超详细!!!

(4)修改调度器的内核参数(Centos05,Centos04)
keepalived双机备热+LVS负载均衡——超详细!!!

访问web服务器**(测试内网访问内网)**
我使用的是Centos07映射文件**(图形化界面)**
还可以使用Windows 10 或者Windows 7 都可以
(注意切换网络模式)
改为VMnet1
keepalived双机备热+LVS负载均衡——超详细!!!

第一次访问web服务器
keepalived双机备热+LVS负载均衡——超详细!!!

先清空缓存再修改网卡IP,再次访问
keepalived双机备热+LVS负载均衡——超详细!!!

二、安装dns域名解析
(1),安装相关依赖

keepalived双机备热+LVS负载均衡——超详细!!!
keepalived双机备热+LVS负载均衡——超详细!!!

(2),备份主配置文件
[aaa@qq.com ~]# cp /etc/named.conf /etc/named.conf.bak
(3),编辑主配置文件
[aaa@qq.com ~]# vim /etc/named.conf
keepalived双机备热+LVS负载均衡——超详细!!!

(4)编辑正向解析文件
keepalived双机备热+LVS负载均衡——超详细!!!

启动域名解析服务
keepalived双机备热+LVS负载均衡——超详细!!!

测试外网访问内网

解析web服务器域名访问
修改网络链接
keepalived双机备热+LVS负载均衡——超详细!!!
keepalived双机备热+LVS负载均衡——超详细!!!

外网访问内网服务器
keepalived双机备热+LVS负载均衡——超详细!!!
keepalived双机备热+LVS负载均衡——超详细!!!

创建NFS存储库
设置欢迎页面
[aaa@qq.com ~]# mkdir /web
[aaa@qq.com ~]# echo “zhanghao dao ci yi you!!” > /var/www/
设置访问权限
[aaa@qq.com ~]# vim /etc/exports
keepalived双机备热+LVS负载均衡——超详细!!!

重启nfs,rpcbind服务
keepalived双机备热+LVS负载均衡——超详细!!!

在web服务器上挂载到
keepalived双机备热+LVS负载均衡——超详细!!!

keepalived双机备热+LVS负载均衡——超详细!!!

测试成功,访问NFS存储库
keepalived双机备热+LVS负载均衡——超详细!!!
游戏结束!!

今天的你又学废了吗?