LAMP网站架构---(四)LVS+Keepalived高可用负载均衡

news/2024/5/17 5:23:55/文章来源:https://blog.csdn.net/s191946202/article/details/121640282

基本信息

简介:

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统;本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一

使用集群技术和Linux操作系统实现一个高性能、高可用的服务器;其具有:很好的可伸缩性(Scalability)、很好的可靠性(Reliability)、很好的可管理性(Manageability)

特点:

可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份);我们先分析实现虚拟网络服务的主要技术,指出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集群采用三层结构,其主要组成部分为:
1、负载调度器(load balancer):它是整个集群对外面的前端机,是服务器集群系统的唯一入口点(Single Entry Point),它可以采用IP负载均衡技术、基于内容请求分发技术或者两者相结合;负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址上的,我们可称之为虚拟IP地址(VIP)
2、服务器池(server pool):是一组真正执行客户请求的服务器,执行的服务有WEB、MAIL、FTP和DNS等
3、共享存储(shared storage):它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务

LVS的主要结构:

1、工作在内核空间的IPVS模块,是LVS集群系统的核心软件;LVS的能力实际上都是由IVPS模块实现
2、工作在用户空间的ipvsadm管理工具;其作用是向用户提供一个命令接口,用于将配置的虚拟服务、真实服务等传给IPVS模块

IPVS主要作用是:安装在Director Server上,同时在Director Server上虚拟出一个IP地址,用户必须通过这个虚拟的IP地址访问服务,这个虚拟IP一般称为LVS的VIP,即Virtual IP;访问的请求首先经过VIP到达负载调度器,然后由负载调度器从Real Server列表中选取一个服务节点响应用户的请求

LVS官网:The Linux Virtual Server Project - Linux Server Cluster for Load Balancinghttp://www.linuxvirtualserver.org/

LVS管理工具ipvsadm

IPVS具体实现是由ipvsadm这个程序来完成,因此判断一个系统是否具备ipvs功能,只需要察看ipvsadm 程序是否被安装;察看ipvsadm程序最简单的办法就是在任意路径执行命令ipvsadm

ipvsadm的常用参数

安装完ipvsadm后首次启动可能会出现如下报错

此时手动创建此文件即可正常启动ipvsadm

使用ipvsadm配置VS/DR模式环境:

boke1主机为负载调度器,IP=172.25.100.11

boke2主机为后端服务器,配置httpd服务,IP=172.25.100.12

boke3主机为后端服务器,配置httpd服务,IP=172.25.100.13

##配置一个简单的虚拟服务器集群

##显示已载入系统的模块;lsmod==list modules,即列出所有已载入系统的模块

##在负载调度器添加VIP

##在后端真实服务器主机也须添加VIP

##此时的访问效果:负载均衡

此种情况下,客户端访问VIP时可能会得到后端真实主机的MAC地址

##客户端访问时会获取到VIP的MAC地址,当清除ARP表中VIP的缓存重新访问VIP时,竟获取到了后端服务器boke3的MAC地址

ARP:地址解析协议(Address Resolution Protocol),其基本功能为透过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行

MAC地址:也称为局域网地址、以太网地址或物理地址,是一个用来确认网络设备位置的地址;网络中每台设备都有一个唯一的网络标识,即网卡地址或MAC地址,由网络设备制造商生产时写在硬件内部 

IP地址和MAC地址的区别: 

1、地址性质不同

MAC地址是物理地址,IP地址是逻辑地址;MAC地址是不可改变的,IP地址可以更改

2、可变性

MAC地址具有唯一性,每个硬件出厂时的MAC地址是固定的;IP地址不具备唯一性,因此,很多应用软件是围绕MAC地址开发的

3、工作层次不同

二层基于MAC地址转发数据帧,三层基于IP地址转发报文;二层交换机基于MAC地址表转发数据,路由器基于路由表(IP地址)转发数据

4、长度定义

MAC地址是Ethernet网卡上带的地址,长度为48位;IP地址目前主流是32位长;IP地址和MAC地址通过ARP协议联系到一起

5、分配依据不同

IP地址的分配是基于网络拓扑,MAC地址的分配是基于制造商

针对以上情况,可以在后端真实服务器配置arptables的相关策略进行优化

arptables:用于过滤arp包;基本思路和iptables一样,不过,arptables处理arp协议有关的包,这些包在iptables中并不会处理;arptables可用于灵活的arp管理,如果善于运用的话,不失为一个优秀的arp防火墙,既能防止别的机器对自己进行arp欺骗,又能防止本机病毒或错误程序向其他机器发起arp攻击

更多详细信息可参见以下arptables_百度百科arptables,linux命令,用于过滤arp包。基本思路和iptables一样,不过,arptables处理arp协议有关的包,这些包在iptables中并不会处理·arptables可用于灵活的arp管理,如果善于运用的话,不失为一个优秀的arp防火墙.既能防止别的机器对自己进行arp欺骗,又能防止本机病毒或错误程序向其他机器发起arp攻击。https://baike.baidu.com/item/arptables/6516118?fr=aladdin在所有后端服务器配置arptables策略并保存至文件

##策略意义:进来的ARP,如果目的地IP是VIP的,丢弃;发出去的ARP包,如果源IP是VIP的,更改成realserver的IP

注意:arptables只是过虑了ARP广播包,如果手动绑定IP和MAC,或者存在正确的MAC缓存,也是可以和主机通信的

##在客户端清除arp缓存后重新访问VIP,获取到调度器的MAC地址

LVS管理软件Keepalived

Keepalived是一个类似于layer3,4&5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换;主要用作后端RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现

Keepalived会检测LVS集群中各个服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作;当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器

Keepalived软件还可以通过VRRP(Virtual Router Redundancy Protocol)即虚拟路由器冗余协议实现高可用功能;VRRP出现的目的就是为了解决静态路由单点故障问题,它能够保证当个别节点宕机时,整个网络可以不间断地运行;因此,Keepalived一方面具有配置管理LVS的功能,同时还具有对LVS下面节点进行健康检查的功能,另一方面也可实现系统网络服务的高可用功能

更多信息可参见以下

Keepalived_百度百科keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换。Keepalived是自动完成,不需人工干涉。https://baike.baidu.com/item/Keepalived/10346758?fr=aladdinKeepalived for LinuxKeepalived provides robust High-Availability and Load Balancing features for Linux critical infrastructureshttps://www.keepalived.org/环境:

boke1主机为主负载调度器,配置keepalived服务,IP=172.25.100.11

boke2主机为后端服务器,配置httpd服务,IP=172.25.100.12

boke3主机为后端服务器,配置httpd服务,IP=172.25.100.13

boke4主机为备份负载调度器,配置keepalived服务,IP=172.25.100.14

##在手动搭建LVS模式中,某台后端服务器宕机后,客户端会出现访问失败的情况

##在使用keepalived搭建LVS前删除VIP、清空LVS集群以便后续查看效果

##keepalived软件的配置文件的LVS配置内容

##启动keepalived服务后,调度器主机自动获取keepalived配置文件中的VIP和LVS集群

##此时关闭后端服务器boke2的apache服务后,客户端均能成功访问;重启boke2主机的apache服务后,客户端访问又恢复为负载均衡效果

以上配置的单点keepalived主机,在此主机故障后,客户端将再也无法访问,直至此主机故障被修复;此时配置boke4为其热备主机,实现其高可用性

##热备主机的keepalived配置文件与keepalived服务master主机配置文件的区别,其他配置相同

virtual_router_id 51

##虚拟路由编号,主备要一致;同一网段中的此项值不能重复,取值范围为0~255

priority 50

##定义优先级,数字越大优先级越高;一般主端大于备端;也用来选举master,要成为master,这个选项的值最好大于其他主机50个点,取值范围为1~255,在此范围之外的值默认为100

配置完成后,启动热备机的keepalived服务,down掉master端的keepalived服务,查看效果

##热备主机在检测到master端宕机后自动使自身配置文件中设定的VIP生效,以便服务可用

##客户端访问依然得到负载均衡的效果;且获取到的是热备主机boke4的MAC地址;当master端重启keepalived服务后,VIP会自动回退至master端

以上效果测试中,可以搭配mailx软件查看详细TCP_CHECK信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_903822.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LAMP网站架构---(五)HAProxy+Pacemaker高可用负载均衡

基本信息 HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理 HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理 HAProxy运行在当前的硬件上&…

javaweb项目 基于jsp+servlet的 个人博客网站

源代码和获取更多信息 >源代码MyBlog MyBlog a personal blog site based on Jsp/Servlet - 基于jsp/servlet的个人博客网站 introduction - 简介 java web博客项目,实现mvc模式,没有使用到框架,实现了首页预览,文章发布&a…

网络另类生意闷声挣钱 一人经营几十万个网站

对于自己的“另类生意”,许扬有充分的自信,“我就是把整个业务模式都公开,别人也很难复制,太难了”。 本报记者 徐胤 摄 创业篇 视频网站、交友网站、行业网站,正当数以万计的网络掘金者们在这些热门业务中争得头破血流…

网站测试步骤

网站测试需分以下五个阶段进行才能提交客户,所有测试均提供测试报告: a.功能测试  b.性能测试  c.可用性测试  d.兼容性测试  e.安全测试 功能测试: 1、链接测试 链接是Web应用系统的一个主要特征,它是在页面之间切换和指…

给自己的网站添加HTTPS / 优化 / 续约

写在前面 这里面我主要是自己独立的服务器添加HTTPS支持,关于对GitHub个人站点添加的以后再写。我的笔记和操作使用的是免费的域名和免费的HTTPS证书,但是操作对于所有的来说都是一样的。证书基于 TrustAsia, 别的都差不多的。VPS 上用的LNM…

使用IntelliJ IDEA开发SpringMVC网站(三)数据库配置

注:在阅读本文前,请先阅读: 使用IntelliJ IDEA开发SpringMVC网站(一)开发环境 使用IntelliJ IDEA开发SpringMVC网站(二)框架配置 访问GitHub下载最新源码:https://github.com/gauss…

大型网站应用之海量数据和高并发解决方案总结一二

一、网站应用背景 开发一个网站的应用程序,当用户规模比较小的时候,使用简单的:一台应用服务器一台数据库服务器一台文件服务器,这样的话完全可以解决一部分问题,也可以通过堆硬件的方式来提高网站应用的访问性能&…

Yupoo! 的网站技术架构

作者: Fenng | 可以转载, 转载时务必以超链接形式标明文章原始出处和作者信息及版权声明网址: http://www.dbanotes.net/arch/yupoo_arch.html 又有机会爆料国内 Web 2.0 网站的架构了。这次是 Yupoo! 。非正式的采访了一下 Yupoo!(又拍网) 的创建人之一的 阿华(沈志…

.NET 发布网站步骤

本文章分为三个部分: web网站发布、IIS6 安装方法、ASP.NET v4.0 安装方法 一、web网站发布 1.打开 Visual Studio 2013 编译环境 2.在其解决方案上右击弹出重新生成解决方案,以查看是否有错误 3.如果项目没有错误右击WebUI层发布

新概念绿色上网工具,向网站病毒say no

Dear All: 近來很多網站都含有病毒或木馬程式,而上網者多數都是用超級用戶或power user的權限上網,中招後惡意程序會更改windows系統,或設置一些木馬程序.用戶電腦的資料完全暴露,而且還要忍受廣告困擾,雖然裝有防毒軟件,但防毒軟件也不是萬能,特別是木馬程序,經常變化.所以用戶…

PHP——网站构成即LAMP基础知识

网站的构成: 客户端IE/FireFox/Safari等多种浏览器 超文本标记语言HTML 层叠样式表CSS 客户端脚本编程语言JavaScript/VBScript/Applet等中的一种 Web服务器Apache/ Nginx/TomCat/IIS等中的一种 服务器端编程语言PHP/JSP/ASP等中的一种 数据库管理系统MySQL…

网站架构的伸缩性设计

网站开发初期,我们习惯性把所有代码都写到一个项目中。 前台、后台、缓存、数据库、静态资源... 等等。 网站系统物理分离 慢慢的系统会原来越大,很显然需要面对大量用户的高并发访问和存储海量数据。 很多用户的请求,不可能在一台服务器上…

以电商网站为例,谈大型分布式架构设计与优化

本文大纲: 目录 一、使用电商案例的原因 二、电商网站需求 三、网站初级架构 四、系统容量预估 五、网站架构分析 六.网站架构优化 本文主题为电商网站架构案例,将介绍如何从电商网站的需求,到单机架构,逐步演变为常用的、…

使用cloudflare+wzfou为自己的网站配置CDN加速

本文同步于个人博客 : 蝴蝶飞不过沧海 | Blog 本文链接 泛播 Cloudflare 挖站否 Wzfou 为什么用到挖站否?单独泛播不就可以作cdn加速吗? 众所周知泛播(cloudflare)国外知名免费cdn服务商无需网站备案 但有个缺点就是单独使用泛播&…

企业网站建设需要做哪些前期准备工作?

随着互联网的发展,制作官方网站已经成了众多企业的需求。定制企业网站有助于提升企业形象,增加品牌曝光度,配合网络营销,可以给企业带来更多的业务。很多企业选择了外包给专业的开发公司来定制自己的网站,但并不是说所…

程序员应该熟知的网站TIOBE

TIOBE TIOBE 排行榜是根据互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube统计出排名数据,只是反映某个编程语言的热门程度,并不能说明一门编…

使用Chrome浏览器查看淘宝的IPhone版网站

用IPhone手机访问http://m.taobao.com ,淘宝的设计已经达到了和APP相媲美的地步。多次想查看其源码学习,单无奈用PC浏览器访问该网址,出现的是一个比较简化的wap2.0版本的。经过若干的夜晚的冥思苦想,终于想出了解决方案。 1.IPho…

Springboot+Vue开发旅游网站

项目简介 所需技术栈: 后端技术栈:springboot mybatis 前后端分离:axios、json 前端技术栈、技术架构:Vue、node.js 前置知识: 了解 Vue 组件之前的知识 对 springboot mybatis 较熟悉 开发流程: 需求…

spring boot酷炫小说网站 包括 PC网站端 和 移动端可做毕设

spring bootspring mvcspring整合开发微信小程序(含简单服务端) 项目描述: spring bootspring mvcspring酷炫小说网站,然后提供给微信小程序做显示 运行环境: jdk8IntelliJ IDEAmaven 项目技术: spring bootspring mvcspring 数据库文件:…

高可用Hadoop平台-实战(电商网站的用户行为分析)

今天要和大家分享的案例是一个基于电商网站的用户行为分析,这里分析的指标包含以下指标: 统计每日PV每日注册用户每日IP跳出用户 其他指标可以参考上述4个指标进行拓展,下面我们开始今天的分析之旅。 2.流程 首先,在开发之前我们…