• 1、 LVS介绍

  LVS是Linux虚拟服务器(LinuxVirtualServers),使用负载均衡技术将多台服务器组成一个虚拟服务器。它为适应快速增长的网络访问需求提供了一个负载能力易于扩展,而价格低廉的解决方案。LVS其实是一种集群(Cluster)技术,采用IP负载均衡技术(LVS的IP负载均衡技术是通过IPVS模块来实现的,linux内核2.6版本以上是默认安装IPVS的)和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。

LVS负载均衡调度技术是在LINUX内核中实现的,因此被称之为LINUX虚拟服务器。我们使用该软件配置LVS时候,不能直接配置内核中的IPVS,而需要使用IPVS的管理工具ipvsadm进行管理,当然我们也可以通过keepalived软件直接管理IPVS,并不是通过ipvsadm来管理ipvs。

  • 2、 LVS功能

  LVS主要用于服务器集群的负载均衡。它工作在网络层,可以实现高性能,高可用的服务器集群技术。它廉价,可把许多低性能的服务器组合在一起形成一个超级服务器。它易用,配置非常简单,且有多种负载均衡的方法。它稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不影响整体效果。另外可扩展性也非常好。

  有实现3种IP负载均衡技术和10种连接调度算法的IPVS软件。在IPVS内部实现上,采用了高效的Hash函数和垃圾回收机制,能正确处理所调度报文相 关的ICMP消息(有些商品化的系统反而不能)。虚拟服务的设置数目没有限制,每个虚拟服务有自己的服务器集。它支持持久的虚拟服务(如HTTP Cookie和HTTPS等需要该功能的支持),并提供详尽的统计数据,如连接的处理速率和报文的流量等。针对大规模拒绝服务(Deny of Service)攻击,实现了三种防卫策略。有基于内容请求分发的应用层交换软件KTCPVS,它也是在Linux内核中实现。有相关的集群管理软件对资源进行监测,能及时将故障屏蔽,实现系统的高可用性。主、从调度器能周期性地进行状态同步,从而实现更高的可用性。

  • 3、LVS的技术点和专业术语

(1)LVS技术点

a、真正实现调度的工具是IPVS,工作在LINUX内核层面。

b、LVS自带的IPVS管理工具是ipvsadm。

c、keepalived实现管理IPVS及负载均衡器的高可用。

d、Redhat工具PiranhaWEB管理实现调度的工具IPVS(不常用)

(2)LVS专业术语

a、VIP:虚拟ip地址virturalipaddress用于给客户端计算机提供服务的ip地址
b、RIP:realip,集群下面节点使用的ip地址,物理ip地址
c、DIP:directorip用于连接内外网络的ip,物理网卡上的ip地址,他是负载均衡器上的ip
d、CIP:clientip客户端用户计算机请求集群服务器的ip地址,该地址用作发送给集群的请求的源ip地址

  • 4、ARP抑制

(1)为什么要抑制RS服务器上的ARP

  为了让RS服务器能够处理目标地址为vip的IP包,首先必须要让RS能接收到这个包,这就需将VIP绑定到RS服务器的lo接口上,让RS服务器能够完成接收包并将结果返回client。不可以将VIP设置在出口网卡上,否则会响应客户端的arp request,造成client/gateway arp table紊乱,以至于整个load balance都不能正常工作。抑制ARP是为了防止RS和LVS调度服务器上的VIP冲突,因为RS和LVS调度服务器上的VIP是一个IP,抑制RS服务器的ARP响应,可以让RS服务器不响应ARP请求,有效解决同一VIP冲突。

(2)抑制ARP的命令

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

arp_ignore:定义对目标地址为本地IP的ARP询问不同的应答模式

0 - (默认值): 回应任何网络接口上对任何本地IP地址的arp查询请求

1 - 只回答目标IP地址是来访网络接口本地地址的ARP查询请求

2 -只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内

3 - 不回应该网络界面的arp请求,而只对设置的唯一和连接地址做出回应

4-7 - 保留未使用

8 -不回应所有(本地地址)的arp查询

arp_announce - INTEGER

对网络接口上,本地IP地址的发出的,ARP回应,作出相应级别的限制:确定不同程度的限制,宣布对来自本地源IP地址发出Arp请求的接口

0 - (默认) 在任意网络接口(eth0,eth1,lo)上的任何本地地址

1 -尽量避免不在该网络接口子网段的本地地址做出arp回应. 当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用.此时会检查来访IP是否为所有接口上的子网段内ip之一.如果改来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理.

2 - 对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址. 如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送. 限制了使用本地的vip地址作为优先的网络接口。

转载于:https://www.cnblogs.com/linuxk/p/9358489.html

LVS入门篇(二)之LVS基础相关推荐

  1. 运动控制器编程_快速入门 | 篇二十一:运动控制器ZHMI组态编程简介一

    点击上方"正运动小助手",随时关注新动态! 运动控制器ZHMI组态编程简介一  今天我们来学习一下,运动控制器的ZHMI组态编程简介.本文主要从产品概述.控制器连接触摸屏使用.HM ...

  2. 【SSRS】入门篇(二) -- 建立数据源

    原文:[SSRS]入门篇(二) -- 建立数据源 通过 [SSRS]入门篇(一) -- 创建SSRS项目 这篇,我们建立了一个SSRS项目: 接下来,我们以 AdventureWorks2012 示例 ...

  3. 单片机stm32LED流水灯C语言,STM32单片机入门 篇二:单片机编程:从点亮LED灯开始(二)...

    STM32单片机入门 篇二:单片机编程:从点亮LED灯开始(二) 2019-04-26 13:21:48 19点赞 73收藏 19评论 写在前面的话:本篇是承接上一篇文章,属于小白向. 没看过的朋友点 ...

  4. JavaScript 基础知识 - 入门篇(二)

    11. 函数 11.1 函数的基础知识 为什么会有函数? 在写代码的时候,有一些常用的代码需要书写很多次,如果直接复制粘贴的话,会造成大量的代码冗余: 函数可以封装一段重复的javascript代码, ...

  5. 【嵌入式入门篇】嵌入式0基础沉浸式刷题篇1

    嵌入式-入门沉浸式刷题篇 前言 Q1:嵌入式牛牛宏大小 Q2:嵌入式宏空间坐标数量 Q3:嵌入式牛牛疑惑的变量 Q4:嵌入式关键字const Q5:嵌入式机器的大小端 Q6:嵌入式不用排序找数字 Q7 ...

  6. OpenCV图像处理视频教程——入门篇(二)

    文章目录 10 膨胀与腐蚀 (1)形态学操作(morphology operators)--膨胀.腐蚀 (2)相关API (3)动态调整结构元素大小TrackBar 11 形态学操作 (1)开操作- ...

  7. 入门篇(二)模型:逻辑回归(一步步从原理到实现)

    <老饼讲解机器学习>专注于机器学习的学习网站http://ml.bbbdata.com/teach#187 目录 一.问题 二.逻辑回归的思想 三.模型表达式 四.损失函数 (一) 单个 ...

  8. [网络安全自学篇] 二十.Powershell基础入门及常见用法(二)

    这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步.前文分享了Powershell基础入门知识,涉及基础概念.管道和重定向.执行外部命 ...

  9. LVS入门篇(五)之LVS+Keepalived实战

    一.实验架构和环境说明 (1)本次基于VMware Workstation搭建一个四台Linux(CentOS 7.4)系统所构成的一个服务器集群,其中两台负载均衡服务器(一台为主机,另一台为备机), ...

最新文章

  1. 优秀!21岁读博,26岁博士毕业即为副教授,同年又晋升教授和博导!
  2. MyBatis框架学习DAY_01:概念/创建运行流程
  3. hdu 5086(dp)
  4. js 获取 select的option的 id值
  5. android压缩图片不失真,Android压缩图片到100K以下并保持不失真的高效方法 - feicien的博客 - eoe移动开发者社区...
  6. 【转载】通过金矿模型介绍动态规划 (动态规划入门)
  7. 导致大量kworker的原因_高尿酸与生活习惯有关?导致高尿酸的8个坏习惯,现在改还来得及...
  8. Error解决:hive中的数组越界异常IndexOutOfBoundsException
  9. 补遗篇之volatile
  10. python模块导入与使用
  11. dblink连接远程mysql_MySQL中使用federated 实现dblink 远程表访问
  12. 软件测试与质量保证习题
  13. Auto.js通知栏
  14. filtering and hybrid images
  15. JavaScript 事件节流
  16. Linux 如何在文件中查找指定内容
  17. 快手秋招前端实习生一面面经
  18. 解决使用Python连接Mysql数据库时出现错误:Access denied for user 'xxx'@'xxx' (using password: NO)
  19. 你了解个人云盘和企业云盘有什么区别吗?
  20. 网易邮箱CSRF漏洞

热门文章

  1. mac m1下golang连接mysql极速入门
  2. LVS(11)——wrr
  3. iTerm2 保存日志
  4. iOS Hacker dumpdecrypted脱壳
  5. Android安卓程序消息提示和按钮响应事件
  6. 动态规划 - 买卖股票的最佳时机 III
  7. Tensorflow保存模型详解(进阶版二):如何保存最近的.ckpt文件 及 如何分开保存.ckpt数据文件和.meta图文件
  8. Leetcode题库 144.二叉树的前序遍历(递归 C实现)
  9. 8086汇编-实验5(微调)-用栈实现数据交换位置
  10. Oracle修改表列名与顺序的解决方案 (sql 修改列名)