LVS负载均衡群集

1、群集:至少包括两台节点服务器,对外表现为一个整体

类型:

1)负载均衡群集(LB)

以提高应用系统的响应能力,尽可能处理更多的访问请求、减少延迟为目标,获得高并发、高负载(LB)的整体能力。

2)高可用群集(HA)

以提高应用系统的可靠性、尽可能的减少中断时间为目标,确保服务的连续性,达到高可用(HA)的容错效果。

3)高性能运算群集(HPC)

以提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC)能力。

2、负载均衡的结构:

负载调度器:群集访问入口,对外使用群集地址(VIP地址),也称为虚拟服务器。

服务器池:群集所提供的服务由服务器池承担,每个节点有真实IP(RIP)地址。

共享存储:为服务器池中的所有节点提供稳定、一致的文件存取服务,确保群集的统一性。

3、负载均衡的工作模式:

1)地址转换模式:NAT模式 用-m参数代表、

调度器为群集的入口和出口,服务器使用私有IP,安全、经济

转发类型为:masq

2)IP隧道模式:TUM调式 用-i参数代表

调度器为入口,各节点服务器各自回应客户机,节点服务器分散在不同位置,具有独立公网IP,通过IP隧道与调度器相连

3)直接路由模式:DR模式 用-g参数代表

与TUN模式类似,但节点服务器并不分散在不同位置,转发类型为:Route

4、LVS的负载调度算法

1)轮询:rr,均等的对待每一台服务器,按顺序轮流分配给各节点服务器

2)加权轮询:wrr,根据各节点负载情况,自动调整权重

3)最少连接:lc,优先分配给连接数最少的节点服务器

4)加权最少连接:wlc,为性能高的节点动态调整权重,以承担更大比例的负载。

5、配置NAT模式群集

1)添加虚拟服务器

ipvsadm -A -t 202.1.1.1:80 -s rr

2)添加真实(节点)服务器

ipvsadm -a -t 202.1.1.1:80 -r 192.168.1.100:80 -m -w 1

3)设置SNAT策略

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SANT --to 202.1.1.1

4)查看连接情况

ipvsadm -ln

6、配置NFS共享

1)vim /etc/exports

NFS配置文件 共享目录 允许访问的客户机地址(权限选项列表)

权限选项有:ro:只读 rw:读写

sync:远程同步

no_root_squash,root_squash:以root或nfsnobody身份挂载

2)启动nfs服务必须先启动rpcbind服务

rpcbind服务端口号为:111

nfs服务端口号为:2049

3)查看共享:showmount -e 服务器IP

4)客户端挂载共享:mount 服务器IP:/共享目录 /本地目录

在/etc/fstab中设置永久挂载需要添加参数_netdev

7、ipvs的DR模式:调度器只作为入口,各节点服务器各自作为出口响应客户机

1)调度服务器的配置:

配置群集IP地址:配置在eth0:0上

调整/proc内核参数,关闭重定向响应:/etc/sysctl.conf

配置LVS-DR策略

Ipvsadm -A -t 192.168.1.111:80 -s rr

Ipvsadm -a -t 192.168.1.111:80 -r 192.168.1.100:80 -g -w 1

2)节点服务器配置:

配置群集IP地址:配置在lo:0上,子网掩码为:255.255.255.255

调整/proc内核参数,关闭Arp响应和宣告

添加群集地址的本地路由记录

root add -host 192.168.1.111 dev lo:0

原文发布于微信公众号 - L宝宝聊IT(gh_b0e552aa80db)

原文发表时间:2018-03-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏贾老师の博客

Linux 系统监控

2572
来自专栏IT派

秒懂Python编程中的if __name__ == 'main' 的作用和原理

一天偶然发现知乎上有篇关于对python编程中的if __name__ == 'main'的理解陈述,看完之后,自己觉得不够简单明了,于是在其文章底部写了一句话...

751
来自专栏Bug生活2048

小程序云开发使用体验

这里发现直接更新有点慢,直接下载最新版然后覆盖比较快,打开最新的开发者工具之后会发现多了个云开发:

4472
来自专栏跟着阿笨一起玩NET

从XML文件乱码问题,探寻其背后的原理

加入xml文件以<?xml version="1.0" encoding="utf-8" ?> 格式的;如果对xml文件进行修改了,其中包含中文字符的内容,另存...

1002
来自专栏Crossin的编程教室

【Python 第64课】python shell

各位好久不见,我终于又更新了:D。今天抽空来讲点非常非常基础的东西,关于在哪里写 python。 如果你已经编写过自己的程序,相信对这些内容已经熟悉。但很多刚刚...

34010
来自专栏FLINK

tailf、tail -f、tail -F三者区别

数据采集,浪尖公司一直是自己公司写的agent和插件,今天新增业务要快速上线,就想试试flume。结果是用flume,采用tail -f 监控文件的方式,然后发...

7844
来自专栏程序员互动联盟

【编程基础】什么是内存泄露

内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。(其实说白了就是该内存空间使用完毕之...

3426
来自专栏Linyb极客之路

面对海量请求,缓存设计还应该考虑哪些问题?

从第一个缓存框架 Memcached 诞生以来,缓存就广泛地存在于互联网应用中。如果你的应用流量很小,那么使用缓存可能并不需要做多余的考虑。但如果你的应用流量达...

874
来自专栏WebHub

事件驱动引擎会取代多线程编程吗

事件驱动编程是一种编程范式,这里程序的执行流由外部事件来决定。它的特点是包含一个事件循环,当外部事件发生时使用回调机制来触发相应的处理。另外两种常见的编程范式是...

1454
来自专栏Golang语言社区

Golang学习--GroupCache的使用

groupcache 是 Brad Fitzpatrick 最新的作品,目标在于取代一部分memcached的功能。以官方的说明是:groupcache ...

5169

扫码关注云+社区