lvs之fullnat与pacemaker的构建
实验环境:rhel6.5lvs中的常用术语约定
主机相关:
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]