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进行测试

  

  

  

  

  

posted @ 2019-12-18 22:20  MlxgzZ  阅读(577)  评论(0编辑  收藏  举报