【我的技术我做主】负载均衡群集Keeplived+LVS

【我的技术我做主】负载均衡群集Keeplived+LVS,第1张

【我的技术我做主】负载均衡群集Keeplived+LVS

简介:在互联网应用中,随着网站对硬件性能、响应速度、服务器稳定性、数据可靠性等要求越来越高。在大量访问的情况下,单台服务器已经不堪重负。除了使用昂贵的大型机和减载设备,企业还可以使用另一种解决方案。那就是搭建一个负载均衡集群——通过整合很多廉价的普通服务器,在同一个地址向外界提供同样的服务。

接下来,毛毛将解释企业中最常见的集群技术——LVS(Linux虚拟服务器)。

1。群集的类型

负载均衡集群:为了提高系统的响应能力,处理尽可能多的访问请求,减少延迟,为目标提供高并发、高负载的整体性能。方法是将客户端的请求分担到多个服务器节点,从而减轻整个系统的负载压力。比如DNS轮询,反向代理等等。

高可用性集群:最小化故障的中断时间,保证服务的连续运行。比如故障转移、双机热备、多机热备都是高可用的集群技术。

高性能高计算集群:用于提高CPU运算速度,扩展硬件资源和分析能力。比如:云计算。网格计算等。

2。负载平衡的层次结构

第一层:负载调度器:集群的唯一入口,对外使用VIP(虚拟IP),也成为集群IP。通常有两台服务器来防止单点故障。

第二层:服务器池:提供真正的应用服务(HTTP,FTP等。)为集群。仅处理由调度程序分发的客户请求。例如,当一个节点出现故障时,调度程序会将其隔离。请等待错误消除后,再重新加入服务器池。

第三层:共享存储:为服务器池中的所有节点提供稳定一致的文件访问服务。确保集群内容的一致性。也就是说所有服务器的文件都是一样的。

3。负载均衡的调度算法。

我们提前知道。第一层负载调度器将客户机的请求分发到第三层服务器池中的节点服务器。但是它是根据什么分配的呢?下面我来解释一下LVS常用的负载调度算法。

L(rr):负载调度器收到的请求按顺序分配给节点服务器。平等对待每个节点服务器。

l加权轮询(wrr):根据真实服务器的处理能力分配接收到的访问请求。调度器会自动查询每个节点的负载,自动调整权重。

l最少连接数(lc):根据真实服务器建立的连接数进行分配,连接数较少的节点服务器将被给予第一个请求。在服务器性能基本相同的情况下,可以选择这种算法。

l加权最小连接数(wlc):当服务器节点的性能变化很大时,负载调度器可以自动调整服务器权重。权重较高的服务器将接受较大的客户请求。

4。三种负载平衡模式

?地址转换:简称NAT模式。负载调度器是所有服务器的网关。它是客户访问的入口,也是服务器响应客户访问的出口。

?IP隧道:简称调谐器模式。开放式网络结构。所有服务器都直接连接到公共网络。

Scheduler充当客户访问门户。各节点服务器直接从公网回复客户。而不需要通过调度程序。

?直接路由:简称DR模式。类似于TUN。但是节点并不是分散在各处。但是集中在同一个网络结构中。

项目环境:

主计划程序:192.168.1.129

备用调度程序:192.168.1.128

节点1:192.168.1.130

节点2:192.168.1.131

第1层调度程序设置

1.安装ipvsadm管理工具

Ipvsadm是负载调度程序上的一个lvs集群管理工具。添加和删除服务器节点,并通过ip_vs模块查看集群的状态。



2.安装keepalived

安装keepalived之前。首先安装依赖包。此外,ipvsadm还用于已经安装的LVS集群环境。

如果它已编译并安装(make,makeinstall),那么keepalived应该作为系统服务添加。

3.主调度程序配置的纠错:主调度程序和从调度程序都是192.168.1网段。图片不对。

启动服务器

用ipa检查,看到VIP绑定在网络接口上,说明配置成功。没有从属调度程序。

4.设置从属调度程序。

从调度器和主调度器的配置基本相同。现在只需调整router_id、state、priority参数。配置完成后,重新启动keepalived。

二层服务器池设置:网络节点1:192.168.1.130和节点2:192.168.1.131的设置。

5.配置每个节点服务器。

根据选择的集群模式和不同的DR/NAT,节点服务器的配置也是不同的。以DR为例,除了调整/proc系统的ARP响应参数外,还需要配置虚拟接口LO:0的VIP配置。并增加一条VIP本地线路。

Vi/etc/rc.d/init.d/realserver#,并添加以下代码

#################################################

#!/bin/sh

#chkconfig:-8090

#描述:realserver

#httpd_vip启动realserver

Httpd_vip=192.168.21.254#LVS虚拟服务器(vip)

。/etc/RC.d/init.d/函数

案例“”在

开始)

ifconfiglo:0$httpd_vip网络掩码255.255.255.255广播$httpd_vip

/sbin/routeadd-host$httpd_VIPdevlo:0

echo"1">;/proc/sys/net/IPv4/conf/lo/ARP_ignore

echo"2">;/proc/sys/net/IPv4/conf/lo/ARP_announce

echo"1">;/proc/sys/net/IPv4/conf/all/ARP_ignore

echo"2">;/proc/sys/net/IPv4/conf/all/ARP_announce

sysctl-p>;/dev/null2>;&一个

回显“RealServer启动正常”

;;

停止)

ifconfiglo:0关闭

routedel$httpd_vip>/dev/null2>;&一个

echo"0">;/proc/sys/net/IPv4/conf/lo/ARP_ignore

echo"0">;/proc/sys/net/IPv4/conf/lo/ARP_announce

echo"0">;/proc/sys/net/IPv4/conf/all/ARP_ignore

echo"0">;/proc/sys/net/IPv4/conf/all/ARP_announce

回显“RealServer已停止”

;;

*)

echo"用法:$0{开始|停止}"

1号出口

environmentalsystemsapplicationscenter环境系统应用程序中心

出口0

#################################################

chmod+x/etc/RC.d/init.d/realserver#添加脚本执行权限

#add启动时的Chkconfigrealserver

/etc/RC.d/init.d/realserverstart#为on,参数stop为off。

5.2调整节点服务器的参数,以便LVS虚拟服务器(VIP)忽略ARP广播数据包。

Vi/etc/sysctl.conf#编辑

Net.ipv4.ip_forward=1#将0更改为1并开始转发。

net.ipv4.conf.lo.arp_ignore=1

net.IPv4.conf.lo.ARP_announce=2

net.ipv4.conf.all.arp_ignore=1

net.IPv4.conf.all.ARP_announce=2

:wq!#保存并退出

/sbin/sysctl-p#使配置立即生效。

6.核实结果

检查各节点是否在主从调度器上加入LVS。

在节点服务器网站的根目录下创建一个测试网页。

关闭192.168.1.130节点服务器。内容跳转到192.168.1.131。说明LVS是成功建成的。Keepalived将稍后测试。

现在关闭192.168.1.130节点。再次访问192.168.1.222

此时,我们正在查看lvs中的节点服务器。192.168.1.130该故障机器已被隔离。这留下了标准服务器131。当130恢复正常时,lvs会自动将其添加到lvs服务器池中。

接下来,测试keeplived是否构建成功。

首先关闭主节点服务器192.168.1.129,看是否还能正常访问192.168.1.222,那么keeplived就成功建立了。如果不成功,请检查以上所有步骤。

7.共享存储有了NFS,这就简单多了。可以查阅资料。这里就不说了。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/779963.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-04
下一篇 2022-05-04

发表评论

登录后才能评论

评论列表(0条)

保存