zoukankan      html  css  js  c++  java
  • VM虚拟机上 实现CentOS 6.X下部署LVS(NAT)+keepalived实现高性能高可用负载均衡

    一、简介

    VS/NAT原理图:

    二、系统环境

    实验拓扑:

    1 准备工作

    a) 虚拟机上安装CentOS6.x操作系统,参考一下博客内容

    http://www.cnblogs.com/seesea125/archive/2012/02/25/2368255.html

    b)将上一步安装上的虚拟机clone 3分,如图所示

       

    2个LVS服务器,一个作为Master,一个作为Backup 2个真实web服务器

    c)设置各个系统的网络

    c-1) win7操作系统,作为外部访问LVS服务器的设备,设置VMnet1的IP地址,如图设置

     

    c-2)在VM软件中分别设置各个CentOS6系统的网卡

    c-2-1)LVS MASTER 服务器的网卡设置,需要2块网卡连接,如图所示

       

    c-2-2)LVS Backup 服务器的网卡设置,需要2块网卡连接,如图所示

        

    c-2-3)设置2台真实web服务器的网卡连接,需要一块网卡连接,如图所示

     

    c-3)通过ifconfig命令,设置各个CentOS系统的网路设置

    c-3-1)LVS MASTER 服务器的网路设置,如图所示,分别设置eth0为10.0.0.2 255.255.255.0,eth0:1为10.0.0.227 255.255.255.0,eth1为192.168.10.2 255.255.255.0 网关192.168.10.10  

    c-3-2)LVS BACKUP 服务器的网路设置,如图所示,分别设置eth0为10.0.0.3 255.255.255.0,eth0:1为10.0.0.227 255.255.255.0,eth1为192.168.10.3 255.255.255.0 网关192.168.10.10 

    c-3-3)2台真实web 服务器的网路设置,分别设置eth0为192.168.10.4 255.255.255.0 网关192.168.10.10和192.168.10.5 255.255.255.0 网关192.168.10.10

    通过以上步骤的话,通过ping命令检验是否所有的系统之间都可以联通了。

    2  安装必要的软件

    a) LVS MASTER和Backup 服务器

    a-1)ipvsadm 和keepalived的安装

    安装之前最好查看一下系统中是否已经安装了这2个软件

    命令录下 yum -y install ipvsadm 和 yum -y install keepalived

    a-2) 开启路由转发

    [root@CentOS-LVS_MASTER ~]# vim /etc/sysctl.conf 
    net.ipv4.ip_forward = 1
    [root@CentOS-LVS_MASTER ~]# sysctl -p

    a-3) 配置keepalived,如图所示

    Master端的配置:

    [root@CentOS6-LVS-Master rules.d]# cat /etc/keepalived/keepalived.conf
    !Configuration File for keepalived                                    
    
    global_defs {
       router_id LVS_MASTER            #BACKUP上修改为LVS_BACKUP
    }                                                           
    
    vrrp_instance VI_1 {
        state MASTER                   #BACKUP上修改为BACKUP
        interface eth0                                      
        virtual_router_id 51                                
        priority 100                   #BACKUP上修改为80    
        advert_int 1                                        
        authentication {                                    
            auth_type PASS                                  
            auth_pass 1111                                  
        }                                                   
        virtual_ipaddress {                                 
            10.0.0.227                                         
        }                                                   
    }                                                       
    
    vrrp_instance LAN_GATEWAY {
        state MASTER                   #BACKUP上修改为LVS_BACKUP
        interface eth1                                          
        virtual_router_id 52                                    
        priority 100                   #BACKUP上修改为80        
        advert_int 1                                            
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.10.10
        }
    }
    
    virtual_server 10.0.0.227 80 {
        delay_loop 6
        lb_algo rr
        lb_kind NAT
    #   persistence_timeout 5
        protocol TCP
    
        real_server 192.168.10.4 80 {
            weight 3
            TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
            }
        }
    
        real_server 192.168.10.5 80 {
            weight 3
            TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
            }
        }
    }
           
    

      

      Backup端的配置:

    [root@CentOS6-LVS-Backup ~]# cat /etc/keepalived/keepalived.conf
    !Configuration File for keepalived
    
    global_defs {
       router_id LVS_BACKUP            #BACKUP上修改为LVS_BACKUP
    }
    
    vrrp_instance VI_1 {
        state BACKUP                   #BACKUP上修改为BACKUP
        interface eth0
        virtual_router_id 51
        priority 80                   #BACKUP上修改为80
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            10.0.0.227
        }
    }
    
    vrrp_instance LAN_GATEWAY {
        state BACKUP                   #BACKUP上修改为LVS_BACKUP
        interface eth1
        virtual_router_id 52
        priority 80                   #BACKUP上修改为80
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.10.10
        }
    }
    
    virtual_server 10.0.0.227 80 {
        delay_loop 6
        lb_algo rr
        lb_kind NAT
    #   persistence_timeout 5
        protocol TCP
    
        real_server 192.168.10.4 80 {
            weight 3
            TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
            }
        }
        
        real_server 192.168.10.5 80 {
            weight 3
            TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
            }
        }
    }
    

    a-4) 将keepalived设置为服务

    chkconfig keepalived on 

    b) 在2台真实的web服务器分别配置HTTP 

    [root@WEB1 ~]# yum -y install httpd
    [root@WEB1 ~]# cd /var/www/html/
    [root@WEB1 html]# cat index.html 
    <h1>WEB1/192.168.10.4</h1>
    [root@WEB1 html]# /etc/init.d/httpd start
    另一台机器配置一样,过程略。

    3 分别在LVS_MASTERLVS_BACKUP上执行service keepalived start启动keepalived就可实现负载均衡及高可用集群了;

    [root@CentOS-LVS_MASTER keepalived]# service keepalived start

    四、测试

    ####高可用性测试####

    模拟故障,将CentOS-LVS_MASTER上的keepalived服务停掉,然后观察CentOS-LVS_BACKUP上的日志,信息如下

    lvs

    从日志中可知,主机出现故障后,备机立刻检测到,此时备机变为MASTER角色,并且接管了主机的虚拟IP资源,最后将虚拟IP绑定在etho设备上。

    CentOS-LVS_MASTER 上的keepalived服务开启后,CentOS-LVS_BACKUP的日志状态。

    从日志可知,备机在检测到主机重新恢复正常后,释放了虚拟IP资源重新成为BACKUP角色

    ####故障切换测试####

    故障切换是测试当某个节点出现故障后,Keepalived监制模块是否能及时发现然后屏蔽故障节点,同时将服务器转移到正常节点来执行。

    将WEB2节点服务停掉,假设这个节点出现故障,然后主、备机日志信息如下

    从以上可以看出,Keepalived监控模块检测到192.168.10.5这台主机出现故障后,将WEB2从集群系统中剔除掉了。 此时访问http://10.0.0.227只能看到WEB1了)

    重新启动WEB2节点的服务,日志信息如下:

    Keepalived监控模块检测到192.168.10.5这台主机恢复正常后,又将此节点加入集群系统中,再次访问就可以访问到WEB2页面了)

     参考文章自:http://www.cnblogs.com/mchina/archive/2012/08/27/2644391.html

  • 相关阅读:
    模板
    Codeforces Round #598 (Div. 3)
    Codeforces Round #589 (Div. 2)
    日记集
    模板
    Codeforces Round #592 (Div. 2)
    Linux挂载新盘
    VMware实用技巧
    useradd和adduser的区别
    ubuntu VSFTPD搭建FTP服务器 提示530错误
  • 原文地址:https://www.cnblogs.com/guoyongrong/p/3305039.html
Copyright © 2011-2022 走看看