lvs和keeplived的工作原理详解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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是完全不同的两个东西。
本文出自 “凌宇的技术博客” 博客,请务必保留此出处http://lampit.blog.51cto.com/12958178/1941136
以上是关于lvs和keeplived的工作原理详解的主要内容,如果未能解决你的问题,请参考以下文章