LVS:术语:

CIP:Client IP;客户端IP;

VIP:Virtual Server IP;虚拟主机对外IP;

RIP:Real Server IP;真实主机IP;

DIP:Director IP;虚拟主机内网段主机IP;

LVS:调度方法 ipvs scheduler

根据其调度时是否考虑各RS当前的负载状态,可分为静态方法和动态方法。

静态方法:仅根据算法本身进行调度。

RR:RoundRobin,轮巡;

WRR:Weighted RR,加权轮巡;

SH:Source Hashing,实现session sticky,源IP地址hash,将来自于同一个IP地址的请求始终发往第一次选中的RS主机,从而实现会话绑定。

DH:Destination Hashing:目标地址哈希相同,将发往同一个目标地址的请求始终发往选中的RS主机,典型使用正向代理缓存场景中的负载均衡。

动态方法:根据RS主机负载均衡状态即使调整算法进行调度。

LC:Least Connections:RS进行比较最少连接的。

WLC:Weighted LC 加权最少连接,最优算法;

SED:Shortest Expection Delay 最短期望延迟

NQ:Never Queue

LBLC:Locality-based LC:动态的DH算法

LBLCR:LBLC with Replocation,带复制功能的LBLC;

集群管理工具:ipvsadm/ipvs

程序集合及配置文件:

Unit File:ipvsadm.service

主程序:/usr/sbin/ipvsadm

规则保持工具:/usr/sbin/ipvsadm-save

规则重载工具:/usr/sbin/ipvsadm-restore

规则配置文件:/etc/sysconfig/ipvsadm-config

ipvsadm 管理命令:

ipvsadm -A | E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask] [–pe persistence_engine] [-b sched-flags]

-A 增加 | -E 修改 -t|u|f

-t:TCP协议端口,VIP:TCP_PORT

-u:UDP协议端口,VIP:UDP_PORT

-f:firewall MARK,数字(特指iptables 做的标记符)

[-s scheduler]:指定集群的调度算法,默认唯wlc;可省

ipvsadm -D 删除 -t |u|f service-address

ipvsadm -C:清空定义内容

ipvsadm -R:-R:重载配置;ipvsadm -S -n > /etc/sysconfig/ipvsadm

ipvsadm -S [-n]:-S:保存配置;ipvsadm -R < /etc/ssyconfig/ipvsadm

集群服务RS管理:

ipvsadm -a|e -t|u|f service-address -r server-address [options]

-a 增加 | -e 修改 -t|u|f

-t:TCP协议端口

-u:UDP协议端口

-f:firewall MARK,数字

ipvsadm -d 删除 -t|u|f service-address -r server-address

ipvsadm -L 查看|l [options]

–numeric,-n:显示地址和端口

–exact:显示精确值

–connection,-c:显示LVS连接信息

–stats:统计数据

–rate:统计速率

ipvsadm -Z 计数器归零 [-t|u|f server-address]

server—address:rip[:port] 不做地址映射

选项:

-g:gateway,dr类型

-i:ipip,tun类型

-m:masquerade,nat类型

-w wgight:权重;

负载均衡集群设计时要注意的问题:

是否需要会话保持;

是否需要共享存储;

共享存储:NAS,SAN,DS(分布式存储)

数据同步;

实验拓扑图

web-server1配置

1. 配置网络信息

2. 同步时间

ntpdate ntp.aliyun.com

3. 安装nginx服务

yum -y install nginx

4. 编写nginx配置文件

cp /etc/nginx/nginx.conf.default /etc/nginx/conf.d/web-servre.conf

5. 编写静态网站

echo “web-server1 172.16.30.10” > /usr/share/nginx/html/test.html

6. 重启nginx服务

systemctl start nginx

systemctl enable nginx

7. 检查80端口是否被监听

ss -tnl

web-server2配置

1. 配置网络信息

2. 同步时间

ntpdate ntp.aliyun.com

3. 安装nginx服务

yum -y install nginx

4. 编写nginx配置文件

cp /etc/nginx/nginx.conf.default /etc/nginx/conf.d/web-servre.conf

5. 编写静态网站

echo “web-server2 172.16.30.11” > /usr/share/nginx/html/test.html

6. 重启nginx服务

systemctl restart nginx

systemctl enable nginx

7. 检查80端口是否被监听

ss -tnl

Lvs配置

1. 配置网络信息

2. 同步时间

ntpdate ntp.aliyun.com

3. 开启Linux内核转发

vim /usr/lib/sysctl.d/00-system.conf

sysctl -w net.ipv4.ip_forward=1

4. 安装ipvsadm软件

yum -y install ipvsadm

5. 生成规则

ipvsadm -A -t 192.168.1.234:80 -s rr

ipvsadm -Ln #查看定义规则

ipvsadm -a -t 192.168.1.234:80 -r 172.16.30.10 -m

ipvsadm -a -t 192.168.1.234:80 -r 172.16.30.11 -m

客户端测试

curl http://192.168.1.234/test.html

for i in {1..20} ;do curl http://192.168.1.234/test.html;done


配置加权轮询

修改服务器调度算法

ipvsadm -E -t 192.168.1.234:80 -s wrr

ipvsadm -e -t 192.168.1.234:80 -r 172.16.30.10 -m -w 2 将172.16.30.10这个台主机的权重修改为2

ipvsadm -e -t 192.168.1.234:80 -r 172.16.30.11 -m -w 3 将172.16.30.11这个台主机的权重修改为3

ipvsadm -Z #清空统计数据

ipvsadm -Ln --rate #查看历史数据

删除RSserver

ipvsadm -d -t 192.168.1.234:80 -r 172.16.30.10

ipvsadm -Ln

客户端测试:

curl http://192.168.1.234/test1.html

for i in {1..20} ;do curl http://192.168.1.234/test1.html;done

LVS响应访问

yum -y install nginx

echo “sorry”>/usr/share/nginx/html/index.html

systemctl restart nginx

ss -tnl

添加调度主机

ipvsadm -a -t 192.168.1.234:80 -r 127.0.0.1 -g #将访问调度到本机

客户端测试

for i in {1..20} ;do curl http://192.168.1.234 ; done

将来自于同一个地址的响应调度到同一个主机上

ipvsadm -E -t 192.168.1.234:80 -s sh

长连接测试:

systemctl start telnet.socket

useradd centos ; echo ‘chenjf’| passwd --stdin chenjf

LVS配置

ipvsadm -A -t 192.168.1.234:23 -s wlc

ipvsadm -a -t 192.168.1.234:23 -r 172.16.30.10 -m -w 1

ipvsadm -a -t 192.168.1.234:23 -r 172.16.30.11 -m -w 2

客户端测试

yum -y install telnet

telnet 192.168.1.234

ipvsadm -S #保存配置

ipvsadm -n >/etc/sysconfig/ipvsadms

ipvsadm -C

ipvsadm -Ln

ipvsadm -R </etc/sysconfig/ipvsadm

ipvsadm -ln

LVS-DR实验拓扑图

LVS-DR模式采的IP地址全部为外网IP。

用户请求VIP,会由LVS服务器响应,分配至Real-Server服务器,真实服务器处理完后直接返回给用户,不再通过LVS服务器。

搭建环境

OS:Centos 7.5

IP:LVS-server IP:192.168.1.234

VIP:192.168.1.33

Real-Server1 IP: 192.168.1.232 安装web服务器 准备测试站点内容

Real-Server2 IP: 192.168.1.233 安装web服务器 准备测试站点内容

Client:xp/window7/8都可以,只要能ping通 192.168.1.*

配置流程

LVS-server配置

1、同步时间

2、设置VIP地址

[root@LVS-server ~]#ifconfig lo:0 192.168.1.33 netmask 255.255.255.255

[root@LVS-server ~]#route add -host 192.168.1.33 dev lo:0

3、安装Ipvsadm软件

[root@LVS-server ~]#yum -y install ipvsadm*

4、lvs配置

[root@LVS-server ~]#ipvsadm -C

[root@LVS-server ~]#ipvsadm -A -t 192.168.1.33:80 -s rr

[root@LVS-server ~]#ipvsadm -a -t 192.168.1.33:80 -r 192.168.1.232 -g

[root@LVS-server ~]#ipvsadm -a -t 192.168.1.33:80 -r 192.168.1.233 -g

[root@LVS-server ~]#ipvsadm -Ln

Real-Server1配置

1、同步时间

2、RS1、RS2上安装nginx服务;

[root@Real-server1 ~]# yum -y install nginx

3、编写一个静态页面

[root@Real-server1 ~]# echo "Real-server1 192.168.1.232" >/usr/share/nginx/html/lvs.html

4、重启nginx服务

Systemctl restart nginx

Systemctl enable nginx

5、检查80端口是否被监听

[root@Real-server1 ~]# ss -tnl

6、配置网络并添加路由

[root@Real-server1 ~]# ifconfig lo:0 192.168.1.33 netmask 255.255.255.255

[root@Real-server1 ~]# route add -host 192.168.1.33 dev lo:0

7、关闭通告信息

[root@Real-server1 ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore

[root@Real-server1 ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore

[root@Real-server1 ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce

[root@Real-server1 ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

Real-Server2配置

1、同步时间

2、RS1、RS2上安装nginx服务;

[root@Real-server2 ~]# yum -y install nginx

3、编写一个静态页面

[root@Real-server2 ~]# echo "Real-server2 192.168.1.233" >/usr/share/nginx/html/lvs.html

4、检查80端口是否被监听

[root@Real-server2 ~]# ss -tnl

5、重启nginx服务

[root@Real-server2 ~]# systemctl restart nginx

[root@Real-server2 ~]# systemctl enable nginx

6、配置网络并添加路由

[root@Real-server2 ~]# ifconfig lo:0 192.168.1.33 netmask 255.255.255.255

[root@Real-server2 ~]# route add -host 192.168.1.33 dev lo:0

7、关闭通告信息

[root@Real-server2 ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore

[root@Real-server2 ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore

[root@Real-server2 ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce

[root@Real-server2 ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

客户端测试

现在通过Client直接访问 LVS的VIP地址http://192.168.1.33/lvs.html正常的话即可访问到准备的测试站点。

使用脚本测试看是否为轮询状态。

[root@Client ~]# for i in{1..20};do curl http://192.168.1.33/lvs.html;done

配置LVS采用的是轮循模式。第一次是访问Real-Server1,刷新后是访问Real-Server2,再刷新后访问Real-Server1

LVS负载均衡基础介绍及NET、DR模式配置的更多相关文章

  1. LVS负载均衡-基础知识梳理

    一. 集群的概念 服务器集群简称集群是一种服务器系统,它通过一组松散集成的服务器软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台服务器.集群系统中的单个服务器通常称 ...

  2. LVS负载均衡之DR模式原理介绍

    LVS基本原理 流程解释: 当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间 PREROUTING 链首先会接收到用户请求,判断目标 IP 确定是本机 IP ...

  3. LVS负载均衡DR模式

    什么是集群? 一组相互独立的计算机,利用高速通信网络组成的一个计算机系统,对于客户机来说像是一个单一服务器,实际上是一组服务器.简而言之,一堆机器协同工作就是集群.集群的基本特点:高性能.高并发.高吞 ...

  4. LVS负载均衡之DR模式部署

      1.LVS的DR模式介绍 参考自官网:http://www.linuxvirtualserver.org/zh/lvs3.html     VS/DR利用大多数Internet服务的非对称特点,负 ...

  5. LVS负载均衡常用的工作模式有NAT、DR、和TUN三种,其中DR模式性能最为优越,使用最为广泛。

    一.安装LVS LVS的编译安装参考本站文章:http://www.linuxe.cn/post-192.html,对于LVS这种功能性软件,在生产中用yum安装也是没有问题的. 1 yum inst ...

  6. LVS负载均衡DR模式实现

    LVS负载均衡之DR模式配置 DR 模式架构图: 操作步骤 实验环境准备:(centos7平台) 所有服务器上配置 # systemctl stop firewalld //关闭防火墙 # sed - ...

  7. lvs负载均衡(DR模式)

    lvs负载均衡(DR模式) 系统环境:lvs+keepalivedcentos7.5 ip:192.168.1.157 vip:192.168.1.150(主)centos7.5 ip:192.168 ...

  8. LVS负载均衡之持久性连接介绍(session篇)

    在实际生产环境中,往往需要根据业务应用场景来设置lvs的会话超时时间以及防session连接丢失的问题提,如在业务支付环节,如若session丢失会导致重复扣款问题,严重影响到安全性,本小节解将会讲到 ...

  9. LVS负载均衡DR工作流程

    LVS负载均衡DR工作流程 (a) 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链. 此时报文的源IP为CIP,目标IP为VIP (b) PRE ...

随机推荐

  1. web Components 学习之路

    就目前而言,纯粹的Web Components在兼容性方面还有着较为长远的路,这里做个记录总结,以纪念自己最近关于Web Components的学习道路. 参考教材 JavaScript 标准参考教程 ...

  2. ubuntu 下安装docker 踩坑记录

    ubuntu 下安装docker 踩坑记录 # Setp : 移除旧版本Docker sudo apt-get remove docker docker-engine docker.io # Step ...

  3. qt 拖拽 修改大小

    写次篇文章之前,qt窗口的放大缩小和拖拽我都是通过setGeometry方法实现的,但是作为windows程序,windows支持橡 皮筋式(拖拽时有一个虚框)拖拽和拉伸.通过setGeometry方 ...

  4. 使用ML.NET实现德州扑克牌型分类器

    导读:ML.NET系列文章 本文将基于ML.NET v0.2预览版,重点介绍提取特征的思路和方法,实现德州扑克牌型分类器. 先介绍一下德州扑克的基本牌型,一手完整的牌共有五张扑克,10种牌型分别是: ...

  5. Python爬虫入门教程 7-100 蜂鸟网图片爬取之二

    蜂鸟网图片--简介 今天玩点新鲜的,使用一个新库 aiohttp ,利用它提高咱爬虫的爬取速度. 安装模块常规套路 pip install aiohttp 运行之后等待,安装完毕,想要深造,那么官方文 ...

  6. 外接程序 VMDebugger 未能加载或导致了异常 修复

    单击进入 是 visual studio   在 VMWARE 菜单栏上 单击 右键,出现如图,然后选择  自定义(C)...   打开 自定义 工具栏 里 选中 VMware 然后单击 删除 按钮 ...

  7. 带着新人学springboot的应用10(springboot+定时任务+发邮件)

    接上一节,环境一样,这次来说另外两个任务,一个是定时任务,一个是发邮件. 1.定时任务 定时任务可以设置精确到秒的准确时间去自动执行方法. 我要一个程序每一秒钟说一句:java小新人最帅 于是,我就写 ...

  8. transient和synchronized的使用

    transient和synchronized这两个关键字没什么联系,这两天用到了它们,所以总结一下,两个关键字做个伴! transient 持久化时不被存储,当你的对象实现了Serializable接 ...

  9. Java开发知识之Java的正则表达式

    目录 正则表达式 一丶什么是正则表达式 1.正则表达式简介 2.无正则表达式判断代码 3.使用正则表达式代码. 二丶正则表达式API 三丶正则表达式语法格式 1.正则表达式语法 正则表达式 一丶什么是 ...

  10. 15分钟在阿里云Kubernetes服务上快速建立Jenkins X Platform并运用GitOps管理应用发布

    本文主要介绍如何在阿里云容器服务Kubernetes上快速安装部署Jenkins X Platform并结合demo实践演示GitOps的操作流程. 注意:本文中使用的jx工具.cloud-envir ...