通过keepalived搭建LVS高可用集群

通过keepalived搭建LVS高可用集群

实验环境:
主Director Server 192.168.163.3
备Director Server 192.168.163.4
real server1 192.168.163.5
real server2 192.168.163.6
VIP 192.168.163.100

四个节点上都安装上webserver:

#yum -y install httpd 

在Director上安装好LVS软件和keepalived软件
LVS下载地址:http://www.linuxvirtualserver.org/software/ipvs.html
keepalived官网:http://www.keepalived.org
1.源码安装:
安装LVS

#tar -zxvf ipvsadm-1.24.tar.gz
#cd ipvsadm-1.24
#make
#make install 

安装keepalived

#tar -zxvf keepalived-1.1.19.tar.gz
#cd keepalived-1.1.19
#./configure --sysconf=/etc --with-kerner-dir=/usr/src/kernels/2.6.18-8.el5-i686
#make
#make install

2.yum源安装:

#yum -y install ipvsadm
#yum -y install keepalived

编辑keepalived的配置文件(/etc/keepalived/keepalived.conf)主要由3部分组成,分别为全局定义,vrrp实例定义,虚拟服务器定义

#全局定义
global_defs {
  
	#设置报警邮件地址,可以多个,每行一个
	notification_email {
	
		root@localhost                    
	   
}

	#设置邮件发送地址   
	notification_email_from keepalived@localhost
   
	#设置smtp server地址
	smtp_server 127.0.0.1

   	#设置smtp server连接超时时间
	smtp_connect_timeout 30
   
	#表示运行keepalived服务器的一个标识
	router_id LVS_DEVEL

}

#完成keepalived的手动切换


vrrp_script chk_schedown {
   
	script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"
   
	interval 2
   
	weight -2

}


#vrrp实例定义

vrrp_instance VI_1 {
    
	state MASTER                          #定义keepalived角色,备节点为BACKUP  
	interface eth0
                        #指定HA监测的网络接口
	virtual_router_id 51
                  #虚拟路由标识,主备要一致
	priority 100                          #优先级,数字越大优先级越高,备节点小于主节点
	advert_int 1
                          #主备节点同步检查时间间隔,单位为秒
	authentication {
                         
		auth_type PASS
                #设置认证类型,主要由PASS和AH
		auth_pass keepalivedpass
      #设置认证密码,同一个实例下,主备节点要一致
		}
    
	virtual_ipaddress {                   #虚拟IP,可以多个,每行一个
   	
		192.168.163.100/24 dev eth0 label eth0:0
    
		}
     
	track_script {  
    		      #要执行的脚本    
		chk_schedown
    
		}

}

#虚拟服务器定义


virtual_server 192.168.163.100 80 {
           #定义虚拟服务器IP和PROT 
	delay_loop 6
                          #设置运行状况检查时间,单位为秒
	lb_algo rr
                            #设置负载均衡调度算法
	lb_kind DR
                            #设置LVS实现负载均衡的机制,有NAT,DR,TU     
	#    persistence_timeout 50
           #会话保持时间,单位为秒
	protocol TCP
                          #指定转发协议类型
	sorry_server 127.0.0.1 80	
      #定义所有realserver均出现故障时所用的服务器
	real_server 192.168.163.5 80 {
        #定义real server的IP和端口
		weight 1
                      #定义权重
		HTTP_GET {
                    #real server的状态检测,还有TCP_CHECK等
			url {
                 #检查的URL地址和应返回的状态码
				path /
	      
				status_code 200	              
           
				}
            
			connect_timeout 3
    #设置连接超时时间        
			nb_get_retry 3
       #设置重试次数      
			delay_before_retry 3
 #设置重试间隔       
		}
    
	}
    
	real_server 192.168.163.6 80 {
        
		weight 1
        
		HTTP_GET {
            
			url {
              
				path /
	      
				status_code 200	              
           
				}
            
			connect_timeout 3
            
			nb_get_retry 3
            
			delay_before_retry 3
        
		}
    
	}

}

在real server上编写脚本完成VIP设置和节点的配置(/etc/init.d/lvsrs)

#!/bin/bash

#

# Script to start LVS DR real server.

# chkconfig: - 90 10

# description: LVS DR real server

#


.  /etc/rc.d/init.d/functions



VIP=192.168.163.100



host=`/bin/hostname`



case "$1" in

start)
       
	# Start LVS-DR real server on this machine.
        
	/sbin/ifconfig lo down
      
	/sbin/ifconfig lo up
        
	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

        

	/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
        
	/sbin/route add -host $VIP dev lo:0


	;;

stop)

        
	# Stop LVS-DR real server loopback device(s).
       
	/sbin/ifconfig lo:0 down
        
	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
	

;;

status)

        
	# Status of LVS-DR real server.
        
	islothere=`/sbin/ifconfig lo:0 | grep $VIP`
        
	isrothere=`netstat -rn | grep "lo:0" | grep $VIP`
        
	if [ ! "$islothere" -o ! "isrothere" ];then
           
		# Either the route or the lo:0 device
            
		# not found.
            
		echo "LVS-DR real server Stopped."
        
	else
            
		echo "LVS-DR real server Running."
        
	fi
	
;;

*)
            
	# Invalid entry.
            
	echo "$0: Usage: $0 {start|status|stop}"
           
	exit 1

	;;

esac

启动keepalived+LVS集群系统
在主备Director server上启动keepalived服务

#service keepalived start

在两个real server上启动real server的配置脚本

#service lvsrs start

在四个节点启动httpd服务

#service httpd start

欢迎关注我的公众号

在这里插入图片描述

原文链接:http://www.chenxujiang.club/article/16

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值