利用LVS+Keepalived 实现高性能高可用负载均衡服务器

利用LVS+Keepalived 实现高性能高可用负载均衡服务器
利用LVS+Keepalived 实现高性能高可用负载均衡服务器

LVS+Keepalived 介绍

LVS

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR);

十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq)。

Keepalvied

Keepalived在这里主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP 主机之间failover的实现

二. 网站负载均衡拓朴图

IP信息列表:

名称 IP

LVS-DR-Master 61.164.122.6

? LVS-DR-BACKUP 61.164.122.7

? LVS-DR-VIP 61.164.122.8

? WEB1-Realserver 61.164.122.9

? WEB2-Realserver 61.164.122.10

? GateWay 61.164.122.1

复制代码

三. 安装LVS和Keepalvied软件包

1. 下载相关软件包

#mkdir /usr/local/src/lvs

? #cd /usr/local/src/lvs

? #wget

https://www.360docs.net/doc/0110985929.html,/software/kernel-2.6/ipvsadm-1.24.tar.gz

? #wget https://www.360docs.net/doc/0110985929.html,/software/keepalived-1.1.15.tar.gz

复制代码

2. 安装LVS和Keepalived

#lsmod |grep ip_vs

? #uname -r

? 2.6.18-53.el5PAE

? #ln -s /usr/src/kernels/2.6.18-53.el5PAE-i686/ /usr/src/linux

?

? #tar zxvf ipvsadm-1.24.tar.gz

? #cd ipvsadm-1.24

? #make && make install

? #find / -name ipvsadm # 查看ipvsadm的位置

?

? #tar zxvf keepalived-1.1.15.tar.gz

? #cd keepalived-1.1.15

? #./configure && make && make install

? #find / -name keepalived # 查看keepalived位置

?

? #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/

? #service keepalived start|stop #做成系统启动服务方便管理.

复制代码

四. 配置LVS实现负载均衡

1. LVS-DR,配置LVS脚本实现负载均衡

注:此脚本在于演示方便大家理解lvs,在keepalived方案中不要启动此脚本,所以看后面有注掉,很多朋友对此有问题。关于LVS的keepalvied的HA方案,完全由keepalived.conf 一个文件搞定,特此声明!

#vi /usr/local/sbin/lvs-dr.sh

? #!/bin/bash

? # description: start LVS of DirectorServer

? #Written by :NetSeek https://www.360docs.net/doc/0110985929.html,

?

? GW=61.164.122.1

? # website director vip.

? SNS_VIP=61.164.122.8

? SNS_RIP1=61.164.122.9

? SNS_RIP2=61.164.122.10

?

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

?

? logger $0 called with $1

?

? case "$1" in

?

? start)

? # set squid vip

? /sbin/ipvsadm --set 30 5 60

? /sbin/ifconfig eth0:0 $SNS_VIP broadcast $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP up

? /sbin/route add -host $SNS_VIP dev eth0:0

? /sbin/ipvsadm -A -t $SNS_VIP:80 -s wrr -p 3

? /sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP1:80 -g -w 1

? /sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP2:80 -g -w 1

? touch /var/lock/subsys/ipvsadm >/dev/null 2>&1

?

? ;;

? stop)

? /sbin/ipvsadm -C

? /sbin/ipvsadm -Z

? ifconfig eth0:0 down

? route del $SNS_VIP

? rm -rf /var/lock/subsys/ipvsadm >/dev/null 2>&1

? echo "ipvsadm stoped"

? ;;

?

? status)

?

? if [ ! -e /var/lock/subsys/ipvsadm ];then

? echo "ipvsadm stoped"

? exit 1

? else

? echo "ipvsadm OK"

? fi

? ;;

?

? *)

? echo "Usage: $0 {start|stop|status}"

? exit 1

? esac

?

? exit 0

?复制代码

2.配置Realserver脚本.

#vi /usr/local/sbin/realserver.sh

? #!/bin/bash

? # description: Config realserver lo and apply noarp

? #Written by :NetSeek https://www.360docs.net/doc/0110985929.html,

?

? SNS_VIP=61.164.122.8

?

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

?

? case "$1" in

? start)

? ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP ? /sbin/route add -host $SNS_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 "RealServer Start OK"

?

? ;;

? stop)

? ifconfig lo:0 down

? route del $SNS_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 "RealServer Stoped"

? ;;

? *)

? echo "Usage: $0 {start|stop}"

? exit 1

? esac

?

? exit 0

?复制代码

或者采用secondary ip address方式配置

# vi /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore = 1

? net.ipv4.conf.lo.arp_announce = 2

? net.ipv4.conf.all.arp_ignore = 1

? net.ipv4.conf.all.arp_announce = 2

? [code]

? #sysctl ?p

? #ip addr add 61.164.122.8/32 dev lo

? #ip add list 查看是否绑定

? 3. 启动lvs-dr脚本和realserver启本,在DR上可以查看LVS当前状态: ? #watch ipvsadm ?ln

复制代码

五.利用Keepalvied实现负载均衡和和高可用性

1.配置在主负载均衡服务器上配置keepalived.conf

#vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived

?

? global_defs {

? notification_email {

? cnseek@https://www.360docs.net/doc/0110985929.html,

? }

? notification_email_from sns-lvs@https://www.360docs.net/doc/0110985929.html,

? smtp_server 127.0.0.1

? # smtp_connect_timeout 30

? router_id LVS_DEVEL

? }

?

? # 20081013 written by :netseek

? # VIP1

? vrrp_instance VI_1 {

? state MASTER #备份服务器上将MASTER改为BACKUP

? interface eth0

? virtual_router_id 51

? priority 100 # 备份服务上将100改为99

? advert_int 1

? authentication {

? auth_type PASS

? auth_pass 1111

? }

? virtual_ipaddress {

? 61.164.122.8

? #(如果有多个VIP,继续换行填写.)

? }

? }

?

? virtual_server 61.164.122.8 80 {

? delay_loop 6 #(每隔10秒查询realserver状态)

? lb_algo wrr #(lvs 算法)

? lb_kind DR #(Direct Route)

? persistence_timeout 60 #(同一IP的连接60秒内被分配到同一台realserver) ? protocol TCP #(用TCP协议检查realserver状态)

?

? real_server 61.164.122.9 80 {

? weight 3 #(权重)

? TCP_CHECK {

? connect_timeout 10 #(10秒无响应超时)

? nb_get_retry 3

? delay_before_retry 3

? connect_port 80

? }

? }

? real_server 61.164.122.10 80 {

? weight 3

? TCP_CHECK {

? connect_timeout 10

? nb_get_retry 3

? delay_before_retry 3

? connect_port 80

? }

? }

? }

?复制代码

2. BACKUP服务器同上配置,先安装lvs再按装keepalived,仍后配置

/etc/keepalived/keepalived.conf,只需将红色标示的部分改一下即可.

3. 停掉lvs_dr.sh演示脚本

vi /etc/rc.local

#/usr/local/sbin/lvs-dr.sh 将lvs-dr.sh这个脚本注释掉。

#/usr/local/sbin/lvs-dr.sh stop 停止lvs-dr脚本

#/etc/init.d/keepalived start 启动keepalived 服务,keepalived就能利用keepalived.conf 配置文件,实现负载均衡和高可用.

整个LVS负均衡HA方案,由keepalived.conf一个文件即可搞定!

4. 查看lvs服务是否正常

#watch ipvsadm ?ln

IP Virtual Server version 1.2.1 (size=4096)

? Prot LocalAddressort Scheduler Flags

? -> RemoteAddressort Forward Weight ActiveConn InActConn

? TCP 61.164.122.8:80 wrr persistent 60

? -> 61.164.122.10:80 Route 3 0 0

? -> 61.164.122.9:80 Route 3 0 0

复制代码

#tail ?f /var/log/message 监听日志,查看状态,测试LVS负载均衡及高可用性是否有效。5.停Master服务器的keepalived服务,查看BAKCUP服务器是否能正常接管服务。

四.相关参考

1.LVS 基础知识汇总

LVS的算法介绍https://www.360docs.net/doc/0110985929.html,/viewthread.php?tid=69

学习LVS的三种转发模式https://www.360docs.net/doc/0110985929.html,/viewthread.php?tid=77

LVS中的IP负载均衡技术https://www.360docs.net/doc/0110985929.html,/viewthread.php?tid=68

更多的请到https://www.360docs.net/doc/0110985929.html,负载均衡版查看

Keepalived 相关参考资料。

https://www.360docs.net/doc/0110985929.html,/documentation.html

如果自己手工编译keepalived的话最好加上--with-kernel-dir=/kernel/path参数,如果keepalived找不到内核源码,在编译时会不编译lvs支持。

仔细看./configure 最后的提示:

找不到内核源码提示如下:

Keepalived configuration

------------------------

Keepalived version : 1.1.15

Compiler : gcc

Compiler flags : -g -O2

Extra Lib : -lpopt -lssl -lcrypto

Use IPVS Framework : No

IPVS sync daemon support : No

Use VRRP Framework : Yes

Use LinkWatch : No

Use Debug flags : No

找到内核源码提示如下:

Keepalived configuration

------------------------

Keepalived version : 1.1.15

Compiler : gcc

Compiler flags : -g -O2

Extra Lib : -lpopt -lssl -lcrypto

Use IPVS Framework : Yes

IPVS sync daemon support : Yes

Use VRRP Framework : Yes

Use LinkWatch : No

Use Debug flags : No

https://www.360docs.net/doc/0110985929.html,/thread-1077-1-1.html

服务器集群设计

服务器集群设计 服务器集群技术随着服务器硬件系统与网络操作系统的发展而产生的,在可用性、高可靠性、系统冗余等方面越来越发挥重要中用,是核心系统必不可少的。数据库保存者抄表系统的数据,是整个信息系统的关键所在。 解决系统可靠性的措施通常是备份和群集。备份不能快速恢复,主要用于安全保存,数据库和系统的快速故障恢复通常采用HA(高可用)群集模式, HA 能提供不间断的系统服务,在线系统发生故障时,离线系统能立即发现故障并立即进行接管,继续对外提供服务。HA技术可以有效防止关键业务主机宕机而造成的系统停止运行,被广泛采用。HA技术有两种模式: 具有公共存储系统的HA 数据存储在公共的存储系统上,服务器1为活动服务器,服务器2为待机服务器(备份服务器),当服务器1发生故障时(软或硬件故障),服务器2通过私有网络(心跳路径)侦测到服务器1的故障并自动接管服务器1上所有的资源(如IP地址、存储系统、数据库服务、计算机名等),继续为客户机提供数据或其他应用服务。 独立存储系统的HA数据存储在各自服务器的独占存储设备上(内置磁盘或磁盘阵列) ,没有共享存储系统,数据保存在每个服务器独占的存储设备上。通过镜像技术使每台服务器的数据保持同步,切换时间更短,可靠性比共享存储系统的方案更高,并避免了单点崩溃的可能性,增加了数据的安全性及系统的可用性。两台服务器之间的距离不受外部存储设备连接线的限制,因而可以将两台服务器放置在不同位置。

根据上述分析、系统要求、应用软件采用三层结构的优势以及艾因泰克在发电企业几十家的建设经验,方案采用独立存储系统的HA模式。 由于两套数据库服务器只有一台在线工作,方案本着最大限度节约资源的原则,充分高性能服务器的性能,在备用服务器上运行系统的WEB应用。采用双机双应用,互为备用结构。即在线数据库服务器是 WEB应用服务器的备用服务器,在线WEB应用服务器是数据库服务器的备用服务器。这种结构不但充分发挥性能服务器的优势,又保证关键服务器具有自动备用服务器。不但节约了成本,而且避免了采用共用存储设备单点故障带来的数据丢失的灾难,是最佳的选择。 数据库和应用服务器集群结构如下图: 服务器采用2台PowerEdge R900,配置7块146G磁盘,2块磁盘组成RAID 1镜像,作为操作系统盘。5块组成磁盘组成RAID 5,作为数据盘。 集群镜像软件选用RoseMirrorHA。RoseMirrorHA是一个可靠的、稳定的、高性能的应用高可用保护解决方案,实现应用程序的保护,保证了业务的持续运

LVS keepalived负载均衡高可用 配置安装大全

LVS+Keepalived实现高可用集群 一、基础介绍 (2) 二、搭建配置LVS-NA T模式 (2) 三、搭建配置LVS-DR模式 (4) 四、另外一种脚本方式实现上面LVS-DR模式 (6) 五、keepalived + LVS(DR模式) 高可用 (8) 六、Keepalived 配置文件详细介绍 (11)

一、基础介绍 (一)根据业务目标分成三类: High Availability 高可用 Load Balancing 负载均衡 High Performance 高性能 (二)实现集群产品: HA类: rhcs、heartbeat、keepalived LB类: haproxy、lvs、nginx、f5、piranha HPC类: https://www.360docs.net/doc/0110985929.html,/index/downfile/infor_id/42 (三)LVS 负载均衡有三种模式: LVS-DR模式(direct router)直接路由模式 进必须经过分发器,出就直接出 LVS-NAT模式(network address translation) 进出必须都经过分发器 LVS-TUN模式(ip tunneling)IP隧道模式 服务器可以放到全国各地 二、搭建配置LVS-NAT模式 1 、服务器IP规划: DR服务器添加一张网卡eth1,一个网卡做DIP,一个网口做VIP。 设置DIP、VIP IP地址: DIP的eth1和所有RIP相连同一个网段 CIP和DIP的eth0(Vip)相连同一个网段 Vip eth0 192.168.50.200 Dip eth1 192.168.58.4 客户机IP: Cip 192.168.50.3

两台服务器的集群方案

本文由szg81贡献 doc1。 七台服务器的集群方案 在传统的终端/主机的网络模式时代,终端功能简单,无需维护工作,在主机一端进行专门的管理与维护,具有资源共享、便于 管理的特点。但是,主机造价昂贵,终端没有处理能力,限制了网络的规模化发展。之后的客户机/服务器模式推进了计算产业 的标准化和开发化的发展,为系统提供了相当大的灵活性,但是随着分布系统规模的规模扩大,系统的维护和管理带来了巨大 的开销。面向 Internet 的服务型应用,需要高性能的硬件平台作为支持,将并行技术应用在服务器领域中,是计算机发展的必然 趋势。并行处理技术在高性能计算领域中,高可用和高性能是集群服务器系统发展的两个重要方向。 集群的概念 集群英文名称是 CLUSTER,是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管 理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。和传统的高性能计算 机技术相比,集群技术可以利用各档次的服务器作为节点,系统造价低,可以实现很高的运算速度,完成大运算量的计算,具 有较高的响应能力,能够满足当今日益增长的信息服务的需求。 集群技术应用的需求 Internet 用户数量呈几何级数增长和科学计算的复杂性要求计算机有更高的处理能力,而 CPU 的发展无法跟上不断增长的需求, 于是我们面临以下问题: ●大规模计算如基因数据的分析、气象预报、石油勘探需要极高的计算性能。 ●应用规模的发展使单个服务器难以承担负载。 ●不断增长的需求需要硬件有灵活的可扩展性。 ●关键性的业务需要可靠的容错机制。 IA 集群系统(CLUSTER)的特点 ●由若干完整的计算机互联组成一个统一的计算机系统; ●可以采用现成的通用硬件设备或特殊应用的硬件设备,例如专用的通讯设备; ●需要特殊软件支持,例如支持集群技术的操作系统或数据库等等; ●可实现单一系统映像,即操作控制、IP 登录点、文件结构、存储空间、I/O 空间、作业管理系统等等的单一化; ●在集群系统中可以动态地加入新的服务器和删除需要淘汰的服务器, 从而能够最大限度地扩展系统以满足不断增长的应用的需 要; ●可用性是集群系统应用中最重要的因素,是评价和衡量系统的一个重要指标; ●能够为用户提供不间断的服务,由于系统中包括了多个结点,当一个结点出现故障的时候,整个系统仍然能够继续为用户提供 服务; ●具有极高的性能价格比,和传统的大型主机相比,具有很大的价格优势; ●资源可充分利用,集群系统的每个结点都是相对独立的机器,当这些机器不提供服务或者不需要使用的时候,仍然能够被充分 利用。而大型主机上更新下来的配件就难以被重新利用了。 实现服务器集群的硬件配置 ●网络服务器 七台 ●服务器操作系统硬盘 七块 ●ULTRA 160 LVD SCSI 磁盘阵列 一个 ●18G SCSI 硬盘 十块 ●网络服务网卡 十四块 服务器集群的实践步骤 ●在安装机群服务之前的准备: 1、 十四块 18G SCSI 硬盘组成磁盘阵列,做 RAID5。 2、 两台服务器要求都配置双网卡,分别安装 Microsoft Windows Server2008 操作系统,并配置网络。 3、 所有磁盘必须设置成基本盘,阵列磁盘分区必须大于 7 个。 4、 每台服务器都要加入域当中,成为域成员,并且在每台服务器上都要有管理员权限。 ●安装配置服务器网络要点 1、在这一部分,每个服务器需要两个网络适配器,一个连接公众网,一个连接内部网(它只包含了群集节点) 内部网适配器 。 建立点对点的通信、群集状态信号和群集管理。每个节点的公众网适配器连接该群集到公众网上,并在此驻留客户。 2、安装 Microsoft Windows 2000 Adwance Server 操作系统后,开始配置每台服务器的网络。在网络连接中我们给连接公众网的 命名为"外网",连接内部网的命名为"内网"并分别指定 IP 地址为:节点 1:内网:ip:10.10.10.11 外网 ip:192.168.0.192 子网 掩码:255.255.255.0 网关:192.168.0.191(主域控制器 ip) ;节点 2:内网:ip:10.10.10.12 外网 ip:192.168.0.193 子网掩码: 255.255.255.0 网关:192.168.0.191;节点 3:内网:ip:10.10.10.13 外网 ip:192.168.0.194 子网掩码:255.255.255.0 网关: 192.168.0.191;节点 4:内网:ip:10.10.10.14 外网 ip:192.168.0.195 子网掩码:255.255.255.0 网关:192.168.0.191;节点 5: 内

利用LVS+Keepalived 实现高性能高可用负载均衡服务器

LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR); 十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq)。 Keepalvied Keepalived在这里主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP 主机之间failover的实现 二. 网站负载均衡拓朴图 IP信息列表: 名称 IP LVS-DR-Master 61.164.122.6 ? LVS-DR-BACKUP 61.164.122.7 ? LVS-DR-VIP 61.164.122.8 ? WEB1-Realserver 61.164.122.9 ? WEB2-Realserver 61.164.122.10 ? GateWay 61.164.122.1 复制代码 三. 安装LVS和Keepalvied软件包 1. 下载相关软件包 #mkdir /usr/local/src/lvs ? #cd /usr/local/src/lvs ? #wget https://www.360docs.net/doc/0110985929.html,/software/kernel-2.6/ipvsadm-1.24.tar.gz ? #wget https://www.360docs.net/doc/0110985929.html,/software/keepalived-1.1.15.tar.gz 复制代码 2. 安装LVS和Keepalived #lsmod |grep ip_vs ? #uname -r ? 2.6.18-53.el5PAE ? #ln -s /usr/src/kernels/2.6.18-53.el5PAE-i686/ /usr/src/linux ? ? #tar zxvf ipvsadm-1.24.tar.gz ? #cd ipvsadm-1.24 ? #make && make install ? #find / -name ipvsadm # 查看ipvsadm的位置 ? ? #tar zxvf keepalived-1.1.15.tar.gz ? #cd keepalived-1.1.15 ? #./configure && make && make install

Tomcat集群与负载均衡

Tomcat集群与负载均衡(转载) 在单一的服务器上执行WEB应用程序有一些重大的问题,当网站成功建成并开始接受大量请求时,单一服务器终究无法满足需要处理的负荷量,所以就有点显得有点力不从心了。另外一个常见的问题是会产生单点故障,如果该服务器坏掉,那么网站就立刻无法运作了。不论是因为要有较佳的扩充性还是容错能力,我们都会想在一台以上的服务器计算机上执行WEB应用程序。所以,这时候我们就需要用到集群这一门技术了。 在进入集群系统架构探讨之前,先定义一些专门术语: 1. 集群(Cluster):是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。 2. 负载均衡(Load Balance):先得从集群讲起,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同硬件构成的计算机。如一个提供Web服务的集群,对外界来看是一个大Web服务器。不过集群的节点也可以单独提供服务。 3. 特点:在现有网络结构之上,负载均衡提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。集群系统(Cluster)主要解决下面几个问题: 高可靠性(HA):利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。 高性能计算(HP):即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析,化学分析等。 负载平衡:即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。 目前比较常用的负载均衡技术主要有: 1. 基于DNS的负载均衡 通过DNS服务中的随机名字解析来实现负载均衡,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,他们也就访问不同地址上的Web服务器,从而达到负载均衡的目的。 2. 反向代理负载均衡(如Apache+JK2+Tomcat这种组合) 使用代理服务器可以将请求转发给内部的Web服务器,让代理服务器将请求均匀地转发给多台内部Web服务器之一上,从而达到负载均衡的目的。这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。 3. 基于NAT(Network Address Translation)的负载均衡技术(如Linux Virtual Server,简称LVS)

负载均衡--LVS+Keepalived

利用LVS+Keepalived 实现高性能高可用负载均衡 作者:NetSeek 网站: https://www.360docs.net/doc/0110985929.html, 背景: 随着你的网站业务量的增长你网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如F5又太贵,你们又是创业型互联公司如何有效节约成本,节省不必要的浪费?同时实现商业硬件一样的高性能高可用的功能?有什么好的负载均衡可伸张可扩展的方案吗?答案是肯定的!有!我们利用LVS+Keepalived基于完整开源软件的架构可以为你提供一个负载均衡及高可用的服务器。 一.L VS+Keepalived 介绍 1.LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。目前有三种IP负载均衡技术(VS/NA T、VS/TUN和VS/DR); 八种调度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh)。 2.Keepalvied Keepalived在这里主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现 二. 网站负载均衡拓朴图 . IP信息列表: 名称IP LVS-DR-Master 61.164.122.6 LVS-DR-BACKUP 61.164.122.7 LVS-DR-VIP 61.164.122.8 WEB1-Realserver 61.164.122.9 WEB2-Realserver 61.164.122.10 GateWay 61.164.122.1

负载均衡的基础原理说明

大家都知道一台服务器的处理能力,主要受限于服务器自身的可扩展硬件能力。所以,在需要处理大量用户请求的时候,通常都会引入负载均衡器,将多台普通服务器组成一个系统,来完成高并发的请求处理任务。 之前负载均衡只能通过DNS来实现,1996年之后,出现了新的网络负载均衡技术。通过设置虚拟服务地址(IP),将位于同一地域(Region)的多台服务器虚拟成一个高性能、高可用的应用服务池;再根据应用指定的方式,将来自客户端的网络请求分发到

服务器池中。网络负载均衡会检查服务器池中后端服务器的健康状态,自动隔离异常状态的后端服务器,从而解决了单台后端服务器的单点问题,同时提高了应用的整体服务能力。 网络负载均衡主要有硬件与软件两种实现方式,主流负载均衡解决方案中,硬件厂商以F5为代表目前市场占有率超过50%,软件主要为NGINX与LVS。但是,无论硬件或软件实现,都逃不出基于四层交互技术的“转发”或基于七层协议的“代理”这两种方式。四层的转发模式通常性能会更好,但七层的代理模式可以根据更多的信息做到更智能地分发流量。一般大规模应用中,这两种方式会同时存在。 2007年F5提出了ADC(Application delivery controller)的概念为传统的负载均衡器增加了大量的功能,常用的有:SSL卸载、压缩优化和TCP连接优化。NGINX也支持很多ADC的特性,但F5的中高端型号会通过硬件加速卡来实现SSL卸载、压缩优化这一类CPU密集型的操作,从而可以提供更好的性能。 F5推出ADC以后,各种各样的功能有很多,但其实我们最常用的也就几种。这里我也简单的总结了一下,并和LVS、Nginx对比了一下。

多节点集群多机互备解决方案

https://www.360docs.net/doc/0110985929.html,nderSoft(LVGUI-ch.DOC) Normal **项目 多机互备集群解决方案 销售:王晓强 作者:市场部 上海联鼎软件股份有限公司 https://www.360docs.net/doc/0110985929.html, 版权所有 目录 第一章引言2 1.1公司介绍2 1.2背景3 1.3方案设计总原则5 第二章需求描述6 2.1需求概述6 2.2现状说明和存在问题6 2.3总体需求说明7 第三章方案设计7 3.1项目风险分析8 3.2需解决的问题8

3.3设计原则9 第四章方案描述10 4.1总体方案概述10 4.2集群系统方案概述11 4.3工作流程简单描述11 4.4L ANDER C LUSTER软件的优势:12 第五章方案优势13 第六章技术规格19 第一章引言 1.1公司介绍 联鼎软件(Landersoft)是领先的核心业务及数据安全系统解决方案供应商,致力于通过保障用户关键应用及核心电子化数据,确保企业在全球信息化持续发展进程中无间断的竞争力及信心。产品面向应用高可用性,以及全球范围内的核心系统容灾及数据保护。在中国已有超过5000个用户,9500例安装,市场占有率达到前三位,覆盖金融、电信、医疗、政府、交通、电力、教育、制造业、基础资源等行业,已被证明适用于各种应用、服务器、存储硬件和相关设备并实现互操作。 联鼎软件拥有先进的多平台测试开发系统及前瞻性的用户体验中心。公司大中华区总部设在上海,南亚总部设在新加坡,在中国大型城市设有分支机构,形成具有强大优势的销售管理体系和技术支持体系,能够更好、更及时的响应用户需求。 联鼎认为,未来十年,随着IT技术的加速发展,社会对IT环境及服务将高度依赖,保障企业

集群的负载均衡技术综述

集群的负载均衡技术综述 摘要:当今世界,无论在机构内部的局域网还是在广域网如Internet上,信息处理量的增长都远远超出了过去最乐观的估计,即使按照当时最优配置建设的网络,也很快会感到吃不消。如何在完成同样功能的多个网络设备之间实现合理的业务量分配,使之不致于出现一台设备过忙、而别的设备却未充分发挥处理能力的情况,负载均衡机制因此应运而生。本组在课堂上讲解了《集群监控与调度》这一课题,本人在小组内负责负载均衡部分内容,以及PPT的制作。 关键词:负载均衡集群网络计算机 一、前言 负载均衡建立在现有网络结构之上,它提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。它主要完成以下任务:解决网络拥塞问题,服务就近提供,实现地理位置无关性;为用户提供更好的访问质量;提高服务器响应速度;提高服务器及其他资源的利用效率;避免了网络关键部位出现单点失效。 其实,负载均衡并非传统意义上的“均衡”,一般来说,它只是把有可能拥塞于一个地方的负载交给多个地方分担。如果将其改称为“负载分担”,也许更好懂一些。说得通俗一点,负载均衡在网络中的作用就像轮流值日制度,把任务分给大家来完成,以免让一个人累死累活。不过,这种意义上的均衡一般是静态的,也就是事先确定的“轮值”策略。 与轮流值日制度不同的是,动态负载均衡通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理分配出去。结构上分为本地负载均衡和地域负载均衡(全局负载均衡),前一种是指对本地的服务器集群做负载均衡,后一种是指对分别放置在不同的地理位置、在不同的网络及服务器群集之间作负载均衡。 服务器群集中每个服务结点运行一个所需服务器程序的独立拷贝,诸如Web、FTP、Telnet或e-mail服务器程序。对于某些服务(如运行在Web服务器上的那些服务)而言,程序的一个拷贝运行在群集内所有的主机上,而网络负载均衡则将工作负载在这些主机间进行分配。对于其他服务(例如e-mail),只有一台主机处理工作负载,针对这些服务,网络负载均衡允许网络通讯量流到一个主机上,并在该主机发生故障时将通讯量移至其他主机。 二、负载均衡技术实现结构 在现有网络结构之上,负载均衡提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。它主要完成以下任务: 1.解决网络拥塞问题,服务就近提供,实现地理位置无关性 2.为用户提供更好的访问质量 3.提高服务器响应速度

通过LVS+Keepalived搭建高可用的负载均衡集群系统

1、安装LVS软件 (1)安装前准备 操作系统:统一采用Centos5.3版本,地址规划如下: 更详细的信息如下图所示: 图中的VIP指的是虚拟IP地址,还可以叫做LVS集群的服务IP,在DR、TUN模式中,数据包是直接返回给用户的,所以,在Director Server上以及集群的每个节点上都需要设置这个地址。此IP在Real Server上一般绑定在回环地址上,例如lo:0,同样,在Director Server 上,虚拟IP绑定在真实的网络接口设备上,例如eth0:0。 各个Real Server可以是在同一个网段内,也可以是相互独立的网段,还可以是分布在internet上的多个服务器.

(2)安装操作系统需要注意的事项 Centos5.3版本的Linux,内核默认支持LVS功能,为了方便编译安装IPVS管理软件,在安装操作系统时,建议选择如下这些安装包:l 桌面环境:xwindows system、GNOME desktop environment。 l 开发工具:development tools、x software development、gnome software、development、kde software development。 系统安装完毕,可以通过如下命令检查kernel是否已经支持LVS的ipvs模块: [root@localhost ~]#modprobe -l |grep ipvs /lib/modules/2.6.18-194.11.1.el5/kernel/net/ipv4/ipvs/ip_vs.ko /lib/modules/2.6.18-194.11.1.el5/kernel/net/ipv4/ipvs/ip_vs_dh.ko 如果有类似上面的输出,表明系统内核已经默认支持了IPVS模块。接着就可以安装IPVS管理软件了。

两台服务器集群巧搭建

服务器集群系统中,服务器不再分布在各处,而是集中在一起统一进行管理和维护。它保持了分布式客户机/服务器模式的开发性、可扩展性的优点,同时又具备了终端/主机模式的资源共享和集中易于管理的优点。 服务器集群系统中,服务器不再分布在各处,而是集中在一起统一进行管理和维护。它保持了分布式客户机/服务器模式的开发性、可扩展性的优点,同时又具备了终端/主机模式的资源共享和集中易于管理的优点。相对集中的集群系统,降低了系统管理的成本,而且还提供了和大型服务器系统相媲美的处理能力。 在传统的终端/主机的网络模式时代,终端功能简单,无需维护工作,在主机一端进行专门的管理与维护,具有资源共享、便于管理的特点。但是,主机造价昂贵,终端没有处理能力,限制了网络的规模化发展。之后的客户机/服务器模式推进了计算产业的标准化和开发化的发展,为系统提供了相当大的灵活性,但是随着分布系统规模的规模扩大,系统的维护和管理带来了巨大的开销。 面向Internet的服务型应用,需要高性能的硬件平台作为支持,将并行技术应用在服务器领域中,是计算机发展的必然趋势。并行处理技术在高性能计算领域中,高可用和高性能是集群服务器系统发展的两个重要方向。 集群的概念 集群英文名称是CLUSTER,是一组相互独立的、通过高速网络互联的计算机,它们构 成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。 和传统的高性能计算机技术相比,集群技术可以利用各档次的服务器作为节点,系统造价低,可以实现很高的运算速度,完成大运算量的计算,具有较高的响应能力,能够满足当今日益增长的信息服务的需求。 #P# 集群技术应用的需求 Internet用户数量呈几何级数增长和科学计算的复杂性要求计算机有更高的处理能力,而CPU的发展无法跟上不断增长的需求,于是我们面临以下问题: ●大规模计算如基因数据的分析、气象预报、石油勘探需要极高的计算性能。

服务器虚拟化集群技术方案

XX科研院所 服务器虚拟集群系统 技术方案

目录 1前言 (1) 2项目建设必要性分析 (1) 3方案设计 (3) 3.1总体拓扑 (3) 3.2方案概述 (3) 3.3VM WARE 服务器虚拟化方案 (5) 3.3.1服务器虚拟化方案概述 (5) 3.3.2方案架构及描述 (7) 3.3.3方案优势 (15) 3.4C ITRIX X EN DE SKTOP桌面虚拟化方案 (16) 3.4.1桌面虚拟化概述 (16) 3.4.2方案架构及描述 (29) 3.4.3Citrix产品及功能描述 (36) 3.5V F OGLIGHT虚拟环境监控方案 (40) 3.5.1虚拟环境监控方案概述 (40) 3.5.2方案介绍 (44) 3.6接入网络解决方案 (54) 3.6.1方案描述 (54) 3.6.2物理布局设计 (58) 3.6.3方案优势 (59) 3.6.4业务服务器区接入层设计的创新发展 (60) 3.6.5基于Nexus产品的创新设计总结 (64) 4配置方案 (65)

1前言 广泛采用的IT 平台在应用范围和复杂性方面急速发展,服务器数量、网络复杂程度和存储容量也随着一波波的技术变革而激增。由此导致的诸多问题目前仍在困扰着各信息化部门。如:服务器利用率低下、多应用并存导致系统不稳定、整机备份还原困难、计划内或计划外的停机导致服务中断等。 服务器虚拟化技术,经过数十年的发展,成功的解决了这些问题,为基础资源整合提供了理想的解决方案。通过部署服务器虚拟集群,将多个服务器、网络存储设备、备份系统等作为一个资源池,从资源池中灵活的分配适当的资源给相应的应用,使得上述问题迎刃而解。今天,服务器虚拟化技术已经被广泛应用在各个领域,作为绿色数据中心的核心技术手段,发挥着重大的作用。 2项目建设必要性分析 随着信息化工作的不断推进,XX科研院所已建立若干重要应用系统等。这些系统的正常运行切实保障了XX科研院所的科研生产顺利开展,大大提高了工作效率和科研能力。这些应用无不需要良好的服务器环境作为支撑,而且随着应用数量及性能要求的不断提高,对服务器环境资源的要求也将越来越高。同时,随着科研生产对信息化的依赖性增强,保障数据中心稳定、不间断的运行显得越来越重要。 数据中心现有多台服务器,每台服务器都运行多个应用服务。目前主要存在以下几个问题: 1.服务器资源使用率不均匀平均使用率低于40%。 2.计划外或计划内停机维护,影响应用服务的不间断运行。 3.部署新应用的成本较高。 这些问题越来越严重的影响着数据中心安全稳定的运行,解决这些问题迫在眉睫。

数据库负载均衡解决方案

双节点数据库负载均衡解决方案 问题的提出? 在SQL Server数据库平台上,企业的数据库系统存在的形式主要有单机模式和集群模式(为了保证数据库的可用性或实现备份)如:失败转移集群(MSCS)、镜像(Mirror)、第三方的高可用(HA)集群或备份软件等。伴随着企业的发展,企业的数据量和访问量也会迅猛增加,此时数据库就会面临很大的负载和压力,意味着数据库会成为整个信息系统的瓶颈。这些“集群”技术能解决这类问题吗?SQL Server数据库上传统的集群技术 Microsoft Cluster Server(MSCS) 相对于单点来说Microsoft Cluster Server(MSCS)是一个可以提升可用性的技术,属于高可用集群,Microsoft称之为失败转移集群。 MSCS 从硬件连接上看,很像Oracle的RAC,两个节点,通过网络连接,共享磁盘;事实上SQL Server 数据库只运行在一个节点上,当出现故障时,另一个节点只是作为这个节点的备份; 因为始终只有一个节点在运行,在性能上也得不到提升,系统也就不具备扩展的能力。当现有的服务器不能满足应用的负载时只能更换更高配置的服务器。 Mirror 镜像是SQL Server 2005中的一个主要特点,目的是为了提高可用性,和MSCS相比,用户实现数据库的高可用更容易了,不需要共享磁盘柜,也不受地域的限制。共设了三个服务器,第一是工作数据库(Principal Datebase),第二个是镜像数据库(Mirror),第三个是监视服务器(Witness Server,在可用性方面有了一些保证,但仍然是单服务器工作;在扩展和性能的提升上依旧没有什么帮助。

分布式与集群的区别

1、Linux集群主要分成三大类( 高可用集群,负载均衡集群,科学计算集群)(下面只介绍负载均衡集群) 负载均衡集群(Load Balance Cluster) 负载均衡系统:集群中所有的节点都处于活动状态,它们分摊系统的工作负载。一般Web服务器集群、数据库集群和应用服务器集群都属于这种类型。 负载均衡集群一般用于相应网络请求的网页服务器,数据库服务器。这种集群可以在接到请求时,检查接受请求较少,不繁忙的服务器,并把请求转到这些服务器上。从检查其他服务器状态这一点上看,负载均衡和容错集群很接近,不同之处是数量上更多。 2、负载均衡系统:负载均衡又有DNS负载均衡(比较常用)、IP负载均衡、反向代理负载均衡等,也就是在集群中有服务器A、B、C,它们都是互不影响,互不相干的,任何一台的机器宕了,都不会影响其他机器的运行,当用户来一个请求,有负载均衡器的算法决定由哪台机器来处理,假如你的算法是采用round算法,有用户a、b、c,那么分别由服务器A、B、C来处理; 3、分布式是指将不同的业务分布在不同的地方。 而集群指的是将几台服务器集中在一起,实现同一业务。 分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。 举例:就比如新浪网,访问的人多了,他可以做一个群集,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给哪一台去完成。 而分布式,从窄意上理解,也跟集群差不多,但是它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来。 分布式的每一个节点,都完成不同的业务,一个节点垮了,哪这个业务就不可访问了。

LVS+keepalived负载均衡(FULLNAT模式)

LVS FULLNAT 模式安装 By 清风徐来 605612253@https://www.360docs.net/doc/0110985929.html,
1 部署规划
依照淘宝开源的 FULLNAT 模式 LVS,规划使用版本信息: Linux 内核:2.6.32-220.23.1.el6 LVS 版本:version 1.2.1 Keepalived 版本:v1.2.2 序号 主机 IP 域名 作用 备注 1 10.142.67.121 TEST-DEV-121 Master 编译内核+LVS+keepalived 2 10.142.67.122 TEST-DEV-122 Backup 编译内核+LVS+keepalived 3 10.142.78.74 TEST-BDD-074 Hiveserver2 编译内核+hiveserver2 4 10.142.78.76 TEST-BDD-076 Hiveserver2 编译内核+hiveserver2
2 LVS 安装
2.1 内核编译
内核编译需要在 master 和 backup 节点都执行,以下以 master 节点为例 安装脚本:
compilekerna-LVSmaster.sh
由于不能上外网,所以提前把对应的安装包下好 下载的暂时放在家目录 [op@TEST-DEV-121 ~]$ ls compilekerna-LVSmaster.sh kernel-2.6.32-220.23.1.el6.src.rpm Lvs-fullnat-synproxy.tar.gz 安装 此处由于是编译内核,使用 root 用户来执行,以免遇到各种权限问题 [op@TEST-DEV-121 ~]$ sudo chmod +x compilekerna-LVSmaster.sh

搭建一个服务器集群

搭建一个服务器集群 包含负载均衡,HA高可用,MySQL主从复制,备份服务器,和监控服务器,服务用discuz 论坛演示 服务器配置如下 服务器名服务器ip服务器作用 backup192.168.199.180备份+zabbix监控+NFS Nginx1192.168.199.142主Director Nginx2192.168.199.145从Director Apache1192.168.199.200Apache1 Apache2192.168.199.210Apache2 Apache3192.168.199.233Apache3 Mysql1192.168.199.126主mysql Mysql2192.168.199.131从mysql Mysql3192.168.199.197从mysql VIP192.168.199.3Apache负载均衡VIP 在所有服务器上操作 #关闭selinux sed-i's/SELINUX=enforcing/SELINUX=disabled/'/etc/selinux/config&&setenforce0; #清空iptables iptables-F&&service iptables save; #安装nfs服务 yum install-y nfs-utils epel-release 配置backup服务器 mkdir-p/data/discuz#建立discuz应用目录 mkdir/opt/backup#建立backup目录 #设置目录的属主和属组 chown-R shared:shared/data/discuz chown-R shared:shared/opt/backup vi/etc/exports#设置共享目录 /data/discuz/192.168.199.0/24(rw,sync,all_squash,anonuid=500,anongid=500) /opt/backup/192.168.199.0/24(rw,sync,all_squash,anonuid=500,anongid=500) /etc/init.d/rpcbind start;/etc/init.d/nfs start#启动NFS服务 配置mysql服务器 #挂载NFS服务器backup目录 mount-t nfs-onolock192.168.199.180:/opt/backup/opt vi/etc/fstab 192.168.199.180:/opt/backup/opt nfs nolock00 安装MySQL #在3台mysql服务器上下载mysql5.7的二进制安装文件

服务器集群技术方案

服务器集群技术方案 集群(Cluster )技术是发展高性能计算机的一项技术。它是一组相互独立的计算机,利用高速通信网络组成一个单一的计算机系统,并以单一系统的模式加以管理。其出发点是提供高可靠性、可扩充性和抗灾难性。一个集群包含多台拥有共享数据存储空间的服务器,各服务器通过内部局域网相互通信。当一台服务器发生故障时,它所运行的应用程序将由其它服务器自动接管。在大多数模式 下,集群中所有的计算机拥有一个共同的名称,集群内的任一系统上运行的服务 都可被所有的网络客户使用。采用集群系统通常是为了提高系统的稳定性和网络中心的数据处理能力及服务能力。 当前主流的集群方式包括以下几种: 1. 服务器主备集群方式 服务器主-备方式由一台服务器在正常运行状态提供对外服务,其它集群节点作为备份机,备份机在正常状态下不接受外部的应用请求,实时对生产机进行检测,当生产机停机时才会接管应用服务,因此设备利用率最高可达50%主备 方式集群如下图所示,节点2为正常提供服务的服务器,运行多个应用 (pkgA,pkgB..),节点1平时只监控节点2的状态,不对外提供服务,当节点2 出现故障时,节点1将把两个应用接管过来,并对外提供服务。 图表错误!文档中没有指定样式的文字。-1主备方式集群 2. 服务器互备份集群方式 多台服务器组成集群,每台服务器运行独立的应用,同时作为其它服务器的 备份机,当主应用中断,服务将被其它集群节点所接管,接管服务的节点将运行自身应用和

故障服务器的应用,这种方式各集群节点的硬件资源均可被应用于对外服务。互备方式集群如下图所示,节点1和节点2分别运行1个或多个不同的应用,但只对外提供本地的主应用,两个节点之间互相进行监控,集群中任何一个节点出现故障后,另一个节点把故障节点的主应用接管过来,所有应用服务由一台服务器完成。 图表错误!文档中没有指定样式的文字。-2互备份方式集群 这种方式的主要缺点在于: 由于需要重新启动数据库核心进程,无法保证数据库系统连续不间断地运行 在系统切换的过程中,客户端与服务器之间的数据库连接会中断,需要重新进行数 据库的连接和登录工作 由于数据库系统只能在一台服务器上运行,另一台服务器无法分担系统的负载,实 际上造成了客户投资的浪费。在有些系统中,为了解决双机负载分担的问题,将应 用系统人为分割为两个数据库系统,分别在两台服务器上运行。这种方式在一定程 度上解决了负载分担的问题,但给系统管理、统计分析等业务处理带来了很多额外 的复杂性 3. 服务器并行集群方式 集群有多台服务器构成,同时提供相同的应用,可以实现多台服务器之间的负载均衡, 提供大访问量的应用需求,如Web访问及数据库等应用,服务器并行集群方式一般由应用系 统自身(如OracleRAC中间件负载均衡等)或外部专用服务器负载均衡设备实现。 jL# R?i uat Hiti.iEMXff DLM珀心XM4子耳 vVLH Ctid TW

几种负载均衡策略比较~

PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下。 一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术。具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了;如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的;大型网站或重要的服务,且服务器比较多时,可以考虑用LVS。一种是通过硬件来进行进行,常见的硬件有比较昂贵的F5和Array等商用的负载均衡器,它的优点就是有专业的维护团队来对这些服务进行维护、缺点就是花销太大,所以对于规模较小的网络服务来说暂时还没有需要使用;另外一种就是类似于Nginx/LVS/HAProxy的基于Linux的开源免费的负载均衡软件,这些都是通过软件级别来实现,所以费用非常低廉。 目前关于网站架构一般比较合理流行的架构方案:Web前端采用 Nginx/HAProxy+Keepalived作负载均衡器;后端采用MySQL数据库一主多从和读写分离,采用LVS+Keepalived的架构。当然要根据项目具体需求制定方案。 下面说说各自的特点和适用场合。 一、Nginx Nginx的优点是: 1、工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构,它的正则规则比HAProxy更为强大和灵活,这也是它目前广泛流行的主要原因之一,Nginx单凭这点可利用的场合就远多于LVS了。 2、Nginx对网络稳定性的依赖非常小,理论上能ping通就就能进行负载功能,这个也是它的优势之一;相反LVS对网络稳定性依赖比较大,这点本人深有体会; 3、Nginx安装和配置比较简单,测试起来比较方便,它基本能把错误用日志打印出来。LVS的配置、测试就要花比较长的时间了,LVS对网络依赖比较大。 3、可以承担高负载压力且稳定,在硬件不差的情况下一般能支撑几万次的并发量,负载度比LVS相对小些。 4、Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点,不过其中缺点就是不支持url来检测。比如用户正在上传一个文件,而处理该上传的节点刚好在上传过程中出现故障,Nginx会把上传切到另一台服务器重新处理,而LVS就直接断掉了,如果是上传一个很大的文件或者很重要的文件的话,用户可能会因此而不满。 5、Nginx不仅仅是一款优秀的负载均衡器/反向代理软件,它同时也是功能强大的Web应用服务器。LNMP也是近几年非常流行的web架构,在高流量的环境中稳定性也很好。 6、Nginx现在作为Web反向加速缓存越来越成熟了,速度比传统的Squid服务器更快,可以考虑用其作为反向代理加速器。 7、Nginx可作为中层反向代理使用,这一层面Nginx基本上无对手,唯一可以对比

服务器负载均衡

服务器集群方案 LVS项目简介 LVS--Linux Virtual Server(Linux虚拟服务器)。针对高可伸缩、高可用网络服务的需求,LVS采用了基于IP层和基于内容请求分发的负载平衡调度解决方法,并在Linux内核中实现了这些方法,将一组服务器构成一个实现可伸缩的、高可用网络服务的虚拟服务器。一组服务器通过高速的局域网或者地理分布的广域网相互连接,在它们的前端有一个负载调度器。负载调度器能无缝地将网络请求调度到真实服务器上,从而使得服务器集群的结构对客户是透明的,客户访问集群系统提供的网络服务就像访问一台高性能、高可用的服务器一样。客户程序不受服务器集群的影响不需作任何修改。系统的伸缩性通过在服务机群中透明地加入和删除一个节点来达到,通过检测节点或服务进程故障和正确地重置系统达到高可用性。二、IP虚拟服务器软件IPVS 在调度器的实现技术中,IP负载均衡技术是效率最高的。在已有的IP负载均衡技术中有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,称之为VS/NAT技术(Virtual Server via Network Address Translation),大多数商品化的IP负载均衡调度器产品都是使用此方法,如Cisco的LocalDirector、F5的Big/IP和 Alteon的ACEDirector。在分析VS/NAT的缺点和网络服务的非对称性的基础上,LVS提供通过IP隧道实现虚拟服务器的方法VS/TUN (Virtual Server via IP Tunneling),和通过直接路由实现虚拟服务器的方法VS/DR (Virtual Server via Direct Routing),它们可以极大地提高系统的伸缩性。所以,IPVS软件实现了这三种IP负载均衡技术,它们的大致原理如下: 1、Virtual Server via Network Address Translation(VS/NAT)通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器;真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。 2、Virtual Server via IP Tunneling(VS/TUN)采用NAT技术时,由于请求和响应报文都必须经过调度器地址重写,当客户请求越来越多时,调度器的处理能力将成为瓶颈。为了解决这个问题,调度器把请求报文通过IP隧道转发至真实服务器,而真实服务器将响应直接返回给客户,所以调度器只处理请求报文。由于一般网络服务应答比请求报文大许多,采用 VS/TUN技术后,集群系统的最大吞吐量可以提高10倍。

相关文档
最新文档