千家信息网

lvs和keeplived的工作原理详解

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,一、lvs的工作原理使用集群的技术和liunx的操作系统实现一个高性能、高可用的服务器。可伸缩性、可靠性、很好的管理性。特点:可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从
千家信息网最后更新 2024年09月22日lvs和keeplived的工作原理详解

一、lvs的工作原理


使用集群的技术和liunx的操作系统实现一个高性能、高可用的服务器。可伸缩性、可靠性、很好的管理性。


特点:可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份)。我们先分析实现虚拟网络服务的主要技术,指出IP负载均衡技术是在负载调度器的实现技术中效率最高的。在已有的IP负载均衡技术中,主要有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,我们称之为VS/NAT技术(Virtual Server via Network Address Translation)。在分析VS/NAT的缺点和网络服务的非对称性的基础上,我们提出了通过IP隧道实现虚拟服务器的方法VS/TUN (Virtual Server via IP Tunneling),和通过直接路由实现虚拟服务器的方法VS/DR(Virtual Server via Direct Routing),它们可以极大地提高系统的伸缩性。VS/NAT、VS/TUN和VS/DR技术是LVS集群中实现的三种IP负载均衡技术


技术:LVS集群采用ip负载均衡技术减轻服务器的压力,将请求均衡转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的,高可用的虚拟服务器,整个服务器集群的结构对客户端是透明的,而且无需修改客户端和服务器的程序,为此在设计的时候考虑到了系统的透明性,可伸缩性,高可用性和易管理性。


LVS:主要采用三种结构主要部分是

服务器池,是一组正执行客户端请求的服务器,执行的服务有WEB,MAL,FTP和DNS等。

负载调度器:它是整个集群对外面前端机,负责将客户的请求发送到一组服务器上执行,而客户确认为服务器是一个来自一个ip上的(虚拟机ip地址。

共享存储,它为服务器提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。

优点

开源,免费

具有软件负载均衡的一些优点。

在网上能找到一些相关技术资源。

缺点

没有可靠的支持服务,没有人对其结果负责。

功能比较简单,支持复杂的应用的负载均衡能力较差,算法较少等。

开启隧道方式需要编译内核

配置复杂;

主要应用于LINUX系统,目前没有专用于windows系统版本的,不过可以通过配置使windows称为lvs集群中的real server (win2003、win2008)。



1. DS:Director Server。指的是前端负载均衡器节点。

2. RS:Real Server。后端真实的工作服务器。

3. VIP:向外部直接面向用户请求,作为用户请求的目标的IP地址。

4. DIP:Director Server IP,主要用于和内部主机通讯的IP地址。

5. RIP:Real Server IP,后端服务器的IP地址。

6. CIP:Client IP,访问客户端的IP地址。


keeplived原理

keeplvied也是模块化设计,不同模块的不同功能


core:是keeplived的核心,复杂主进程的启动和维护,全局配置的加载解析等


check:负责是healthchecker(健康检查),包括了各种健康检查的方式,以及对应的配置的解析包括LVS的配置解析


vrrp:VRRPD子进程,VRRPD子进程是来是来实现VRRP协议的

libipfwc:iptables(ipchains)库,配置LVS会用到

libipvs*:配置LVS会用到



keepalived启动会有三个进程

父进程:内存管理,子进程管理

子进程:VRRP子进程

子进程:healthchecker子进程

如图可知,两个子进程都被watchDog看管,两个子进程各自复杂自己的事,healthcheck子进程复杂检查自己服务器的健康程度,比如HTTP,lvs等如果healthchecker子进程检查到MASTER服务不可用了,就会通知本机上的vrrp的子进程,让他删除通告并且去掉虚拟机ip,转为BACKUP状态


keeplived配置详解

keeplived有三类配置区域,是一个配置文件里三种不同的区域。

全局配置

VRRPD配置

LVS配置

全局配置分为两个子进程:全局定义(global definition)

静态路由配置(static ipaddres/routes)


总结:lvs和keeplived就是一个心跳检测,怎么说呢比如我是keeplived手一直摸着lvs的心脏来监听lvs的系统状况等,如果lvs当机keeplived作为一个热备份随时顶替lvs来进行负载均衡,不过lvs和keeplived是完全不同的两个东西。

0