本发明涉及信息处理技术领域,尤其涉及一种高可用服务器集群系统的实现方法。
背景技术:
计算机的飞速发展给网络带宽和服务器带来巨大的挑战,而同时,网络带宽的增长远高于处理器速度和内存访问速度的增长,所以在往后的发展中,性能的瓶颈将会更多的集中于服务器端,影响吞吐率的因素会更多的集中于操作系统和处理器的低效,而往往重新设计单台服务器的需求和现实生产环境并不匹配、
蓬勃的互联时代的巨大流量使得很多平台不堪重负,对网络服务的可靠性提出了越来越高的要求。新时代的web服务对服务器的性能提出了要求,需要提供更丰富的内容、更优秀的交互性能、更高的安全性、更强的容错性和更加经济的运作模式,于是众多服务器的扩展合一的服务模式应运而生。
传统的集群式服务器系统,是多台独立的服务器通过网络联通拼接而成,可扩展能力有限,在满足高可伸缩、高可用网络服务时会造成一定的资源浪费。
技术实现要素:
为了解决以上技术问题,本发明提出了一种高可用服务器集群系统的实现方法,增强网络服务的可靠性和可用性,提高集群架构的可拓展性,借助lvs以低成本实现最优的网络安全服务性能。
本发明旨在基于ip层的内容请求分发调度,实现一套可伸缩、高可用的网络服务集群系统,网络负载均衡集群系统构建于实际的服务器之上,用户看不到提供服务的实际服务器,只能看见一台负载均衡的服务器,而实际的网络服务通过高速局域网或者广域网进行连接,而实际调度请求的是负载均衡服务器。
本发明的技术方案是:
一种高可用服务器集群系统的实现方法,其特征在于,
进行服务器的负载均衡调度,将调度机和真实服务器进行分离,实现服务器集群的高可用,配置负载均衡方式,自动生成虚拟ip参与调度。
主要包括如下步骤:
配置主要集中在入口的负载均衡服务器
1)在负载均衡服务器上安装ipvs的管理软件ipvsadm和keepalived
2)在负载均衡服务器上绑定虚拟ip
3)负载均衡服务器a配置lvs
4)实际服务器的配置
5)配置keepalived
进一步的,步骤2)内容具体如下:
[root@licalhost~]#ifconfigeth0:010.110.10.2broadcast10.110.10.2netmask255.255.255.255up
给设备指定一条路由
[root@licalhost~]#echo“1”>/proc/sys/net/ipv4/ip_forward
进一步的,步骤3)内容如下:
[root@servera~]#ipvsadm–a–t10.110.10.2:80–srr–p1000
#意为添加此vip,端口为默认端口80,轮询策略并且服务时间1000s
[root@servera~]#ipvsadm–a–t10.110.10.2:80–r10.110.10.3:80-g
[root@serverb~]#ipvsadm–a–t10.110.10.2:80–r10.110.10.4:80–g
[root@serverb~]#ipvsadm–a–t10.110.10.2:80–r10.110.10.5:80-g
#意为添加实际网络服务器,-g指的是负载均衡调度模式,为vs/dr。
进一步的,步骤4)内容如下:
创建文件/etc/init.d/lvsrs
#!/bin/bash
vip=10.110.10.2
/sbin/ifconfiglo:0$vipbroadcast$vipnetmask255.255.255.255up
/sbin/routeadd-host$vipdevlo: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_announcesysctl-p
#end。
进一步的,步骤5)内容如下:
#全局定义部分
global_defs
{
notification_email{zhangxx02@inspur.com#设置报警邮件地址}
notification_email_fromkeepalived@localhost#设置邮件的发送地址。
smtp_server10.110.10.2#设置smtpserver地址。
smtp_connect_timeout30#设置连接smtp服务器超时时间。
router_idlvs_master#运行keepalived服务器的一个标识。
}
#vrrp定义部分
vrrp_instancevi_1{
statemaster#指定为主用服务器。
interfaceeth0#指定ha监测网络的接口。
virtual_router_id66#指定虚拟路由标识。
priority100#定义优先级。
advert_int1#设定同步检查的时间间隔。
authentication{#设定验证类型和密码。
auth_typepass#设置验证类型。
auth_pass123#设置验证密码。}
virtual_ipaddress{#设置虚拟ip地址。
10.110.10.2}
}
#虚拟服务器定义部分
virtual_server10.110.10.280{#设置虚拟服务器。
delay_loop6#设置检查时间。
lb_algorr#设置负载调度算法。
lb_kinddr#设置负载均衡机制。
persistence_timeout50#设置会话保持时间。
protocoltcp#指定转发协议类型。
real_server10.110.10.380#配置服务节点1{
weight10#配置服务节点的权值。
tcp_check{#realserver状态检测设置部分
connect_timeout10#10秒无响应超时
nb_get_retry3#设置重试次数
delay_before_retry3#设置重试间隔
}
}
real_server10.110.10.480#配置服务节点2{
weight5
tcp_check{
connect_timeout3
nb_get_retry3
delay_before_retry3
}
}
real_server10.110.10.580#配置服务节点3{
weight5
tcp_check{
connect_timeout20
nb_get_retry3
delay_before_retry3
}
}
}。
本发明的有益效果是
本发明与常用解决方法相比,对集群的体系结构和应用配置实例进行良好的设计,提高了软、硬件资源利用率,为了集群系统的构建提供了良好的理论和实践的参考。从大方向来说,当微服务框架和大数据分析优化越来越成为业务的主流的时候,从服务器层面考虑如何有效系统的利用集群化的思想,实现1+1不只是等于2,即不只是将硬件资源堆叠起来,而是有优秀的规划思想在里面。
附图说明
图1是本发明的工作原理示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
集群(cluster)是一组相互独立、依靠高速网络传输进行互联的计算机组成的一个并行的信息处理系统,其中单个的计算机称为集群的节点。节点系统单一,虽然能为用户提供高性能的信息处理服务,但是由于资源的限制,往往出现单机运算性能不足、io能力的欠缺等问题。
集群的存在是为了提高服务的安全性和可靠性,提高服务端的耦合增强可维护性,提高方案的整体可拓展性。
lvs(linuxvirtualserver)是linux虚拟服务器的简称,它提供的负载均衡技术和linux操作系统结合,提供了一种高可用高负载的服务器集群方案。
本发明通过一定的方式进行服务器的负载均衡调度,将调度机和真实服务器进行分离,实现服务器集群的高可用,可配置负载均衡方式,自动生成虚拟ip参与调度。
配置主要集中在入口的负载均衡服务器。
·在负载均衡服务器上安装ipvs的管理软件ipvsadm和keepalived
·在负载均衡服务器上绑定虚拟ip
[root@licalhost~]#ifconfigeth0:010.110.10.2broadcast10.110.10.2netmask255.255.255.255up
给设备指定一条路由
[root@licalhost~]#echo“1”>/proc/sys/net/ipv4/ip_forward
·负载均衡服务器a配置lvs
[root@servera~]#ipvsadm–a–t10.110.10.2:80–srr–p1000
#意为添加此vip,端口为默认端口80,轮询策略并且服务时间1000s
[root@servera~]#ipvsadm–a–t10.110.10.2:80–r10.110.10.3:80-g
[root@serverb~]#ipvsadm–a–t10.110.10.2:80–r10.110.10.4:80–g
[root@serverb~]#ipvsadm–a–t10.110.10.2:80–r10.110.10.5:80-g
#意为添加实际网络服务器,-g指的是负载均衡调度模式,为vs/dr
(lvs分为三种负载均衡技术,分别为vs/nat、vs/tun、vs/dr)
·实际服务器的配置
创建文件/etc/init.d/lvsrs
#!/bin/bash
vip=10.110.10.2
/sbin/ifconfiglo:0$vipbroadcast$vipnetmask255.255.255.255up
/sbin/routeadd-host$vipdevlo: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_announcesysctl-p
#end
·配置keepalived
#全局定义部分
global_defs
{
notification_email{zhangxx02@inspur.com#设置报警邮件地址}
notification_email_fromkeepalived@localhost#设置邮件的发送地址。
smtp_server10.110.10.2#设置smtpserver地址。
smtp_connect_timeout30#设置连接smtp服务器超时时间。
router_idlvs_master#运行keepalived服务器的一个标识。
}
#vrrp定义部分
vrrp_instancevi_1{
statemaster#指定为主用服务器。
interfaceeth0#指定ha监测网络的接口。
virtual_router_id66#指定虚拟路由标识。
priority100#定义优先级。
advert_int1#设定同步检查的时间间隔。
authentication{#设定验证类型和密码。
auth_typepass#设置验证类型。
auth_pass123#设置验证密码。}
virtual_ipaddress{#设置虚拟ip地址。
10.110.10.2}
}
#虚拟服务器定义部分
virtual_server10.110.10.280{#设置虚拟服务器。
delay_loop6#设置检查时间。
lb_algorr#设置负载调度算法。
lb_kinddr#设置负载均衡机制。
persistence_timeout50#设置会话保持时间。
protocoltcp#指定转发协议类型。
real_server10.110.10.380#配置服务节点1{
weight10#配置服务节点的权值。
tcp_check{#realserver状态检测设置部分
connect_timeout10#10秒无响应超时
nb_get_retry3#设置重试次数
delay_before_retry3#设置重试间隔
}
}
real_server10.110.10.480#配置服务节点2{
weight5
tcp_check{
connect_timeout3
nb_get_retry3
delay_before_retry3
}
}
real_server10.110.10.580#配置服务节点3{
weight5
tcp_check{
connect_timeout20
nb_get_retry3
delay_before_retry3
}
}
}。
以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。