nihaogirl 发表于 2019-1-3 10:12:56

lvs之fullnat与pacemaker的构建

  实验环境:rhel6.5
  

  lvs中的常用术语约定
  主机相关:
  Director:调度器
  Real Server:RS,后端真正提供服务的主机。
  IP地址相关:
  Client:CIP,客户端IP
  Director Virtual IP:VIP,调度器面向客户端的IP。由于调度器会成为单点,因此需要对调度器做高可用。由此,如果A调度器故障了,此地址是要转移到B调度器上的。
  Director IP:DIP,调度器面向后端的IP
  Real IP:RIP,后端服务器的IP
  fullnat无非就是nat,但DIP和RIP之间可以经过路由进行转发。当请求到来时,源目IP分别为CIP和VIP。到达调度器后,还是由ipvs挑选一台主机,但由于DIP和RIP并不在同一个网段,所以ipvs会将请求的报文源目IP分别改为DIP和RIP。RS收到报文后,就会将响应报文发给DIP,这是毋庸置疑的。调度器在收到报文,通过在内部追踪nat表以后,将响应报文的源目IP分别改为VIP和CIP,于是报文就发给客户端。这种源目IP都进行修改的LVS类型就是fullnat。
   http://s5.运维网.com/wyfs02/M01/83/19/wKiom1dqy6Tihln8AAF0aO-onOo773.png-wh_500x0-wm_3-wmp_4-s_4199896626.png
  总结:通过请求报文的源地址为DIP,目标为RIP来实现转发。对于响应报文而言,修改源地址为VIP,目标地址为CIP来实现转发。
  
  此架构能扛住每秒20W的并发,如果对并发要求不是特别的高,但又希望使用更复杂的内网模型,fullnat是一个不错的选择。但内核不支持fullnat,要从内核编译,因此安装时间不短。
  一.fullnat模式构建
  下载安装kernel包
  #rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm
  #yum install -y rpm-build rng-tools
  #rngd -r /dev/urandom//加快编译速度
  #cd ~/rpmbuild/SPECS
  #rpmbuild -bp kernel.spec   //解开源码包并打补丁,即只做准备
  
  这时会提示缺很多组件,安装之。
  #rpmbuild -bp kernel.spec
  #cd ~/rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6
  #tar zxf Lvs-fullnat-synproxy.tar.gz
  #cd lvs-fullnat-synproxy
  #cp lvs-2.6.32-220.23.1.el6.patch ../linux-2.6.32-220.23.1.el6.x86_64/
  #cd linux-2.6.32-220.23.1.el6.x86_64/
  #yum install -y patch
  #vim .config
  将CONFIG_OUTPUT_FORMAT改为“elf64-x86_64”
  将CONFIG_ARCH_DEFCONFIG=”arch/x86/configs/x86_64_defconfig”
  #vim Makefile
  将EXTRAVERSION改为-220.23.1.el6
  #patch -p1
页: [1]
查看完整版本: lvs之fullnat与pacemaker的构建