高并发负载均衡:网络协议原理(三)

一、LVS负载均衡搭建(linux virtual server)(DR模型)

  LVS是一个虚拟的服务器集群系统

  1. 补充知识:
      /proc目录下的文件只能echo覆盖,不能vi打开,因为vi相当于office,打开一个文件的同时会创建一个虚拟的文件。
    高并发负载均衡:网络协议原理(三)_第1张图片
    高并发负载均衡:网络协议原理(三)_第2张图片
      一块物理网卡上可以设置多个虚拟IP地址。
    1)上上图中两份协议:
      ①响应级别:
        默认都是0,外面不知道几个网卡啥的,内部大家互相之间都知道,这就叫对外隐藏,对内可见的隐藏VIP方法。
        0:代表只要客户端请求任意一块网卡上的IP,就全部响应(你对着网卡1说我要2卡,也会响应)
        1:代表客户端问到对应的网卡的IP上才会响应(你问1说要2,不知道)
      ②通告级别:
        0:通上电就把全部卡的全部IP全发出去
        1:你问对应的卡的IP才告诉响应
        2:因为一张卡上可以有多个IP,假设卡1有两个IP,卡2有一个,卡1有一个公开的IP,一个隐藏IP(这个IP可能是与别的网络通信的,不是你的这个网络),卡2是公开的IP,你问1的时候会告诉1的公开IP,隐藏IP不会说,问卡1说找卡2,无可奉告
    2)网卡
    高并发负载均衡:网络协议原理(三)_第3张图片
      上图中lo为本机的虚拟网卡,etho为物理网卡,物理网卡插在主板上,虚拟网卡是在内核中分配的空间接口,ip为localhost也就是127.0.0.1,本机的tomcat上面的页面想测试,打开浏览器输入localhost:8080,数据发到内核中发现是LO的网卡的IP是本机所以直接返回去找tomcat对应端口,根本不走虚拟网卡,而虚拟网卡也不知道。
    隐藏VIP的实现:在内核的LO接口中再新增一个VIP,更改两份协议的参数(不告诉别人)。
    3)
    高并发负载均衡:网络协议原理(三)_第4张图片
  2. 搭建
    高并发负载均衡:网络协议原理(三)_第5张图片
      现在的Linux系统的内核中默认自带LVS负载均衡模块,叫IPVS内核模块(所以不需要安装什么模块,只需要安装一个和这个内核模块交互的接口,ipvsadm,用户空间的软件)
    高并发负载均衡:网络协议原理(三)_第6张图片
      以上为搭建步骤
  3. 实验手册
    高并发负载均衡:网络协议原理(三)_第7张图片
     步骤:
    1)在node01中(作为LVS负载均衡服务器)
      ifconfig eth0:8 192.168.150.100/24 配置eth0网卡的2子接口虚拟地址为192.168.150.100,/24代表三个255一个0,因为一个255代表8个1,所以3*8的1,为24,设置子网掩码255.255.255.0。
      上面是简写,全写为:
      ifconfig eth0:8 192.168.150.100 netmask 255.255.255.0
      ifconfig etho:8 down为撤销删除
    2)在node02中(先改内核,然后配置VIP,因为VIP需要隐藏,防止直接发送了)
      cd /proc/sys/net/ipv4/conf/
      cd eth0
    高并发负载均衡:网络协议原理(三)_第8张图片
      cat arp_ignore
      echo 1 > arp_ignore
      cat arp_ignore
      echo 2 > arp_announce
      cat arp_announce
    高并发负载均衡:网络协议原理(三)_第9张图片
      cd …
      cd all
      echo 1 > arp_ignore
      echo 2 > arp_announce
      ifconfig lo:2 192.168.150.100 netmask 255.255.255.255 (这步不能简写!配置IP)
    3)在node03中(同上)
      echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
      echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
      echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
      echo 2 > /pro/sys/net/ipv4/conf/all/arp_announce
      ifconfig lo:8 192.168.150.100 netmask 255.255.255.255
      到目前为止网络层搭建结束
    4)在node02和node03中,搭建RIP
      安装httpd
      yum install httpd -y(是一个静态的webserver,类似tomcat,重启后会失效)
      service http start (启动httpd,默认为80端口)
      vi /var/www/html/index.html:
      from 192.168.150.1x(node02中就是192.168.150.12,自己的IP)保存
      windows的浏览器中(写不写:80都一样,默认80端口):
    高并发负载均衡:网络协议原理(三)_第10张图片
    高并发负载均衡:网络协议原理(三)_第11张图片
    5)在node01中(安装LVS模块调用工具):
      ipvsadm工具的使用在上文中有个图进行了详细说明
      yum install ipvsadm -y
      ipvsadm -A -t 192.168.150.100:90 -s rr
      ipvsadm -ln (查看配置了的入口调度,rr代表轮询的)
    高并发负载均衡:网络协议原理(三)_第12张图片
      ipvsadm -a -t 192.168.150.100:80 -r 192.168.150.12 -g -w l
      ipvsadm -ln 查看一下
      ipvsadm -a -t 192.168.150.100:80 -r 192.168.150.13 -g -w l
      ipvsadm -ln 查看一下
    高并发负载均衡:网络协议原理(三)_第13张图片
      如图已经负载均衡了
    验证:
      浏览器还是192.168.150.100,不断刷新发现html页面上的文字是两台server不同发出的,每次请求不一定是一台。
    高并发负载均衡:网络协议原理(三)_第14张图片
      看跟lvs是否握手了:
       netstat -natp
    高并发负载均衡:网络协议原理(三)_第15张图片
      结论:看不到socket连接
      在node02中看是否握手:
       netstat -natp
    高并发负载均衡:网络协议原理(三)_第16张图片
      出现socket连接,每次随机端口
      在node01中:
       ipvsadm -lnc 查看lvs服务器偷窥的连接
    高并发负载均衡:网络协议原理(三)_第17张图片
    图解:
      pro:协议
      expire:事件
      state:FIN_WAIT(四次分手之后随机等待一会),若为SYN_RECV则是发现了发来的数据包、回去的数据包,再次确认的包没收到 (这种情况基本上lvs都记录了,证明lvs没事,网络层出问题了,比如到了现在这样给ifconfig lo:2 down了,就会出现SYN_RECV)
      source:浏览器的源地址
      virtual:访问的那个规则
      destination:负载到哪

你可能感兴趣的:(高并发负载均衡:网络协议原理(三))