具体解释参考:http://www.linuxvirtualserver.org/zh/lvs4.html
基于LVS+Keepalived实现的LVS群集结构中,至少包括两台热备的负载调度器,两台以上的节点服务器,以DR模式的LVS群集为基础,增加一台从负载调度器,使用Keepalived来实现主、从调度器的热备,从而构建建有负载均衡、高可用两种能力的LVS网站群集平台。IPVS实现负载均衡机制有三种: VS/TUN :即(Virtual Server via IP Tunneling) 也就是IP隧道技术实现虚拟服务器。它的连接调度和管理与VS/NAT方式一样,只是它的报文转发方法不同,VS/TUN方式中,调度器采用IP隧道技术将用户请求转发到某个Real Server,而这个Real Server将直接响应用户的请求,不再经过前端调度器,此外,对Real Server的地域位置没有要求,可以和Director Server位于同一个网段,也可以是独立的一个网络。因此,在TUN方式中,调度器将只处理用户的报文请求,集群系统的吞吐量大大提高。NAT(Network Address Translation)是一种外网和内网地址映射的技术。NAT模式下, 网络数据报的进出都要经过LVS的处理。LVS需要作为RS(真实服务器)的网关。当包到达LVS时,LVS做目标地址转换(DNAT),将目标IP改为 RS的IP。RS接收到包以后,仿佛是客户端直接发给它的一样。RS处理完,返回响应时,源IP是RS IP,目标IP是客户端的IP。这时RS的包通过网关(LVS)中转,LVS会做源地址转换(SNAT),将包的源地址改为VIP,这样,这个包对客户端 看起来就仿佛是LVS直接返回给它的。客户端无法感知到后端RS的存在。
VS/DR: 即(Virtual Server via Direct Routing) 也就是用直接路由技术实现虚拟服务器。它的连接调度 和管理与VS/NAT和VS/TUN中的一样,但它的报文转发方法又有不同,VS/DR通过改写请求报文的MAC地址,将请求发送到Real Server,而Real Server将响应直接返回给客户,免去了VS/TUN中的IP隧道开销。这种方式是三种负载调度机制中性能最高最好的,但是必须要求Director Server与Real Server都有一块网卡连在同一物理网段上。
lvs支持8种不同的调度算法:
轮叫调度(Round-Robin Scheduling)加权轮叫调度(Weighted Round-Robin Scheduling)最小连接调度(Least-Connection Scheduling)加权最小连接调度(Weighted Least-Connection Scheduling)基于局部性的最少链接(Locality-Based Least Connections Scheduling)带复制的基于局部性最少链接(Locality-Based Least Connections with Replication Scheduling)目标地址散列调度(Destination Hashing Scheduling)源地址散列调度(Source Hashing Scheduling)通过LVS+Keepalived构建的LVS集群,LVS负载均衡用户请求到后端RS服务器,Keepalived的作用是检测web服务器的状态,如果有一台RS 服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。keepalived可以实现服务的高可用或热备,用来防止单点故障的问题;而Keepalived的核心VRRP协议,VRRP协议主要实现了在路由器或三层交换机处的冗余;Keepalived就是使用VRRP协议来实现高可用的;Keepalived启动后会有三个进程: 父进程:内存管理,子进程管理 子进程:VRRP子进程 子进程:healthchecker子进程高可用集群构建前提:1.proxy和proxy2节点时间必须同步;192.168.12.92 lvs-slave192.168.12.38 lvs-master192.168.12.22 lvs-web2 b192.168.12.25 lvs-web1 a192.168.12.230 vip(1)本次基于VMware Workstation搭建一个四台Linux(CentOS 6.6)系统所构成的一个服务器集群,其中两台负载均衡服务器(一台为主机,另一台为备机),另外两台作为真实的Web服务器(2)本次实验基于DR负载均衡模式,设置了一个VIP(Virtual IP)为192.168.12.230,用户只需要访问这个IP地址即可获得网页服务。其中,负载均衡主机为192.168.12.38,备机为192.168.12.92。Web服务器A为192.168.12.25,Web服务器B为192.168.80.22一、1)将机器绑定ip地址vi /etc/sysconfig/network-scripts/ifcfg-eth0ONBOOT=yesBOOTPROTO=staticIPADDR=192.168.12.22NETMASK=255.255.255.0GATEWAY=192.168.12.1DNS1=114.114.114.114DNS2=202.106.0.20或者用setup命令更改2)设定主机名hostname XXXvi /etc/sysconfig/network3)IP地址与主机名绑定 vi /etc/hosts192.168.12.92 lvs-slave192.168.12.6 lvs-master192.168.12.22 lvs-web2192.168.12.25 lvs-web1#在Master与Backup服务器上分别安装Ipvsadm、Keepalivedyum install -y ipvsadm kernel-devel perl perl-DBI perl-DBD-MySQL make gcc openssl-devel libnl*yum install -y keepalived ipvsadm#这里安装Ipvsadm工具主要是为了查看lvs规则使用chkconfig --add keepalivedchkconfig keepalived onchkconfig --list keepalived内核优化 主要是开启内核转发vi /etc/sysctl.conf#———————————————————————————————————————————-net.ipv4.tcp_syncookies = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_fin_timeout = 30net.ipv4.tcp_keepalive_time = 1200net.ipv4.ip_local_port_range = 1024 65000net.ipv4.tcp_max_syn_backlog = 8192net.ipv4.tcp_max_tw_buckets = 5000net.core.somaxconn = 32768net.ipv4.tcp_keepalive_probes = 5net.ipv4.tcp_keepalive_intvl = 20net.core.wmem_default = 8388608net.core.rmem_default = 8388608net.core.rmem_max = 16777216net.core.wmem_max = 16777216net.ipv4.tcp_rmem = 4096 87380 16777216net.ipv4.tcp_wmem = 4096 65536 16777216net.core.netdev_max_backlog = 32768net.ipv4.tcp_timestamps = 0net.ipv4.tcp_synack_retries = 2net.ipv4.tcp_syn_retries = 2net.ipv4.tcp_retries2 = 5net.ipv4.tcp_mem = 41943040 73400320 94371840net.ipv4.tcp_max_orphans = 3276800fs.file-max = 1300000#LVS虚拟服务器(VIP)忽略ARP广播包net.ipv4.ip_forward= 1net.ipv4.conf.lo.arp_ignore= 1net.ipv4.conf.lo.arp_announce= 2net.ipv4.conf.all.arp_ignore= 1net.ipv4.conf.all.arp_announce= 2配置备负载服务器 192.168.12.38cat /etc/keepalived/keepalived.conf ! Configuration File for keepalivedglobal_defs { notification_email { zclzhao@admin.com 发生故障时发送的邮箱 } notification_email_from admin@admin.com 使用哪个邮箱发送 smtp_server 192.168.12.1 发件服务器 smtp_connect_timeout 30 router_id LVS_DEVEL}vrrp_instance VI_1 { state BACKUP 指定keepalived的角色,MASTER为主,BACKUP为备 interface eth1 指定网络接口 virtual_router_id 5 虚拟路由编号,主备要一致 priority 99 定义优先级,数字越大,优先级越高,主DR必须大于备用DR advert_int 1 检查间隔,默认为1S authentication { 定义认证 auth_type PASS 认证方式为口令认证 auth_pass 1111 认证口令 } virtual_ipaddress { 定义vip 192.168.12.230 多个vip可以换行添加 }}virtual_server 192.168.12.230 80 { delay_loop 6 每隔6秒查看realserver状态 lb_algo wrr 调度算法为加权最小连接数 lb_kind DR lvs工作模式为DR(直接路由)模式 nat_mask 255.255.255.0 persistence_timeout 0 同一IP的连接0秒内分配到同一台realserver (这个0根据实际环境更改) protocol TCP 用TCp检测realserver的状态 real_server 192.168.12.22 80{ 定义realserver weight 3 定义权重 TCP_CHECK { 注意TCP_CHECK和{之间的空格,如果没有的话只会添加第一个realserver} connect_port 80 connect_timeout 10 10秒无反应超时 nb_get_retry 3 delay_before_retry 3 }} real_server 192.168.12.25 80 { weight 3 TCP_CHECK { connect_port 80 connect_timeout 10 nb_get_retry 3 delay_before_retry 3 } }}配置主lvs的keepalived,只需要将state BACKUP 改为state MASTER,将priority 99 的值改成100配置两台web 192.168.12.22操作cat /etc/init.d/realserverSNS_VIP=192.168.12.230 定义虚拟ip. /etc/rc.d/init.d/functions 调用init.d脚本的标准库case "$1" instart) ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP /sbin/route add -host $SNS_VIP dev lo:0 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 sysctl -p >/dev/null 2>&1 echo "RealServer Start OK" ;;stop) ifconfig lo:0 down route del $SNS_VIP >/dev/null 2>&1 echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce echo "RealServer Stoped" ;;*) echo "Usage: $0 {start|stop}" exit 1esacexit 0chmod 755 /etc/init.d/realserverservice realserver start将realserver启动脚本考到192.168.12.25/etc/init.d/下scp /etc/init.d/realserver root@192.168.12.22:/etc/init.d/realserver验证测试指定请求的均衡转发:因为两个Web服务器的权重都一样,所以会依次转发给两个Web服务器;
转载于:https://www.cnblogs.com/zclzhao/p/4938488.html
