请通过浏览器功能收藏网页

LVS DR直接路由模式 负载均衡配置(感觉优于IP隧道模式) Linux

发布时间:2020-05-21 18:29:20  作者:本站编辑  来源:本站原创  浏览次数:
我有话说 | 分享 |
www.javainfo.com.cn 上干货 欢迎收藏

LVS 采用IP负载技术 是目前最牛逼的软负载,其功能已经集成到Linux内核

  LVS负载的特点: 无单点故障 , web服务器自动维护(死机剔除服务队列,重启后 加入服务队列)

                              LVS主机与备机 始终有一个提供服务



检查系统配置

  uname -a  #查看系统内核版本  达到2.6及以上 


搭建测试环境:

 虚拟机 四台: 

     192.168.2.210  LVS主机

     192.168.2.211  lvs备机

     192.168.2.221  HTTP server1

     192.168.2.223  HTTP server2

 系统采用: centos 6.10 X64位系统


开始搭建:

   1) 搭建HTTP服务器(2.221  2.223)   

        安装 apache 服务器 httpd

         yum -y install httpd httpd-devel

        安装完毕,修改server主页

         touch /var/www/html/index.html

         vi /var/www/html/index.html    #分别加入内容  11111 ,22222

        启动服务:

        service httpd start   #ok 启动成功, 通过局域网IP访问各自主机的首页

        至此, 两天服务器搭建完毕

  2)  开始搭建 负载均衡服务

        一)两台httpd服务(2.221 ,  2.223)搭建本机回调服务

              touch /etc/init.d/rserver

              vi /etc/init.d/rserver     #加入如下内容

                -----------------------------------------

                    # chkconfig: 2345 10 90                     
                    # description: realserver ....
                    SNS_VIP=192.168.2.224     #这个IP是当前局域网的某个未占用的IP,也是LVS主机的虚拟IP
                    . /etc/rc.d/init.d/functions
                    case "$1" in
                    start)
                    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 1
                    esac
                    exit 0

                --------------------------------------

                  创建文件后,将脚本作为服务器启动(并设置为自启)

                  保存退出后,rserver文件为普通文件,无法启动,需要附权X

                  chmod +x /etc/init.d/rserver

                  //附加到服务   并自启

                   chkconfig rserver on 

                   server rserver start    #启动轮回地址广播服务

                   ifconfig  #查看轮回广播是否启动

              二) 创建LVS服务 (2.210)

                        yum install -y keepalived     #  在线安装 keepalived                        

                        /etc/keepalived/keepalived.conf   #配置文件位置 rpm -ql keepalived 查找

                        修改keepalived.conf文件 内容为 如下内容:

            global_defs { 
            	router_id LVS_DEVEL             
            }
            vrrp_instance VI_1 {            
            	state MASTER      #主机         
            	interface eth0            
            	virtual_router_id 51        
            	priority 100    #主机优先级要 高于备机              
            	advert_int 1           
            	authentication {        
            		auth_type PASS
            		auth_pass 1111
            	}
            	virtual_ipaddress {         
            		192.168.2.224    #虚拟IP  局域网内 未使用的IP
            	}
            }
            virtual_server 192.168.2.224 80 {
            	delay_loop 6           
            	lb_algo wrr        #IP负载方式    
            	lb_kind DR                          
            	nat_mask 255.255.255.0   
            	persistence_timeout 0    
            	protocol TCP                          
            	real_server 192.168.2.221 80 {     #真实负载服务器一
            		weight 3                             
            		TCP_CHECK {                     
            			connect_timeout 10   
            			nb_get_retry 3
            			delay_before_retry 3
            			connect_port 80
            		}
            	}
            	real_server 192.168.2.223 80 {     #真实负载服务器二
            		weight 3
            		TCP_CHECK {
            			connect_timeout 10
            			nb_get_retry 3
            			delay_before_retry 3
            			connect_port 80
            		}
            	}
            }

             配置完毕后, 可以启动服务(若是不确定是否启动成功,日志查看命令及日志位置: tail /var/log/message):

             service keepalived start  #启动命令

              至此LVS负载算是完成了   前台浏览器可以访问

               http://192.168.2.224/   来访问服务器是否正常。            


        三)备机配置 (2.211)

            备机与主机基本一致, 只是优先级要比主机低

             yum -y install  keepalived

             将配置keepalived.conf文件修改为如下内容:

        global_defs {    
        	router_id LVS_DEVEL             
        }
        vrrp_instance VI_1 {            
        	state BACKUP      #标记为备机            
        	interface eth0     #当前主机的网卡       
        	virtual_router_id 51        
        	priority 99       #优先级  低于主负载            
        	advert_int 1           
        	authentication {        
        		auth_type PASS
        		auth_pass 1111
        	}
        	virtual_ipaddress {         
        		192.168.2.224    #与主保持一致,多个IP记得分行
        	}
        }
        virtual_server 192.168.2.224 80 {
        	delay_loop 6           
        	lb_algo wrr            
        	lb_kind DR                          
        	nat_mask 255.255.255.0   
        	persistence_timeout 0    
        	protocol TCP                          
        	real_server 192.168.2.221 80 {     
        		weight 3                             
        		TCP_CHECK {                     
        			connect_timeout 10   
        			nb_get_retry 3
        			delay_before_retry 3
        			connect_port 80
        		}
        	}
        	real_server 192.168.2.223 80 {
        		weight 3
        		TCP_CHECK {
        			connect_timeout 10
        			nb_get_retry 3
        			delay_before_retry 3
        			connect_port 80
        		}
        	}
        }

                    启动备机服务:

                    service keepalived start   #启动脚本,自己跟踪日志 /var/log/message文件

                    至此  LVS负载没有 单点瓶颈。算是完善了架构。

               



    



如有疑问 请留言 欢迎提供建议
  • 0

    开心

  • 0

    板砖

  • 0

    感动

  • 0

    有用

  • 0

    疑问

  • 0

    难过

  • 0

    无聊

  • 0

    震惊

评论已有 0