LVS+keepalived简单实现负载均衡

本文介绍如何在CentOS 6.7环境中利用四台虚拟机搭建LVS负载均衡系统,包括关闭防火墙、配置HTTP服务、设置回环接口、安装与配置Keepalived等步骤。

为了达到负载均衡的效果,我一共采用了四台虚拟机,均是vmware虚拟出来的系统,使用的linux版本是centOS 6.7。

需要引起注意的是,如果linux内核版本低于2.4,需要手动把LVS编译到Linux内核中。

查看linux内核信息命令为:uname -a

这四台虚拟机的IP地址分别是:129,131,132,134其中:129是主机,用于转发请求;131和132是服务器,一般是tomcat,这里为了方便,我采用http服务器,处理由129发来的请求;最后134是备机。

首先我们需要把四台机器的防火墙关掉,命令是:service iptables stop,防止重启后,防火墙再次开启,命令是:chkconfig iptables off,检查防火墙是否完全关闭的命令:chkconfig iptables --list

防火墙关闭了之后,我们在两台服务器131和132上面开启http服务,命令是:service httpd start,开启了http服务之后,我们在浏览器输入虚拟机的ip地址,如:192.168.124.131,即可进入到apache http服务的欢迎页。

为了分别标识这两台服务器,我们可以编辑一个静态页面,命令:touch /var/www/html/index.html,然后使用vim编辑器给我们创建的index.html写入一些内容,用以区分服务器,命令:vim /var/www/html/index.html,如:i am http 192.168.124.131(132)。完成了这边操作之后,我们在浏览器输入192.168.124.131(132)就可以看到我们刚编辑的html页面了。

由于131和132是服务机,我们需要给这两台机器的网卡设置回还口,命令:touch /etc/init.d/realserver。执行该命令,会在etc/init.d目录下创建realserver文件。执行命令:vim /etc/init.d/realserver,我们给realserver文件写入如下内容:

<pre name="code" class="plain">#!/bin/bash
#chkconfig: 2345 79 20
#description:realserver
SNS_VIP=192.168.124.135       #定义VIP变量
. /etc/rc.d/init.d/functions	#导脚本库
case "$1" in					#case语句 $1传递给该shell脚本的第一个参数
start)
ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP #设置Lo:0 VIP  netmask  及广播
/sbin/route add -host $SNS_VIP dev lo:0							  ##route del 增加本地路由
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						# -p <file>   (default /etc/sysctl.conf) 将标准信息输入设备空文件
echo "RealServer Start OK"
;;
stop)
ifconfig lo:0 down
route del $SNS_VIP >/dev/null 2>&1     			#route del 删除本地路由
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}"  #$0 是脚本本身的名字
exit 1							#表示进程正常退出
esac							#case结束
exit 0							#表示进程非正常退出



拷贝以上内容时,请把注释去掉。其中要注意的是,SNS_VIP是虚拟IP,即不存在的非真实IP,由于我使用了129、131、132、134,所以这里我把VIP设置为135。最后执行命令:service realserver start。需要注意的是,执行service realserver start 命令之前,先要赋予权限chmod 775 realserver。

完成了上述操作之后,两台服务机就算准备好了,接下来我们准备主机。

      主机的IP是129,首先我们需要给我们的主机安装keepalived,命令是:yum -y install keepalived。查看安装路径命令:rpm -ql keepalived。清空/etc/keepalived/keepalived.cfg文件,命令:>/etc/keepalived/keepalived.cfg。清空了该文件之后往该文件写入内容:vim /etc/keepalived/keepalived.cfg,要写入的内容如下:

global_defs {                       
#   notification_email {             
#       admin@toxingwang.com
#   }
#   notification_email_from master@toxingwang.com
#   smtp_server smtp.exmail.qq.com
#   smtp_connect_timeout 30
	router_id LVS_DEVEL             
}
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.124.135		# VIP,虚拟、非真实存在的IP
	}
}
virtual_server 192.168.124.135 80 {
	delay_loop 6           
	lb_algo wrr            # wrr 分权轮叫算法
	lb_kind DR                          
	nat_mask 255.255.255.0   
	persistence_timeout 0    
	protocol TCP                          
	real_server 192.168.124.131 80 {     # 服务器IP 
		weight 3                             
		TCP_CHECK {                     
			connect_timeout 10   
			nb_get_retry 3
			delay_before_retry 3
			connect_port 80
		}
	}
	real_server 192.168.124.132 80 {     # 服务器IP 
		weight 3
		TCP_CHECK {
			connect_timeout 10
			nb_get_retry 3
			delay_before_retry 3
			connect_port 80
		}
	}
}


编辑完成之后,保存。执行命令:service keepalived start。 

我们在浏览器输入IP地址:192.168.124.135,可以看到请求被转发至131和132,由于在keepalived.cfg文件中设置了两台服务器的权重一样,所以各自处理一次请求。

接下来开始备机的搭建。同样的,安装keepalived,命令:yum -y install keepalived, 查看安装信息:rpm -ql keepalived 

清空keepalived.cfg文件:>/etc/keepalived/keepalived.cfg,往keepalived文件写入如下内容:

global_defs {                       
#   notification_email {             
#       admin@toxingwang.com
#   }
#   notification_email_from master@toxingwang.com
#   smtp_server smtp.exmail.qq.com
#   smtp_connect_timeout 30
	router_id LVS_DEVEL             
}
vrrp_instance VI_1 {            
	state BACKUP       # MASTER为主机,BACKUP为备机      
	interface eth0            
	virtual_router_id 51        
	priority 99		# 优先级,备机的优先级必须比主机的优先级小
	advert_int 1           
	authentication {        
		auth_type PASS
		auth_pass 1111
	}
	virtual_ipaddress {         
		192.168.124.135		# VIP,虚拟、非真实存在的IP
	}
}
virtual_server 192.168.124.135 80 {
	delay_loop 6           
	lb_algo wrr            # wrr 分权轮叫算法
	lb_kind DR                          
	nat_mask 255.255.255.0   
	persistence_timeout 0    
	protocol TCP                          
	real_server 192.168.124.131 80 {     # 服务器IP 
		weight 3                             
		TCP_CHECK {                     
			connect_timeout 10   
			nb_get_retry 3
			delay_before_retry 3
			connect_port 80
		}
	}
	real_server 192.168.124.132 80 {     # 服务器IP 
		weight 3
		TCP_CHECK {
			connect_timeout 10
			nb_get_retry 3
			delay_before_retry 3
			connect_port 80
		}
	}
}
保存,启动keepalived:service keepalived start

我们可以把129机器停掉,执行命令:service keepalived stop ,我们再次在浏览器输入VIP:192.168.124.135,可以看到访问依然正常。

一个简单的负载均衡搭建就此完成了。



内容概要:本研究聚焦于“绿电直连型电氢氨园区”的优化运行,提出一种直接利用绿色电力驱动制氢与合成氨的综合能源系统架构。通过构建包含风/光发电、电解水制氢、氢气储存、合成氨反应及电能直供等关键环节的系统模型,研究旨在实现能源的高效转化与梯级利用,降低对外部电网依赖,提升园区能源自洽率与经济性。研究综合运用Matlab与Python工具进行建模与仿真,结合实际气象与负荷数据,对系统在不同工况下的运行策略、能量流动、设备容量配置及经济技术指标进行深入分析与优化,并形成完整的Word论文文档,为新型零碳产业园区的规划与建设提供了理论依据和技术支撑。; 适合人群:具备新能源、电力系统、化工或综合能源系统背景的科研人员,以及从事园区规划、能源管理、低碳技术开发的工程技术人员。; 使用场景及目标:①研究绿电如何高效耦合至化工生产流程,实现“电-氢-氨”多能互补;②掌握综合能源系统(IES)的建模、仿真与优化方法,特别是多时间尺度下的运行调度策略;③为撰写高水平学术论文或完成相关课题研究积累数据、代码与写作模板。; 阅读建议:此资源包含代码、数据和完整论文,建议使用者先通读Word论文以理解整体框架与理论基础,再结合Matlab/Python代码进行复现与调试,最后可基于提供的数据和模型进行二次开发,以深化对绿电综合利用技术的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值