zoukankan      html  css  js  c++  java
  • lvs+keepalived

    a、安装依赖包:yum -y install kernel-devel* make* gcc* openssl* libnl* popt*
    b、解压高可用软件keepalived:tar -zxvf keepalived-1.2.16.tar.gz -C /usr/src/
    c、编译安装keepalived包:cd /usr/src/keepalived-1.2.16,
        执行:./configure --with-kernel-dir=/usr/src/kernels/2.6.32-358.2.1.el6.x86_64/ 
        再执行:make && make install 
        将启动文件和配置文件复制到指定位置:
        cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ 
        cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
        cp /usr/local/sbin/keepalived /usr/sbin/
        mkdir /etc/keepalived
        cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/ 
     
    d、修改/etc/keepalived.conf配置文件,达到高可用状态
        vim /etc/keepalived/keepalived.conf
     
    ! Configuration File for keepalived
     
    global_defs {
       router_id MASTER     #主写MASTER,备写BACKUP
    }
     
    vrrp_instance VI_1 {
        state MASTER        #主写MASTER,备写BACKUP
        interface eth0      #本机的有效网卡
        virtual_router_id 51
        priority 100        #优先级权值,主的值比备的要高
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.108.200     #虚拟VIP
        }
    }
     
     
     
    配置好后,启动keepalived服务:systemctl restart keepalived
    
    NAT模式
    关闭防火墙,selinux,绑定主机名(lvs主备需要绑定两个vip)
    保证后端web服务器和lvs主备能ping通
     
    打开lvs主备的路由转发功能:
    vi  /etc/sysctl.conf
    将net.ipv4.ip_forward = 0  改 1
    再保存退,执行sysctl -p 刷新生效
    再启动
    /etc/init.d/keepalived start
     
     
    keepalived(一主一备,备的权值要比主小priority 100)
     
    lvs主备配置两张网卡,一张网卡的ip要和后端web的ip在同一个网段
    两卡网卡有一张设置的IP要和后面的WEB服务器在一个网段,且不用加网关,另一个网卡设置成另外一个网段并加上网关
    两台WEB服务器网卡IP设置注意的地方:
    网卡设置时要将虚拟IP设为网关
     
    yum -y install kernel-devel* make* gcc* openssl* libnl* popt*(依赖包)
     
    ln -s /usr/src/kernels/2.6.32-220.13.1.el6.x86_64/  /usr/src/linux
     
     
    tar -zxvf ipvsadm-1.26.tar.gz  -C /usr/src/    make && make install
     
     
    tar -zxvf keepalived-1.2.16.tar.gz -C /usr/src  
     
    ./configure --with-kernel-dir=/usr/src/kernels/2.6.32-358.2.1.el6.x86_64/ 指定内核目录
    cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
    cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
    cp /usr/local/sbin/keepalived /usr/sbin/
    mkdir /etc/keepalived    cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
     
    vim /etc/keepalived/keepalived.conf
    global_defs {
       router_id LVS_MASTER     #主写LVS-MASTER,备写LVS-BACKUP
    }
     
    vrrp_instance VI_1 {
        state MASTER        #主写MASTER,备写BACKUP
        interface eth0      #本机的有效网卡
        virtual_router_id 51
        priority 100        #优先级权值,主的值比备的要高
     
     virtual_ipaddress {
            192.168.3.41        #虚拟VIP(用户访问网页的ip,必须和lvs主备ip在同一网段)
        }
     
     
    cp上面的改动
    vrrp_instance VI_GATEWAY {
             tate MASTER                #主写MASTER,备写BACKUP
        interface eth1              #本机的有效网卡
        virtual_router_id 52      #router_id,和上面不一样
        priority 100                  #优先级权值,主的值比备的要高
     
      virtual_ipaddress {
            1.1.1.100          #虚拟VIP,作为后端WEB服务器的网关用
        }
     
     
     
    virtual_server 192.168.3.41 80(用户访问的vip) {
        delay_loop 6
        lb_algo rr      #高度算法,rr是轮询算法
        lb_kind NAT     #集群模式,这里是NAT模式
        persistence_timeout 50   #主备心跳连接超时时间
        protocol TCP         #指的是四层分发
     
        real_server 1.1.1.93 80(为web服务器的ip和端口) {
            weight 1        #算法高度的权值,如果真实服务器权值一样,那么平均分发
        #HTTP_GET {
            TCP_CHECK {     #验证web服务器是否存在的方式
                connect_timeout 3   #连接超时时间,时间秒
                nb_get_retry 3      #失败后连接的次数
                delay_before_retry 3    #间隔时间秒
                connect_port 80
        }
        }
    
    第一步:搭建lvs-dr集群
       1、拿到服务器的三步曲
       2、在lvs主和备上安装keepalived 和 ipvsadm 两个包,并配置keepalived的vip,指向真实的web服务器
       3、在两台服务器上写lvs-dr.sh的绑定vip脚本,写好后启动
     
    第二步:配置nfs共享存储(用keepalived做两台nfs做主备)
        在两台nfs上解压安装keepalived    注意:route_id不能和lvs上keepalived的route_id一样
        另外两台nfs共享的目录要一样,先做一台nfs搭建应用(论坛)再cp到另一台nfs上,两台nfs都启动,在web服务  器上使用vip挂载   mount -o rw -t 192.168.201.100:/nfs   /aa
        umount 192.168.201.100:/nfs
        关机:先关web再关nfs,keepalived
        启动:先启动keepalived,nfs再启动web服务器 
       在nfs服务器上配置nfs共享文件目录/nfs
       1、修改共享配置文件/etc/exports文件
       # vi /etc/exports
         /nfs  (rw)
      
       2、启动nfs服务
       # /etc/init.d/nfs restart
     
       3、在两台web服务器上挂nfs共享存储到本地的/nfs目录
       # mount -o rw -t nfs 192.168.5.200:/nfs /nfs
     
    第三步:配置两台web服务器lamp环境,以下两台web服务器都要操作
       1、使用yum安装lamp环境
       # yum -y install httpd* php* mysql*
     
       2、修改apache网站家目录到/nfs/web目录下
       # mkdir /nfs/web
       # vi /etc/httpd/conf/httpc.conf
         292 DocumentRoot "/nfs/web"
         317 <Directory "/nfs/web">
       
       3、启动apache服务
       # /etc/init.d/httpd restart
     
     
    第四:安装mysql服务器(mysql主备)
        在mysql主备上安装keepalived,修改配置文件route_id和nfs,lvs的不一样,在主备mysql上授权,grant all on discuz.* to 'discuz'@'192.168.201.%'或者 '%' identified by '123'
      安装应用(论坛)时服务器ip填写mysql的VIP(只要安装keepalived,不需要做主从)
       1、使用yum安装mysql服务
       # yum -y install mysql*
     
       2、启动mysql服务
       # /etc/init.d/mysqld restart
     
       3、登陆数据库授权远程登陆
       # mysql -uroot -p123456
       # grant all on *.* to 'discuz'@'%' identified by '123456';
       # flush privileges;
     
    第五步:在web服务器上安装应用
       1、解压应用包到web的家目录下
       # unzip Discuz_X3.2_SC_UTF8.zip -d /nfs/web/
     
       2、来到/nfs/web目录下配置应用 
       # cd /nfs/web
       # mkdir /nfs/web/discuz
       # mv readme/* discuz/
       # mv upload/* discuz/
       # mv utility/* discuz/
     
       3、使用浏览器打开安装应用
       # firefox http://192.168.5.100/discuz  &
     
       4、浏览器安装步骤省略.....
     
       5、安装完成后,再打开浏览测试 
       # firefox http://192.168.5.100/discuz  &
    
    Keepalived + LVS 服务端安装配置
        keepalived+LVS方案中,两台调度服务需要安排和配置Keepalived+LVS,并配置主备关系,实现负载均衡和高可用
        目标服务器:调度主和调度备,两台的安装配置基本完全相同,只是keepalive.conf的部分配置需要修改。
        先确认系统内核,用getconf LONG_BIT,和uname -a都可以查看
        搭建这个LVS+Keepalived(DR)需要的关键步骤及注意事项,
        DR模式主要是靠虚拟IP来实现,客户端访问服务器首先 会找keeaplived服务器,然后由keepalived服务器调度找到真实机,最后真实机通过自己的虚拟IP直接返回给客户端。
        要注意popt-static-1.13-7.el6.x86_64.rpm这个包,不装这个包,安装 ipvs的时候会报错。
        keepalived安装的时候一定要指定内核,要不然keepalived启动后只有两进程,正常是三个。如果不指定内核 即使keepalived启动了,keepalived也发现不了真实机。
        第1步:下载keepalived-1.2.16.tar.gz和ipvsadm-1.26.tar.gz
        wget http://www.keepalived.org/software/keepalived-1.2.16.tar.gz
        wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz 
        wget http://mirror.centos.org/centos/6/os/x86_64/Packages/popt-static-1.13-7.el6.x86_64.rpm
        第2步:在192.168.10.1主跟192.168.10.1备机上安装(keepalived主备)
        yum -y install kernel-devel make gcc openssl-devel libnl* popt*
        备:如果yum安装的popt包里没有包含popt-static包那么需要手动安装这个RPM包
        rpm -ivh popt-static-1.13-7.el6.x86_64.rpm 
        ln -s /usr/src/kernels/2.6.32-220.13.1.el6.x86_64/ /usr/src/linux 
        tar -zxvf ipvsadm-1.26.tar.gz  -C /usr/src/
        cd ipvsadm-1.26/ 
        make 
        make install 
        cd .. 
        tar -zxvf keepalived-1.2.16.tar.gz 
        cd keepalived-1.2.16/ 
        ./configure --with-kernel-dir=/usr/src/kernels/2.6.32-358.2.1.el6.x86_64/ 
        make && make install 
        cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ 
        cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/ 
        mkdir /etc/keepalived 
        cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/ 
        cp /usr/local/sbin/keepalived /usr/sbin/
        第3步:在两台主备LVS上分别配置keepalived
        vim /etc/keepalived/keepalived.conf
        #! Configuration File for keepalived 
    global_defs {
       notification_email {
         acassen@firewall.loc  //邮件地址
       }
       notification_email_from Alexandre.Cassen@firewall.loc
       smtp_server 127.0.0.1     //邮件服务器IP
       smtp_connect_timeout 30  //邮件服务器连接超时时间
       router_id LVS_MASTER     //主配置LVS_MASTER,备改成LVS_BACKUP
    }
    vrrp_instance VI_1 {
        state MASTER		//主配置MASTER,备改成BACKUP
        interface eth0	 	//服务器使用的网卡
        virtual_router_id 60 
        priority 100   		 //优先级,备服务器该值要低于主服务器
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.169.200		//配置虚拟IP,就是VIP
        }
    }
    
    virtual_server 192.168.169.200 80 {	//配置虚拟IP要指向的端口
        delay_loop 6
        lb_algo wrr 			//使用wrr加权轮循算法
        lb_kind DR			//使用DR负载均衡技术
        nat_mask 255.255.255.0
        persistence_timeout 50	   //连接超时时间
        protocol TCP			//使用TCP进行通信
    
        real_server 192.168.169.153 80 {		//真实服务器IP与端口
            weight 3		//权值
    HTTP_GET {	//使用HTTP方式验证真实服务器有效性
                connect_timeout 3		//连接超时时间
                nb_get_retry 3			//每次连接次数
                delay_before_retry 3	//每次重试前相隔时间
    	    connect_port 80
            }
        }
    
        real_server 192.168.169.154 80 {
            weight 3
            HTTP_GET {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
            }
        }
    }
    
    
    
    LVS  WEB服务器安装配置
    LVS-DR模式中,后端真实服务器(RealServer)无需安装相关软件,只需要对VIP进行绑定和路由设置等一系列操作,这里整理为一个脚本:lvs_realserver.sh,详细解释如下
    #!/bin/bash
    # description: Config realserver
    LVS_VIP=192.168.169.200		//虚拟IP
    /etc/rc.d/init.d/functions
    case "$1" in
    start)
    	/sbin/ifconfig lo:0 $LVS_VIP netmask 255.255.255.255 broadcast $LVS_VIP
    	/sbin/route add -host $LVS_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 "LVS-RealServer Start OK"
    	;;
    stop)
    	/sbin/ifconfig lo:0 down
    	/sbin/route del $LVS_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 "LVS-RealServer Stoped"
    	;;
    *)
    	echo "Usage: $0 {start|stop}"
    	exit 1
    esac
    exit 0
    
    注意:脚本前头位置的 /etc/rc.d/init.d/functions 是需要手动给他加上执行权限
    chmod +x /etc/rc.d/init.d/functions
    
    LVS 客户端配置http服务
    安装启动httpd
    

    第一步:将lvs主备两台机器两张卡的IP设置好,两台WEB服务器IP设置好,并将主机名更改好,并将IP和主机名写进/etc/hosts文件
    LVS主备服务器网卡IP设置注意的地方
    两卡网卡有一张设置的IP要和后面的WEB服务器在一直网段,且不用加网关,另一个网卡设置成另外一个网段并加上网关
    两台WEB服务器网卡IP设置注意的地方:
    网卡设置时要将虚拟IP设为网关
    
    第二步:在主备两台服务器编译安装ipvsadm和keepalived软件(安装方法见上面DR模式的安装方法)
        第1步:下载keepalived-1.2.16.tar.gz和ipvsadm-1.26.tar.gz
        wget http://www.keepalived.org/software/keepalived-1.2.16.tar.gz 
        wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz 
        wget http://mirror.centos.org/centos/6/os/x86_64/Packages/popt-static-1.13-7.el6.x86_64.rpm
        第2步:在192.168.10.1主跟192.168.10.1备机上安装(keepalived+lvs主备)
        yum -y install kernel-devel* make* gcc* openssl* libnl* popt*
        备:如果yum安装的popt包里没有包含popt-static包那么需要手动安装这个RPM包
        ln -s /usr/src/kernels/2.6.32-220.13.1.el6.x86_64/  /usr/src/linux 
            tar -zxvf ipvsadm-1.26.tar.gz  -C /usr/src/
        cd  /usr/src/ipvsadm-1.26/ 
        make 
        make install 
        cd .. 
        tar -zxvf keepalived-1.2.16.tar.gz -C /usr/src
        cd /usr/src/keepalived-1.2.16/ 
        ./configure --with-kernel-dir=/usr/src/kernels/2.6.32-358.2.1.el6.x86_64/ 
        make && make install 
        cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ 
        cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
        cp /usr/local/sbin/keepalived /usr/sbin/ 
        mkdir /etc/keepalived 
        cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived
        
        第三步:修改keepalived配置文件/etc/keepalived/keepalived.conf
        ! Configuration File for keepalived
    global_defs {
       router_id LVS_MASTER		#主写LVS-MASTER,备写LVS-BACKUP
    }
    vrrp_instance VI_1 {
        state MASTER		#主写MASTER,备写BACKUP
        interface eth0		#本机的有效网卡
        virtual_router_id 51
        priority 100		#优先级权值,主的值比备的要高
        advert_int 1
        authentication {
            auth_type PASS
                auth_pass 1111
        }
        virtual_ipaddress {
            192.168.5.100		#虚拟VIP
        }
    }
    vrrp_instance VI_GATEWAY {
        state MASTER                #主写MASTER,备写BACKUP
        interface eth1              #本机的有效网卡
        virtual_router_id 52      #router_id,和上面不一样
        priority 100                  #优先级权值,主的值比备的要高
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            1.1.1.100          #虚拟VIP,作为后端WEB服务器的网关用
        }
    }
    
    virtual_server 192.168.5.100 80 {
        delay_loop 6
        lb_algo rr 		#高度算法,rr是轮询算法
        lb_kind NAT		#集群模式,这里是NAT模式
        persistence_timeout 50   #主备心跳连接超时时间
    protocol TCP         #指的是四层分发
    
        real_server 1.1.1.93 80 {
            weight 1        #算法高度的权值,如果真实服务器权值一样,那么平均分发
    	#HTTP_GET {
            TCP_CHECK {		#验证web服务器是否存在的方式
                connect_timeout 3	#连接超时时间,时间秒
                nb_get_retry 3	    #失败后连接的次数
                delay_before_retry 3	#间隔时间秒
                connect_port 80
    	}
        }
    
        real_server 1.1.1.94 80 {
            weight 1
            TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
    	      connect_port 80
            }
        }
    }
        第四步:开机lvs主备两台机器的路由转发功能
        vi  /etc/sysctl.conf
        将net.ipv4.ip_forward = 0  改 1    &&  sysctl -p
        systemctl start keepalived
        第五步:两台WEB服务器安装httpd服务并添加测试文件
        yum -y install httpd
        第六步:在客户机上访问192.168.5.100虚拟IP进行测试
    

      

      

      

      

      

  • 相关阅读:
    kafka cdh 安装
    【转】Public key for *.rpm is not installed,使用yum安装时报错
    12.yaml的简单使用
    python基础教程第三版阅读笔记(一)
    Python库文件安装失败问题及解决方式汇总-持续更新ing~
    taiko初体验
    VMware之USB设备连接
    C++之DLL的动态加载与静态加载初尝试
    C++课堂练习二
    C++课堂练习三
  • 原文地址:https://www.cnblogs.com/The-day-of-the-wind/p/12064072.html
Copyright © 2011-2022 走看看