① 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。 ② 集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。 ③ 集群组成后,可以利用多个计算机和组合进行海量请求处理(负载均衡),从而获得很高的处理效率,也可以用多个计算机做备份(高可用),使得任何一个机器坏了整个系统还是能正常运行。集群在目前互联网公司是必备的技术,极大提高互联网业务的可用性和可缩放性。
① 负载均衡(Load Balance):负载均衡集群为企业需求提供了可解决容量问题的有效方案。负载均衡集群使负载可以在计算机集群中尽可能平均地分摊处理。 ② 负载通常包括应用程序处理负载和网络流量负载。这样的系统非常适合向使用同一组应用程序的大量用户提供服务。每个节点都可以承担一定的处理负载,并且可以实现处理负载在节点之间的动态分配,以实现负载均衡。对于网络流量负载,当网络服务程序接受了高入网流量,以致无法迅速处理,这时,网络流量就会发送给在其它节点上运行的网络服务程序。也可根据服务器的承载能力,进行服务请求的分发,从而使用户的请求得到更快速的处理。
负载均衡技术类型:基于 4 层负载均衡技术和基于 7 层负载均衡技术
OSI 模型及 TCP/IP 模型,两个模型虽然有一点点区别,但主要的目的是一样的,模型图描述了通信是怎么进行的。它解决了实现有效通信所需要的所有过程,并将这些过程划分为逻辑上的层。层可以简单地理解成数据通信需要的步骤。
根据负载均衡所作用在 OSI 模型的位置不同,负载均衡可以大概分为以下几类: 二层负载均衡(mac) 根据OSI模型分的二层负载,一般是用虚拟mac地址方式,外部对虚拟MAC地址请求,负载均衡接收后分配后端实际的MAC地址响应。
三层负载均衡(ip) 一般采用虚拟IP地址方式,外部对虚拟的ip地址请求,负载均衡接收后分配后端实际的IP地址响应。
四层负载均衡(tcp) 在三层负载均衡的基础上,用ip+port接收请求,再转发到对应的机器。
七层负载均衡(http) 根据虚拟的url或IP,主机名接收请求,再转向相应的处理服务器。 在实际应用中,比较常见的就是四层负载及七层负载。这里也重点说下这两种负载。
所谓四层负载均衡,也就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。 layer4
在三层负载均衡的基础上,通过发布三层的IP地址(VIP),然后加四层的端口号,来决定哪些流量需要做负载均衡,对需要处理的流量进行NAT处理,转发至后台服务器,并记录下这个TCP或者UDP的流量是由哪台服务器处理的,后续这个连接的所有流量都同样转发到同一台服务器处理。以常见的TCP为例,负载均衡设备在接收到第一个来自客户端的SYN 请求时,即通过上述方式选择一个最佳的服务器,并对报文中目标IP地址进行修改(改为后端服务器IP),直接转发给该服务器。TCP的连接建立,即三次握手是客户端和服务器直接建立的,负载均衡设备只是起到一个类似路由器的转发动作。在某些部署情况下,为保证服务器回包可以正确返回给负载均衡设备,在转发报文的同时可能还会对报文原来的源地址进行修改。对应的负载均衡器称为四层交换机(L4 switch),主要分析IP层及TCP/UDP层,实现四层负载均衡。此种负载均衡器不理解应用协议(如HTTP/FTP/MySQL等等)要处理的流量进行NAT处理,转发至后台服务器,并记录下这个TCP或者UDP的流量是由哪台服务器处理的,后续这个连接的所有流量都同样转发到同一台服务器处理。实现四层负载均衡的软件有: F5:硬件负载均衡器,功能很好,但是成本很高。 lvs:重量级的四层负载软件 nginx:轻量级的四层负载软件,带缓存功能,正则表达式较灵活 haproxy:模拟四层转发,较灵活所谓七层负载均衡,也称为“内容交换”,也就是主要通过报文中的真正有意义的应用层内容,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。 layer7
在四层负载均衡的基础上(没有四层是绝对不可能有七层的),再考虑应用层的特征,比如同一个Web服务器的负载均衡,除了根据VIP加80端口辨别是否需要处理的流量,还可根据七层的URL、浏览器类别、语言来决定是否要进行负载均衡。举个例子,如果你的Web服务器分成两组,一组是中文语言的,一组是英文语言的,那么七层负载均衡就可以当用户来访问你的域名时,自动辨别用户语言,然后选择对应的语言服务器组进行负载均衡处理。以常见的TCP为例,负载均衡设备如果要根据真正的应用层内容再选择服务器,只能先代理最终的服务器和客户端建立连接(三次握手)后,才可能接受到客户端发送的真正应用层内容的报文,然后再根据该报文中的特定字段,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。负载均衡设备在这种情况下,更类似于一个代理服务器。负载均衡和前端的客户端以及后端的服务器会分别建立TCP连接。所以从这个技术原理上来看,七层负载均衡明显的对负载均衡设备的要求更高,处理七层的能力也必然会低于四层模式的部署方式。对应的负载均衡器称为七层交换机(L7 switch),除了支持四层负载均衡以外,还有分析应用层的信息,如HTTP协议URI或Cookie信息,实现七层负载均衡。此种负载均衡器能理解应用协议。实现七层负载均衡的软件有: haproxy:天生负载均衡技能,全面支持七层代理,会话保持,标记,路径转移; nginx:只在http协议和mail协议上功能比较好,性能与haproxy差不多;1.7层负载模型
2.实验环境
准备4台虚拟机:HTTP的服务端
server7:调度器:192.168.1.170 server9,server10:httpd端:192.168.1.190与192.168.1.200 server11:作为测试端3.安装软件
4.配置服务
测试:
负载成功
5.关掉httpd 3
测试
开启3
6.添加图形测试 配置设置:
rpm:查看信息
添加链接,检测信息
关闭server9上面的httpd的服务
可以清楚的看见的server9的服务显示为红色,服务出现异常。
7.环境的注意事项
server7关闭HTTP的服务,使得端口交付给haproxy.service
pacemaker服务关闭
查看日志的配置文件:
(1).编辑syslog服务:
syslog文件添加-r参数
(2).打开配置文件,添加日志目录地址
打开端口接受设置:
服务重启;rsyslog,产生日志文件
查看日志:message与服务日志都会有记录
改变日志服务的记录点
重启服务
message的日志消失,服务日志产生
刷新服务,服务日志增加,message内部不会在出项。
注意:1.服务的端口打开,不利于服务的安全
打开配置文件
添加认证功能,与5秒时间刷新
改变算法的方式:
source算法:根据请求的原IP来进行调度,负载均衡失去作用。
服务流程:client > cdn > rs >cdn(ca che) >client
4.设置权重算法
重启,查看服务
测试:
server2的服务的次数是server1的二倍
9.1:更改server4的HTTP的的服务端口8080
重启
改变server8配置的端口设置
重启
测试
添加backup的设置,当所有的server的关闭后,会启动功能
在server8的index文件中写入识别信息/
开启测试实验:
关闭server3
测试
关闭server4
测试调度器未重启
启动server8的调度器的功能 打开server的服务功能,backup的功能消失。
**解决问题:**backup的设置的作用:当服务端出现问题时,可以给用户一定的提示信息,使得用户不会在一直的刷新服务,致使服务的拥挤。
测试:
第二行:使得192.168.1.161(windows的ip地址)不可以正常访问(浏览器)
显示403的提示,不利于服务的发布,添加错误信息的提示
使用网页查看服务
宿主机(非192.168.1.161的IP下的浏览器):自动跳转到server8的服务端
指定某些用户不可以查看一些页面。
重定向:
浏览器直接转载www.baidu.com。