设为首页 收藏本站
查看: 774|回复: 0

[经验分享] LVS详细介绍,配置,用法

[复制链接]

尚未签到

发表于 2019-1-3 09:13:54 | 显示全部楼层 |阅读模式
  1. 做一个靠谱,被信任的人。
  2. 自身小事做起,勤奋,努力的态度,不计较,不抱怨,好习惯当下做起
  3. 不要自我感觉
  4. 把你"所有"的精力集中到一点,你就能成功
  5,集中自己的所有时间去学习
  

  ARP协议:通过ip地址获得主机物理mac地址
  

  32 bit的ip地址
  48 bit的mac地址
  ARP原理:
  原理是把目的主机的32位ip地址转换成目的主机48位的以太网地址(mac地址)
  ip地址是逻辑地址,而主机之间的通信是通过物理的mac地址通信的
  ARP协议要求通信的主机双方必须在同一网段(即局域网环境)
  arp缓存表是把双刃剑
  1,有arp缓存表可以加快arp的解析速度
  2,也给***带来了***服务器的风险,俗称arp欺骗和arp***
  

  OSI模型把网络划分成7层,隔层之间不直接打交道,都是通过api调用。
  ip地址工作在三层,mac地址在二层
  

  ARP是三层协议,但是工作在二层
  

  

  ARP欺骗原理
  arp***就是通过伪造ip地址和mac地址对实现arp欺骗。
  

  如何防止:
  arp -s  192.168.0.11  mac
  

  集群:一堆计算机依靠网络协同工作就是集群
  

  java架构师:
  java服务集群
  j2ee程序架构
  JVM底层
  tomcat、java打包
  程序解耦(程序设计,调优,java流程)
  

  

  为什么要用集群??
  性能,可用性,伸缩性,扩展性,安全
  1.高性能(performance) 评价一个网站好坏的直接感触
  2,价格有效性  ,小型机(IBM)特贵
  3.高可用性  7*24运行  availability
  4.可伸缩性  可动态添加新机器  scalability 数据库的伸缩很困难
  

  

  集群的分类:
  1.LB    负载均衡集群
  2.HA    高可用性集群
  3.高性能计算
  4.网格计算
  

  负载均衡的作用:
  (1):分担请求和数据流量,从而增加吞吐量,并发量
  (2):保证集群的7*24小时服务
  (3):用于web服务器,数据库的从
  

  典型负载均衡软件:  lvs,F5 (4 osi) nginx (7osi) haproxy(4+7osi)
  典型的高可用软件:  keepalived heratbeat
  互联网商业集群硬件:F5 ,netscaler redware.A10
  

  

  

  

  LVS:linux virtural server
  LVS:
  1,真正实现负载均衡功能的是ipvs
  2,ipvs工作在内核层,实现调度,不能直接访问
  3,ipvsadm 管理ipvs,或者用keepalived来管理ipvs
  

  LVS 专业术语:
  VIP :虚拟ip地址  virtural ip address  用于给客户端计算机提供服务的ip地址
  RIP:real ip,集群下面节点使用的ip地址,物理ip地址
  DIP:director ip 用于连接内外网络的ip,物理网卡上的ip地址,他是负载均衡器上的ip
  CIP:client ip 客户端用户计算机请求集群服务器的ip地址,该地址用作发送给集群的请求的源ip地址
  

  

  在LVS框架中,提供了含有三种IP负载均衡技术的IP虚拟服务器软件:
  IP虚拟服务器软件IPVS
  基于内容请求分发的内核Layer-7交换机 KTCPVS
  集群管理软件
  

  在已有的IP负载均衡技术中,IPVS软件实现了这三种IP负载均衡技术
  LVS三种模式:
  1,NAT()
  2,TUN(TUNNELING)
  3,DR(DIRECT ROUTING)
  4,FULLNAT
  

  

  目前最流行的模式DR熟练使用
  特点:改写请求报文的目标mac地址,将请求转发给真实服务器,而真实服务器将响应后的处理直接返回给客户端使用.
  此DR模式没有ip隧道的开销,对集群的真实服务器也没有必须支持ip隧道协议的要求
  DR模式要求调度器LB与真实服务器RS都有一块网卡连接在同一物理网段上,即必须在同一个局域网环境
  

  

  

  DR模式 :
  工作原理:
  关键点:
  1,绑定vip到lo,避免了ip冲突问题,解决了Real server 无法识别client的报文问题
  

  2,绑定vip会主动响应arp广播,因此要抑制arp,告诉real server 不要抢lvs的arp包,只接收包
  

  能顺利说出秒杀5-12K左右
  

  

  DR模式的总结
  1,通过在调度器LB上修改数据包的目的mac地址实现转发,,注意 ,源ip仍然是cip,目的ip地址仍然是VIP
  2,请求的报文经过调度器而RS响应处理后的报文无需经过调度器LB,直接返回给客户端因此,并发访问量大时候效率很高
  3,因DR模式是通过MAC地址的改写机制实现的转发,因此所有RS节点和调度器LB只能在一个局域网LAN中(小缺点)
  4,需要注意RS节点的vip的绑定(lo:vip.lol:vip)和arp抑制问题
  5,强调:RS节点的默认网关不需要调度器LB的DIP,而直接是IDC机房分配的上级路由器的IP(这是RS带有外网ip地址的情况)
  6,由于DR模式的调度器仅仅进行了目的MAC地址改写,因此,调度器LB无法改变请求报文的目的端口
  7,当前调度器LB支持几乎所有的unix linux系统,但目前不支持windows,但是真实的RS可以是windows.
  8.总的来说,DR模式效率很高,但是配置麻烦,因此,访问量不大的公司可以使用haproxy、nginx,这符合运维的原则:简单,易用,高效 日PV2000W,并发1W以下使用haproxy,nginx(lvs NAT模式)就好
  9,直接对外的访问业务,例如web服务做RS节点,RS最好用公网ip地址(直接把请求返回给用户),如果不直接对外业务,例如mysql,存储系统,最好使用内部ip地址
  

  

  NAT模式:了解即可,工作中基本使用DR模式
  

  总结:
  1,NAT技术将请求的报文(DNAT)和响应的报文(SNAT),通过调度器地址重写然后转发给内部的服务器。报文返回时候改写成原来的用户请求的地址
  2,只需啊哟在调度器LB上配置WAN公网ip即可,调度器也要有似有LAN ip和内部RS节点通
  信
  3,每台内部RS节点的网关地址,必须配置成调度器LB的私有LAN内物理网卡地址
  。
  。
  。
  省略
  

  

  

  IPVS调度器实现了如下十种负载调度算法:LVS调度算法
  10种调度算法
  固定调度算法:rr,wrr,dh,sh
  动态调度算法:wlc,lc,lblc,lblcr,SED,NQ.
  最常用的三种RR WRR WLC
  10种调度算法见下表:
  rr :轮询调度,他将请求依次分配不同的RS节点,RS服务器均摊请求,这种算法比较简单,但是只适合RS节点相差性能不大的情况
  wrr:加权轮询调度,它将依据不同RS节点的权值分配任务,权值高的RS将优先获得任务,并且分配的连接数比权值低的RS节点更多。相同权值的RS得到相同数目的连接数
  dh:destination hashing 以目的地址为关键字查找一个静态hash表来获取需要的RS
  sh:source hashing 以源地址为关键字查找一个静态hash表来获取需要的RS
  

  动态调度算法:
  

  wlc:加权最小连接数调度(weighted least-connection)假设各台RS的权值依次为Wi(i=1...n) 。当前的tcp连接数依次为Ti(i=1..n),依次取TI/WI为最小的RS作为下一个分配的RS
  LC
  LBLC
  LBLCR
  SED
  NQ    都不常用
  

  LVS调度算法的生产环境选型
  一般的网络服务http mail mysql 常用的调度算法是rr,wrr wlc
  

  LVS集群的特点

  LVS集群的特点可以归结如下:
  

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

  适用性
  后端服务器可运行任何支持TCP/IP的操作系统,包括Linux,各种Unix(如FreeBSD、Sun Solaris、HP Unix等),Mac/OS和Windows NT/2000等。
  负载调度器能够支持绝大多数的TCP和UDP协议:
  协议内 容
  TCPHTTP,FTP,PROXY,SMTP,POP3,IMAP4,DNS,LDAP,HTTPS,SSMTP等
  UDPDNS,NTP,ICP,视频、音频流播放协议等
  无需对客户机和服务器作任何修改,可适用大多数Internet服务。
  

  性能
  LVS服务器集群系统具有良好的伸缩性,可支持几百万个并发连接。配置100M网卡,采用VS/TUN或VS/DR调度技术,集群系统的吞吐量可高达1Gbits/s;如配置千兆网卡,则系统的最大吞吐量可接近10Gbits/s。
  

  可靠性
  LVS服务器集群软件已经在很多大型的、关键性的站点得到很好的应用,所以它的可靠性在真实应用得到很好的证实。有很多调度器运行一年多,未作一次重启动。
  

  软件许可证
  LVS集群软件是按GPL(GNU Public License)许可证发行的自由软件,这意味着你可以得到软件的源代码,有权对其进行修改,但必须保证你的修改也是以GPL方式发行。
  

  官方资料
  LVS项目介绍:http://www.linuxvirtualserver.org/zh/lvs1.html
  LVS集群的体系结构http://www.linuxvirtualserver.org/zh/lvs2.html
  LVS集群中ip负载均衡技术http://www.linuxvirtualserver.org/zh/lvs3.html
  LVS负载调度http://www.linuxvirtualserver.org/zh/lvs4.html
  

  

  

  开始安装安装LVS
  1
  

  

  

  LVS安装小结:
  1,centos 5.x 安装lvs,使用1.24版本,不要用1.2.6
  2.centos6.x  安装1.26版本,并且先安装 yum install libnl*  popt* -y
  3.安装LVS后,要执行ipvsadm把ip_vs模块加载到内核
  

  

  手动配置LVS负载均衡服务,方便加深影响
1, 解析vip到域名www.xxxx.com   192.168.0.200
2,  配置LVS虚拟ip(vip)
   ifconfig eth1:0 192.168.0.200/24
3.手动执行配置添加LVS服务增加两台RS
ipvsadm -C   clear teh whole table
ipvsadm --set 30 5 60 set tcp tcpfin udp timeout
ipvsadm -A -t vip:80 -s rr            
(add virtual service with options  -s 调度算法)
ipvsadm -a -t vip:80 -r 192.168.0.221  -g      
(-a: add real server with options)
(-g: gatewaying (direct routing) (default) LVS模式)
ipvsadm -a -t 192.168.200:80 -r 192.168.0.221 -g -w 1
ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.222 -g -w 1
[root@localhost ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.0.200:80 rr
  -> 192.168.0.221:80             Route   1      0          0         
  -> 192.168.0.222:80             Route   1      0          0  删除节点和服务:
  

1.删除节点
[root@localhost ~]# ipvsadm -d -t 192.168.0.200:80 -r 192.168.0.222   删除节点
[root@localhost ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.0.200:80 rr
  -> 192.168.0.221:80             Route   1    0      0  
2.删除服务
ipvsadm -D -t vip:80
此时还无法通过vip访问到web
3.手工在RS端绑定
(1),每台RS端都执行以下步骤
(2), 绑定vip到lo
ifconfig lo:0 vip/32   --注意此时的mask是32位
[root@localhost ~]# ifconfig lo:0 192.168.0.200/32
lo:0        Link encap:Local Loopback  
          inet addr:192.168.0.200  Mask:0.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
[root@localhost ~]# route add -host  192.168.0.200 dev lo 添加主机路由
[root@localhost ~]#  route -n
Kernel IP routing table
Destination    Gateway  Genmask   Flags Metric Ref    Use Iface
192.168.0.200   0.0.0.0  255.255.255.255 UH   0   0    0 lo
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
4.手工在RS端抑制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技术参数
  arp_ignore
  1,表示只回答目标ip地址是来访问网络接口本地地址的arp查询请求
  arp_announce :对网络接口上,本地ip地址的发出的arp回应,做出相应级别的限制
  2,表示对查询目标使用最适当的本地地址,在此模式将忽略这个ip数据包的源地址
  

  

  

  以上都是临时配置,重启失效,因为下篇文章会介绍配置文件+keepalived形式
  

  ###################LVS集群分发请求RS不均衡生产环境实战解决
  生产环境中ipvsadm -L -n 发现两台RS负载不均衡,一台有很多请求,一台没有。经过测试发现没有请求的RS服务正常,lo:vip 也有,但是就是没有请求
tcp 172.168.1.50:3307 wrr presient 10
172.168.1.51:3307   route 1 0   0
172.168.1.52:3307   route 1 8  12758  

  问题原因:
  persistent 10的原因,persistent会话保持,当clientA 访问网站的时候,LVS分发给了52.,那么ClientA 再点击其他的操作请求,也会发送给52这台机器
  解决办法:
  到keepalived中注释掉persistent 10 然后/etc/init.d/keepalived reload  然后两边负载都会均衡
  

  实现会话保持的方案:
  http://oldboy.blog.运维网.com/2561410/1331316
  

  

  ############LVS故障排错原理
  

  1,把绑定的vip做成lo配置文件(ifcfg-lo)
  

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-658838-1-1.html 上篇帖子: LVS DR模式 下篇帖子: LVS集群应用配置详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表