Load Balancer

IPVS: http://kb.linuxvirtualserver.org/wiki/IPVS

  NAT: http://kb.linuxvirtualserver.org/wiki/LVS/NAT

    VIP: http://kb.linuxvirtualserver.org/wiki/VIP

    ARP: http://kb.linuxvirtualserver.org/wiki/ARP_Issues_in_LVS/DR_and_LVS/TUN_Clusters

  TUN: http://kb.linuxvirtualserver.org/wiki/LVS/TUN

    http://www.linuxvirtualserver.org/VS-IPTunneling.html

  DR:http://kb.linuxvirtualserver.org/wiki/LVS/DR

    http://www.linuxvirtualserver.org/VS-DRouting.html

  FNAT: <<LVS_FULLNAT概要设计.docx>>   可以从下面的链接里download。

中文资料:http://linuxvirtualserver.org/zh/index.html

LVS集群的通用体系结构

负载调度器(load balancer)

服务器池(server pool)

共享存储(shared storage)

  分布式锁管理器(Distributed Lock Manager)

高可用性

一般来说,调度器的可靠性较高,因为调度器上运行的程序较少而且大部分程序早已经遍历过,但我们不能排除硬件老化、网络线路或者人为误 操作等主要故障。为了避免调度器失效而导致整个系统不能工作,
我们需要设立一个从调度器作为主调度器的备份。两个心跳(Heartbeat)进程[]分 别在主、从调度器上运行,它们通过串口线和UDP等心跳线来相互定时地汇报各自的健康状况。
当从调度器不能听得主调度器的心跳时,从调度器通过ARP欺骗 (Gratuitous ARP)来接管集群对外的Virtual IP Address,同时接管主调度器的工作来提供负载调度服务。
当主调度器恢复时,这里有两种方法,一是主调度器自动变成从调度器,二是从调度器释放 Virtual IP Address,主调度器收回Virtual IP Address并提供负载调度服务。
这里,多条心跳线可以使得因心跳线故障导致误判(即从调度器认为主调度器已经失效,其实主调度器还在正常工作)的概论 降到最低。 通常,当主调度器失效时,主调度器上所有已建立连接的状态信息将丢失,已有的连接会中断。客户需要向重新连接,从调度器才会将新连接调 度到各个服务器上,这对客户会造成一定的不便。
为此,IPVS调度器在Linux 内核中实现一种高效状态同步机制,将主调度器的状态信息及时地同步到从调度器。当从调度器接管时,绝大部分已建立的连接会持续下去。

负载均衡的发展历史,以及NAT、TUN、DR三种方式优缺点的比较

http://linuxvirtualserver.org/zh/lvs3.html

PrivateLink是啥

https://docs.aws.amazon.com/aws-technical-content/latest/aws-vpc-connectivity-options/aws-privatelink.html

在支持fullnat的基础上,可以通过配置实现 PrivateLink

LVS集群的负载调度

http://linuxvirtualserver.org/zh/lvs4.html

LVS项目下的软件,包括:http://www.linuxvirtualserver.org/software/index.html

IPVS: http://www.linuxvirtualserver.org/software/ipvs.html

包括,内核模块:  /linux-4.18-rc2/net/netfilter/ipvs

管理工具:ipvsadm   https://mirrors.edge.kernel.org/pub/linux/utils/kernel/ipvsadm/

看代码

  /linux-4.18-rc2/net/netfilter/ipvs

入口:

 module_init(ip_vs_init); 

hook

 static const struct nf_hook_ops ip_vs_ops[] = {
/* After packet filtering, change source only for VS/NAT */
{
.hook = ip_vs_reply4,
.pf = NFPROTO_IPV4,
.hooknum = NF_INET_LOCAL_IN,
.priority = NF_IP_PRI_NAT_SRC - ,
},
/* After packet filtering, forward packet through VS/DR, VS/TUN,
2125 * or VS/NAT(change destination), so that filtering rules can be
2126 * applied to IPVS. */
{
.hook = ip_vs_remote_request4,
.pf = NFPROTO_IPV4,
.hooknum = NF_INET_LOCAL_IN,
.priority = NF_IP_PRI_NAT_SRC - ,
。。。 。。。

为了清楚 hook点的进入条件和场景:

阅读 netfilter相关内容: 跳转至

[network] netfilter

[network] IPVS / Load balancer / Linux Virtual Server的更多相关文章

  1. LVS(Linux Virtual Server)

        LVS的英文全称是Linux Virtual Server,即Linux虚拟服务器.它是我国的章文嵩博士的一个开源项目.在linux内存2.6中,它已经成为内核的一部分,在此之前的内核版本则需 ...

  2. LVS : Linux Virtual Server 负载均衡,集群,高并发,robust

    1 LVS : Linux Virtual Server http://www.linuxvirtualserver.org/ http://www.linuxvirtualserver.org/zh ...

  3. LVS (Linux Virtual Server) 负载均衡

    [大型网站技术实践]初级篇:借助LVS+Keepalived实现负载均衡   一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服 ...

  4. 服务器负载均衡lvs(Linux Virtual Server)

    服务器负载均衡lvs(Linux Virtual Server) 一.总结 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统. 三.Linu ...

  5. LVS (Linux Virtual Server) - 负载均衡集群 - keepalived

    今天稍微了解了LVS 的原理和使用,在网络上找到不少好文章,稍微加以处理并在这里备份: 原理介绍:Linux Virtual Server 关于:http://www.linuxvirtualserv ...

  6. Linux Virtual Server技术

    1 LVS简单介绍 Linux VirtualServer是一个高扩展和高可用性server,在一个真正server的集群中构建而成,包括Linux操作系统中的负载均衡. server的架构对于终端用 ...

  7. LVS (Linux Virtual Server) 思维导图笔记

  8. 数据链路层负载均衡 Linux Virtual Server

    w 李智慧

  9. Data Center手册(3): Load Balancer

    Load Balancer的类型 DNS Round-Robin 这是一种很常见的分流的方式,具体配置如下: name server有一个zone文件,对于同一个domain,有多个IP www.ex ...

随机推荐

  1. samba需求,请建一个目录,所有用户都可以修改其中的任意文件(新建文件的权限问题)

    我的配置如下: [TMP] comment = Public Stuff path = /DATA/samba/tmp public = yes writable = yes create mode ...

  2. ElasticSearch性能优化策略【转】

    ElasticSearch性能优化主要分为4个方面的优化. 一.服务器部署 二.服务器配置 三.数据结构优化 四.运行期优化 一.服务器部署 1.增加1-2台服务器,用于负载均衡节点 elasticS ...

  3. remmina如何上传文件到linux服务器

    1.安装filezilla 2. remmina中选择列表中的主机,点击“外部工具 -> filezilla-xfp.sh” 3. 弹出filezilla,输入主机,端口,用户名,密码,连接, ...

  4. oracle 回收表空间的数据文件大小

    查看表空间的使用情况: " "used MB",b.bytes "free MB", ,) "percent_used" from ...

  5. 2. RNN神经网络模型的不同结构

    1. RNN神经网络模型原理 2. RNN神经网络模型的不同结构 3. RNN神经网络-LSTM模型结构 1. 前言 RNN( Recurrent Neural Network 循环(递归)神经网络) ...

  6. TWELP™ Vocoder

    TWELP™ Vocoder   DSP Innovations Inc. (DSPINI) announces new class of proprietary vocoders for wide ...

  7. Android控件源码分析--AndroidResideMenu菜单

    说明 早上看到一篇文章介绍了ResideMenu得使用,这是一个类似SlidingMenu的控件,感觉有点高尚大,反正我之前没见过,本着凑热闹的好奇心,立马clone把玩下,项目地址奉上: https ...

  8. python初级 2 字符串格式化

    一.回顾 上次我们讲解的数据类型,有int,float,str,bool,NoneType五种 前两种和后两种都比较简单,str较为复杂 二.字符串格式化的使用场景: 有一种字符串, xxx 的内容都 ...

  9. Docker for Windows 代理设置(linux container)

    https://blog.csdn.net/mzhangsf/article/details/79747979

  10. Chrome浏览器端调试JavaScript

    1. 一个超级简单的html文件拉入chrome浏览器 2. 右键-->检查 3. 点击Sources 4. html的12行加个断点 5. 刷新页面,点开Console面板,输入变量num,我 ...