推荐一篇关于LVS的好文:

https://www.cnblogs.com/gaoxu387/p/7941381.html

一、原博主要内容:

1、概述

IP负载均衡:四层负载,是基于IP+端口的负载均衡,主要代表是LVS(Linux Virtual Server)

LVS工作原理:LVS的IP负载均衡技术是通过IPVS模块实现的,IPVS模块工作在内核空间。

2、LVS的工作模式

A、DR模式
通过 MAC 地址改写机制实现转发,集群局限于局域网内,需要设置lo接口的VIP不能响应本地网络内的arp请求。
B、TUN模式
通过再封装一层IP报文转发,集群可在公网上。
C、NAT模式
通过修改IP报文转发,集群局限在局域网内。

3、LVS的调度算法

  • 轮叫调度(Round-Robin Scheduling)
  • 加权轮叫调度(Weighted Round-Robin Scheduling)
  • 最小连接调度(Least-Connection Scheduling)
  • 加权最小连接调度(Weighted Least-Connection Scheduling)
  • 基于局部性的最少链接(Locality-Based Least Connections Scheduling)
  • 带复制的基于局部性最少链接(Locality-Based Least Connections with Replication Scheduling)
  • 目标地址散列调度(Destination Hashing Scheduling)
  • 源地址散列调度(Source Hashing Scheduling)

固定调度算法:rr,wrr,dh,sh

动态调度算法:wlc,lc,lblc,lblcr

二、DR模式的配置

 这里介绍一下DR模式的配置。
1、负载均衡服务器:一般对外的负载均衡器须具有灾备能力,在负载均衡服务器上安装keepalived,并完成keepalived的配置,配置如下:

  1. ! Configuration File for keepalived
  2.  
  3. global_defs {
  4. notification_email {
  5. acassen@firewall.loc
  6. failover@firewall.loc
  7. sysadmin@firewall.loc
  8. }
  9. notification_email_from Alexandre.Cassen@firewall.loc
  10. smtp_server 192.168.200.1
  11. smtp_connect_timeout 30
  12. router_id LVS_DEVEL
  13. }
  14.  
  15. vrrp_instance VI_EPG {
  16. state MASTER //主用设置为MASTER,备用设置为BACKUP
  17. interface bond0 //VIP设置所在网卡
  18. virtual_router_id 64 //路由ID主备需一致
  19. priority 100 //主用优先级要比备用优先级高
  20. advert_int 1
  21. authentication {
  22. auth_type PASS
  23. auth_pass 1111
  24. }
  25. virtual_ipaddress {
  26. 111.11.11.10 //对外VIP
  27. }
  28. }
  29. virtual_server 111.11.11.10 6600 {
  30. delay_loop 6
  31. lb_algo rr //调度算法RR,也可以设置其他算法
  32. lb_kind DR //负载均衡模式为DR
  33. persistence_timeout 20
  34. protocol TCP
  35.  
  36. real_server 111.11.11.21 6600 { //RS节点服务器IP
  37. weight 1
  38. TCP_CHECK {
  39. connect_timeout 3
  40. nb_get_retry 3
  41. delay_before_retry 3
  42. }
  43. }
  44. real_server 111.11.11.22 6600 { //RS节点服务器IP
  45. weight 1
  46. TCP_CHECK {
  47. connect_timeout 3
  48. nb_get_retry 3
  49. delay_before_retry 3
  50. }
  51. }
  52.  
  53. real_server 111.11.11.23 6600 { //RS节点服务器IP
  54. weight 1
  55. TCP_CHECK {
  56. connect_timeout 3
  57. nb_get_retry 3
  58. delay_before_retry 3
  59. }
  60. }
  61. }
2、RS节点服务器:需要设置lo接口的VIP,且设置其不能响应本地网络内的arp请求,可执行脚本:
  1. #!/bin/bash
  2. # description: Config realserver lo and apply noarp
  3. VIP=111.11.11.10
  4.  
  5. . /etc/rc.d/init.d/functions
  6.  
  7. case "$1" in
  8. start)
  9. echo "" >/proc/sys/net/ipv4/conf/bond0/arp_ignore
  10. echo "" >/proc/sys/net/ipv4/conf/bond0/arp_announce
  11. echo "" >/proc/sys/net/ipv4/conf/all/arp_ignore
  12. echo "" >/proc/sys/net/ipv4/conf/all/arp_announce
  13. sysctl -p >/dev/null >&
  14. ifconfig lo: $VIP netmask 255.255.255.255 broadcast $VIP
  15. /sbin/route add -host $VIP dev lo:
  16. echo "RealServer Start OK"
  17. ;;
  18. stop)
  19. ifconfig lo: down
  20. route del $VIP >/dev/null >&
  21. echo "" >/proc/sys/net/ipv4/conf/bond0/arp_ignore
  22. echo "" >/proc/sys/net/ipv4/conf/bond0/arp_announce
  23. echo "" >/proc/sys/net/ipv4/conf/all/arp_ignore
  24. echo "" >/proc/sys/net/ipv4/conf/all/arp_announce
  25. echo "RealServer Stoped"
  26. ;;
  27. status)
  28. # Status of LVS-DR real server.
  29. islothere=`/sbin/ifconfig lo: | grep $VIP`
  30. isrothere=`netstat -rn | grep "lo:0" | grep $VIP`
  31. if [ ! "$islothere" -o ! "isrothere" ];then
  32. # Either the route or the lo: device
  33. # not found.
  34. echo "LVS-DR real server Stopped."
  35. else
  36. echo "LVS-DR Running."
  37. fi
  38. ;;
  39. *)
  40. # Invalid entry.
  41. echo "$0: Usage: $0 {start|status|stop}"
  42. exit
  43. ;;
  44. esac
  45. exit

注意:此脚本最好设置成开机执行,如脚本名称为realserver.sh,放置在/usr/bin/路径下,赋可执行权限,在/etc/rc.local的末尾添加一行:/usr/bin/realserver.sh start

IP负载均衡的更多相关文章

  1. 转载-lvs官方文档-LVS集群中的IP负载均衡技术

    章文嵩(wensong@linux-vs.org) 2002 年 4 月 本文在分析服务器集群实现虚拟网络服务的相关技术上,详细描述了LVS集群中实现的三种IP负载均衡技术(VS/NAT.VS/TUN ...

  2. LVS集群中实现的三种IP负载均衡技术

    LVS有三种IP负载均衡技术:VS/NAT,VS/DR,VS/TUN. VS/NAT的体系结构如图所示.在一组服务器前有一个调度器,它们是通过Switch/HUB相连接的.这些服务器 提供相同的网络服 ...

  3. Lvs IP负载均衡技术

    Lvs集群的通用结构 Lvs集群采用IP负载均衡技术,属于IP层的交换(L4),具有很好的吞吐率.调度器分析客户端到服务器的IP报头信息,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器 ...

  4. LVS集群中的IP负载均衡技术

    LVS集群中的IP负载均衡技术 章文嵩 (wensong@linux-vs.org) 转自LVS官方参考资料 2002 年 4 月 本文在分析服务器集群实现虚拟网络服务的相关技术上,详细描述了LVS集 ...

  5. 消费五分钟,小白也能了解的经典技术:关于IP负载均衡(LVS之NAT)

    这里准备以两篇文章来大概讲述一下LVS负载均衡 NAT TUN/DR和共享存储 前言: 为什么搭建LVS: 若一台服务器只能支持10人在线.那么有100人访问,则需要多少台服务器. 这个不言而喻:10 ...

  6. 微服务管理平台nacos虚拟ip负载均衡集群模式搭建

    一.Nacos简介 Nacos是用于微服务管理的平台,其核心功能是服务注册与发现.服务配置管理. Nacos作为服务注册发现组件,可以替换Spring Cloud应用中传统的服务注册于发现组件,如:E ...

  7. IP负载均衡技术

    参考链接:http://www.360doc.com/content/12/1117/19/820209_248442094.shtml

  8. 负载均衡之IP

    文章出自:http://blog.csdn.net/cywosp/article/details/38036537       首先让我们来看看下面这张大家都非常熟悉的TCP/IP协议族的分层图:   ...

  9. 配置LVS + Keepalived高可用负载均衡集群之图文教程

    负载均衡系统可以选用LVS方案,而为避免Director Server单点故障引起系统崩溃,我们可以选用LVS+Keepalived组合保证高可用性.  重点:每个节点时间都同步哈! C++代码 [r ...

随机推荐

  1. Django MTV

    MTV模型 Django的MTV分别代表: Model(模型):负责业务对象与数据库的对象(ORM) Template(模版):负责如何把页面展示给用户 View(视图):负责业务逻辑,并在适当的时候 ...

  2. Rpc简单入门

    RPC这个概念大家都应该很熟悉了,这里不在累述了:使用场景可以参考这篇,本篇主要分享下Thrift和Grpc在.Net Core环境下使用入门.Thirft或者Grps 都支持跨语言.跨平台的Rpc框 ...

  3. C++模板的应用

    需求:类比数组类,只不过数组类型不再是整型.浮点型等,也可以是类. 1.创建模板类 头文件 #ifndef MYVECTOR_H #define MYVECTOR_H #include <ios ...

  4. MongoDB-副本集搭建与管理

    目录 MongoDB 副本集 一.副本集概念 二.副本集部署 三 .副本集维护 四.注意事项 MongoDB 副本集 一.副本集概念 单节点的 MongoDB 在数据的安全和冗余方面是比较低的,在生产 ...

  5. Spring Framework简介

    作者关于此主题早期文章 Spring框架快速入门 起源 要谈Spring的历史,就要先谈J2EE.J2EE应用程序的广泛实现是在1999年和2000年开始的,它的出现带来了诸如事务管理之类的核心中间层 ...

  6. python 浅析格式化输出和深浅copy

    一,格式化输出 今天主要想记录一下关于格式化输出的例子,然后结合了自己的理解,分析如下: 格式是 :百分号+占位符 主要有三种使用形式:%s  (其中s表示string)表示字符串 %d  (其中d表 ...

  7. 经典面试题SALES TAXES思路分析和源码分享

    题目: SALES TAXES Basic sales tax is applicable at a rate of 10% on all goods, except books, food, and ...

  8. DenseNet 论文阅读笔记

    Densely Connected Convolutional Networks 原文链接 摘要 研究表明,如果卷积网络在接近输入和接近输出地层之间包含较短地连接,那么,该网络可以显著地加深,变得更精 ...

  9. springboot + freemarker 实现国际化

    前言 写过一篇springboot+freemarker国际化过程中的细节问题,但没有写过具体的国际化实现过程.正好有人在问,我就把我实现的过程贴出来,即使自己知识的一个备份,如果对别人有点用,那是再 ...

  10. JavaWeb学习 (十六)————JSP中的九个内置对象

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...