(2)LVS原理(择自网络)
VS/NAT:
即virutal server via network address,网络地址转换实现虚拟服务器。当客户端请求到达负载调度器时,调度器将请求报文的目的地址改写成选定的realserver地址,同时将报文目标端口也改写成realserver相应端口,然后将报文请求发送到realserver。realserver处理客户端报文请求,将数据返回给客户端时,会再次经过调度器,调度器将报文源地址和端口改写成虚拟IP和相应端口,然后将数据发送给客户端。NAT方式需要经过两次地址转换,vip(公网地址)-->realserver_ip(私网ip)和realserver-->vip。做NAT是非常耗资源的,一般整个集群系统瓶颈会出现在负载调度器上面。
优点:集群系统物理服务器可以使用任何支持TCP/IP操作系统,只有负载调度器需要一个合法IP(公网IP),realserver可以是windows,也可以是linux和bsd.
缺点:扩展性有限。因为所有流量都需要经过负载调度器,所以随着realserver节点和客户端请求增加,负载调度器会出现无法处理过来甚至down机情况。
VS/TUN:
virtual server via ip tunneling,IP隧道技术实现虚拟服务器。这种方式的连接调度和管理与NAT一样,不同之处在于报文转发不同。客户端报文请求到达负载调度器,负载调度器使用IP隧道技术进行封装,然后转发到realserver,realserver对数据进行解封装,直接将请求数据发送到客户端。整个过程无需IP转换,只需要IP封装和解封装。
优点:扩展性非常强。集群系统物理服务器可以使用任何支持TCP/IP操作系统。负载高度器只需要对客户端请求进行封装转发,realserver直接回应客户端,回应数据不需要再次经过负载调度器,所以瓶颈不会出现在负载调度器,另外realserver不要求同处一个LAN,开销小性能强。
缺点:所有系统必需支持IP隧道协议,负载调度器和realserver节点需要有合法IP(公网IP)
VS/DR:
virtual server via direct routing,直接路由技术实现虚拟服务器。连接调度和管理方式也前两种相同,只是报文转发不同。VS/DR模式负载调度器只改写请求报文MAC地址,将MAC改写成realserver的MAC地址,然后转发给选定的realserver,realserver直接回应客户端,免去IP隧道开销,瓶颈同样不会出现在负载调度器。
优点:扩展性强。集群系统物理服务器可以使用任何支持TCP/IP操作系统,包括windows、linux和bsd等。瓶颈不会出现在负载调度器,开销最小性能最强。
缺点:负载调度器和realserver必需同处一个LAN,负载调度器和realserver节点需要有合法IP(公网IP)。
性能:VS/DR>VS/TUN>VS/NAT
扩展:VS/DR>=VS/TUN>VS/NAT
不常用的负载调度算法:
基于局部性最少连接调度(Locality-Based Least Connections)、带复制的基于局部性最少连接调度(Locality-Based Least Connections with-apr Replication)、目标地址散列(Destination Hashing)、源地址散列(Source Hashing)
(5)Keepalived源码安装
#OpenSSL is not properly installed on your system.
#先安装openssl和openssl-devel,再安装keepalived
#指定安装到/usr/local/keepalived
yum -y install openssl openssl-devel
./configure --sysconfdir=/etc --with-kernel-dir=/usr/src/kernels/2.6.32-504.16.2.el6.x86_64/ --prefix=/usr/local/keepalived/
make && make install
ln -s /usr/local/keepalived/sbin/keepalived