搜档网
当前位置:搜档网 › centos6.4安装nginx+keepalived实现高可用负载均衡

centos6.4安装nginx+keepalived实现高可用负载均衡

centos6.4安装nginx+keepalived实现高可用负载均衡
centos6.4安装nginx+keepalived实现高可用负载均衡

centos6.4安装nginx+keepalived实现高可用负载均衡

首先理解上图:一个高访问量的站点(每天100万PV),可以使用以上的服务器组成配置。该站点总共由7台服务器组成,图片文件服务器负责整个站点的图片存储(当然高访问量的站点当然需要cnd图片加速了),两台数据库服务器形成主从备份保证了数据运算的速度,同时保证了当其中一台服务器宕机后,还有一台数据库服务器保证系统的运行,两台web服务器保证了系统的快速响应请求,同时其中一台web服务器宕机后还有一个web服务器提供服务。两台nginx代理服务负责转发用户的请求,问题是,两台nginx有两个ip,怎么才能保证一台nginx服务器宕机后,另一台服务器自动接手服务呢?keepalived提供的VRRP虚拟路由服务就可以解决这个问题。

一、安装必要的软件包,以保证nginx和keepalived能安装:

yum -y install gcc gcc-c++ make

yum -y install wget #安装下载工具

yum -y install pcre-devel #安装nginx的依赖软件包

yum -y install openssl-devel #安装keepalived依赖软件包

yum -y install popt-devel #安装keepalived依赖软件包

二、安装nginx

wget https://www.sodocs.net/doc/9010367414.html,/download/nginx-1.2.8.tar.gz #下载nginx

tar -zxf nginx-1.2.8.tar.gz #解压nginx

cd nginx-1.2.8

groupadd www #添加www用户组

useradd -g www www #新添加www用户,且用户组隶属于www用户组

./configure --user=www --group=www --prefix=/usr/local/nginx

--with-http_stub_status_module --with-http_ssl_module

make && make install #编译,--with-http_stub_status_module --with-http_ssl_module这两个模块必须开启

编写nginx启动脚本

cat < /etc/init.d/nginx

#!/bin/bash

#

# chkconfig: - 85 15

# description: Nginx is a World Wide Web server.

# processname: nginx

nginx=/usr/local/nginx/sbin/nginx #nginx执行路径

conf=/usr/local/nginx/conf/nginx.conf #nginx配置文件路径

case \$1 in

start)

echo -n "Starting Nginx"

\$nginx -c \$conf

echo " done"

;;

stop)

echo -n "Stopping Nginx"

killall -9 nginx

echo " done"

;;

test)

\$nginx -t -c \$conf

;;

reload)

echo -n "Reloading Nginx"

ps auxww | grep nginx | grep master | awk '{print \$2}' | xargs kill -HUP echo " done"

;;

restart)

killall -9 nginx

echo -n "Stopping Nginx"

\$nginx -c \$conf

echo -n "Starting Nginx"

echo " done"

;;

show)

ps -aux|grep nginx

;;

*)

echo -n "Usage: \$0 {start|restart|reload|stop|test|show}"

;;

esac

EOF

chmod +x /etc/init.d/nginx

service nginx start

chkconfig nginx on

service nginx start

在浏览器浏览你的nginx看看是否启动。

三、安装keepalived-1.2.0

wget https://www.sodocs.net/doc/9010367414.html,/software/keepalived-1.2.0.tar.gz

tar -zxf keepalived-1.2.0.tar.gz

cd keepalived-1.2.0

./configure --prefix=/usr/local/keepalived

make && make install

cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/

mkdir /etc/keepalived

编写keepalived的配置

cat < /etc/keepalived/keepalived.conf

! Configuration File for keepalived

vrrp_script chk_http_port {

script "/etc/keepalived/nginx_pid.sh" #nginx监控脚本路径,改脚本可以把死掉的nginx进程重新启动。

interval 2

weight 2

}

global_defs {

router_id LVS_DEVEL

}

vrrp_instance VI_1 {

state MASTER #状态,位主,从机使用BACKUP

interface eth0 #把那块网卡映射寻ip

virtual_router_id 51 #虚拟路由id号,这个和从keepalived机子一样。

priority 100 #权重,那个权重高,那个就是主的,所以MASTER的权重必须高于BACKUP

advert_int 1

authentication {

auth_type PASS #主从机子通信的加密方式,两台

必须一样

auth_pass 123456 #主从机子通信的加密密码,两台必须一样

}

track_script {

chk_http_port #监控脚本,chk_http_port对应的是第3行的vrrp_script chk_http_port,

}

virtual_ipaddress {

192.168.1.250 #虚拟IP

}

EOF

service keepalived start

ip addr 看看是否有以下内容:如果内看到以下内容就表明你keepalived配置正确了,然后你用192.168.137.120这个虚拟ip是否和192.168.137.110这个ip看到的是一样的,如果是一样就表明可以了

编写nginx的监控脚本:

cat < /etc/keepalived/nginx_pid.sh

#!/bin/bash

while :

do

nginxpid=`ps -C nginx --no-header | wc -l`

if [ $nginxpid -eq 0 ];then

/usr/local/nginx/sbin/nginx

sleep 5

if [ $nginxpid -eq 0 ];then

/etc/init.d/keepalived stop

fi

fi

sleep 5

done

EOF

四、经过以上的配置,虚拟路由是可以启动了,当主虚拟路由机宕机后,从虚拟路由机后接手。下面来配置nginx的转发代理。

nginx的配置如下:

user www www;

worker_processes 2;

#error_log logs/error.log;

#error_log logs/error.log notice;

#error_log logs/error.log info;

#pid logs/nginx.pid;

events {

use epoll;

worker_connections 65535;

}

http {

include mime.types;

default_type application/octet-stream;

server_names_hash_bucket_size 128;

client_header_buffer_size 32k;

client_max_body_size 300m;

sendfile on;

tcp_nopush on;

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

fastcgi_temp_file_write_size 128k;

keepalive_timeout 90;

tcp_nodelay on;

server_tokens off;

gzip on;

gzip_min_length 1k;

gzip_http_version 1.1;

gzip_comp_level 2;

gzip_types text/plain application/x-javascript text/css application/xml;

gzip_vary on;

include vhost/*.conf;

}

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.sodocs.net/doc/9010367414.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

利用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.sodocs.net/doc/9010367414.html,/software/kernel-2.6/ipvsadm-1.24.tar.gz ? #wget https://www.sodocs.net/doc/9010367414.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

负载均衡--LVS+Keepalived

利用LVS+Keepalived 实现高性能高可用负载均衡 作者:NetSeek 网站: https://www.sodocs.net/doc/9010367414.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

通过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管理软件了。

数据库负载均衡解决方案

双节点数据库负载均衡解决方案 问题的提出? 在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,在可用性方面有了一些保证,但仍然是单服务器工作;在扩展和性能的提升上依旧没有什么帮助。

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

LVS FULLNAT 模式安装 By 清风徐来 605612253@https://www.sodocs.net/doc/9010367414.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

几种负载均衡策略比较~

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集群搭建和测试报告 Lvs(Linux Virtual Server)是Linux下的负载均衡器,支持LVS-NA T、 LVS-DR、LVS-TUNL三种不同的方式,NA T用的不是很多,主要用的是DR、TUNL方式。DR方式适合所有的RealServer在同一网段下,即接在同一个交换机上。TUNL方式不限制RealServer 的位置,完全可以跨地域、空间,只要系统支持Tunnel就可以。 运行Lvs的前端调度器,目前只能为Linux,针对FreeBSD刚刚出来,性能不是很好。可以针对Web、MySQL、Ftp等服务做load balances。后端的RealServer则可以为各类系统,Linux、Solaris、Aix、BSD、Windows都可。 下面主要针对DR方式下的Web、MySQL负载均衡,以及Lvs + HA做功能性的验证和性能方面的测试。 1.集群系统拓扑

2.环境搭建说明 1.前端Load Balancer、Backup为虚拟机Linux系统,后端两台Real Server为纯Linux系 统。 2.192.168.6.229为前端负载均衡调度器,虚拟IP为192.168.6.111,安装并配置了ipvsadm (负载均衡)、ldirectord(健康监控)服务。 3.192.168.6.230为调度器的备份,采用heartbeat实现。 4.192.168.6.240、192.168.6.241为两台提供服务的真实Server。 3.功能性验证 首先在Load Balancer上安装ipvsadm、ldirectord、heartbeat服务,备机上也相同,可以用YUM进行安装,安装完成后需要将ha.cf、haresources、authkeys、ldirectord.cf文件拷贝到/etc/ha.d/ 目录下。 3.1. 验证Apache负载均衡。 3.1.1.配置 1.配置Load Balancer的ipvsadm,脚本内容如下:

nginx负载均衡高可用

n g i n x负载均衡高可用 This model paper was revised by the Standardization Office on December 10, 2020

1nginx负载均衡高可用 1.1什么是负载均衡高可用 nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机后端web服务将无法提供服务,影响严重。 为了屏蔽负载均衡服务器的宕机,需要建立一个备份机。主服务器和备份机上都运行高可用(High Availability)监控程序,通过传送诸如“I am alive”这样的信息来监控对方的运行状况。当备份机不能在一定的时间内收到这样的信息时,它就接管主服务器的服务IP并继续提供负载均衡服务;当备份管理器又从主管理器收到“I am alive”这样的信息时,它就释放服务IP地址,这样的主服务器就开始再次提供负载均衡服务。 1.2keepalived+nginx实现主备 1.2.1什么是keepalived keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。 Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。 1.2.2keepalived工作原理 keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。

虚拟化群集中的网络负载平衡和高可用性

什么是群集?简单的说,群集(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是群集的节点(node)。一个理想的群集是,用户从来不会意识到群集系统底层的节点,在用户看来,群集是一个完整系统,而非多个计算机系统。并且群集系统的管理员可以随意增加和删改群集系统的节点。 服务器群集 如上图,由2台服务器(Server1,Server2)组成的群集方式,其中每台服务器的地位是平等的。都可以为客户端提供服务并且不用其它服务器的辅助。上图中Server3是服务器群集虚拟出来的主机,客户端所能看到的群集只是一台Server3主机。群集中的主机将均衡处理客户端发来的应用请求,以此来实现负载均衡(NLB);如果某一台服务器出现宕机,客户端发来的应用请求将被分配给另外一台服务器,通过这种方式来保障业务应用的高可用性(HA)。

虽然,根据群集系统的不同特征可以有多种分类方法,但是一般把群集系统分为两类:高可用(High Availability)群集,简称HA群集;性能计算(High Perfermance Computing)群集,简称HPC群集,也称为科学计算群集。在本文中我们只介绍前者。 HA群集,不难理解,这类群集致力于提供高度可靠的服务。就是利用群集系统的容错性对外提供7*24小时不间断的服务,如高可用的文件服务器、数据库服务等关键应用。HA群集和负载均衡(NLB)群集之间的界限有时非常模糊,负载均衡群集使任务可以在群集中尽可能平均地分摊到不同的计算机中进行处理,充分利用群集的处理能力,提高对任务的处理效率。在实际应用中,这几种群集类型可能会混合使用,以提供更加高效稳定的服务。如在一个使用的网络流量负载均衡群集中,就会包含高可用的网络文件系统、高可用的网络服务。 服务器群集技术常见的有Linux中的LVS和Windows中的NLB。NLB即Network Load Balancing,也就是网络负载平衡。Microsoft在所有的Windows Server操作系统上提供这一负载平衡技术。NLB的用途很广,将多台应用服务器通过NLB的方式捆绑在一起,这样以来NLB可以根据实际的访问流量均分开来减少各服务器的网络占用及资源占用,所以NLB 被广泛用于终端服务、Web服务、FTP服务等,用来解决大量并发访问服务问题,帮助用户使用较少的投资获得接近于大型主机的性能。同时,由于实际处理应用请求的服务器变为多台,高可用性也得到了有效的保证。 大致概括一下群集技术的主要优点,主要包括以下4个方面: (1)高可扩展性:群集系统的管理员可以随意增加和删改群集系统的节点。

可扩展、高可用与负载均衡网站架构设计策划方案

可扩展、高可用、负载均衡网站架构设计方案 2009-06-08 13:22 差不多需求: 1、高可用性:将停止服务时刻降低到最低甚至是不间断服务 2、可扩展性:随着访问的增加,系统具备良好的伸缩能力 3、可视性:系统、服务的状态处于一个实时的监控之下 4、高性能高可靠性:通过优化的体系结构及合理的备份策略 5、安全性:结构上的安全及主机的安全策略 差不多思路 1、关于访问频繁,用户量大的对象(bbs,blog)采纳某种合理的方式负载到多个 服务器上。把数据库独立出来,预备2套mysql数据库,以实现主从复制,即减轻负载,又提高了可靠性。更近一步,使用mysql proxy技术,实现主从服务器的读写分离,大大提高那个系统的性能和负载能力。 2、数据库与外部网络隔离,只同意web服务器(bbs,blog等)通过私有地址方 式访问。如此就提高了数据库的安全性,同时也节约了宝贵的带宽。 3、部署监控系统,通过监控主机存活、服务、主机资源,实时把系统的健康状 态置于可视状态,对系统的运营状态心中有数。 4、备份是想都不用想的情况,使用单独的服务器集中备份,是一个比较不错的 主意。 拓扑结构

业务逻辑

技术实现 1、负载均衡。2台同样配置的linux服务器,内核支持lvs,配置keepalived工具,即可实现负载转发。一旦其后的真实服务器出现故障,keepalived会自动把故障机器从转发队列删除掉,等到故障修复,它又会自动把真实服务器的地址加入转发列表。由于lvs支持会话保持,因此关于bbs 如此的应用,一点也不用担心其登录丢失。 2、mysql主从复制。即保证数据的安全,又提高了访问性能。我们在前端的每个web服务器上加入mysql proxy那个工具,即可期待实现读写的自动分离,让写的操作发生在主数据库,让查询这类读操作发生在从数据库。 3、nagios是一个开源的,受广泛欢迎的监控平台。它可对主机的存活、系统资源(磁盘空间、负载等)、网络服务进行实时监控。一旦探测到故障,将自动发送邮件(短信)通知故障。 4、备份。包括web数据和数据库服务器的备份。关于web服务而言,GNU tar 即可实现备份的一切愿望。简单的设置一下crontab 就能够让系统在我们做梦的时刻老老实实的帮我们备份了。然而,由于空间的限制,不可能一直备份下去,因此要做一个合适的策略,以不断的用新的备份去替换陈旧的备份数据;多少天合适?看磁盘容量吧。关于数据库,先mysqldump一下,再tar.完成这些工作后把备份文件传输到备份服务器集中。一个比较省事的方法是把备份服务器以NFS 方式挂接到web服务器及数据库服务器。

LVS负载均衡DR模式—直接路由模式

LVS负载均衡DR模式—直接路由模式 Virtual server via direct routing (vs/dr) DR模式是通过改写请求报文的目标MAC地址,将请求发给真实服务器的,而真实服务器响应后的处理结果直接返回给客户端用户。同TUN模式一样,DR模式可以极大的提高集群系统的伸缩性。而且DR模式没有IP隧道的开销,对集群中的真实服务器也没有必要必须支持IP隧道协议的要求。但是要求调度器LB与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。 DR模式是互联网使用比较多的一种模式。 DR模式原理图: DR模式原理过程简述: VS/DR模式的工作流程图如上图所示,它的连接调度和管理与NAT和TUN中的一样,它的报文转发方法和前两种不同。DR模式将报文直接路由给目标真实服务器。在DR模式中,调度器根据各个真实服务器的负载情况,连接数多少等,动态地选择一台服务器,不修改目标IP地址和目标端口,也不封装IP报文,而是将请求报文的数据帧的目标MAC地址改为真实服务器的MAC

地址。然后再将修改的数据帧在服务器组的局域网上发送。因为数据帧的MAC地址是真实服务器的MAC地址,并且又在同一个局域网。那么根据局域网的通讯原理,真实复位是一定能够收到由LB发出的数据包。真实服务器接收到请求数据包的时候,解开IP包头查看到的目标IP是VIP。(此时只有自己的IP符合目标IP才会接收进来,所以我们需要在本地的回环借口上面配置VIP。另:由于网络接口都会进行ARP广播响应,但集群的其他机器都有这个VIP的lo接口,都响应就会冲突。所以我们需要把真实服务器的lo接口的ARP响应关闭掉。)然后真实服务器做成请求响应,之后根据自己的路由信息将这个响应数据包发送回给客户,并且源IP地址还是VIP。 DR模式小结: 1、通过在调度器LB上修改数据包的目的MAC地址实现转发。注意源地址仍然是CIP,目的地址仍然是VIP地址。 2、请求的报文经过调度器,而RS响应处理后的报文无需经过调度器LB,因此并发访问量大时使用效率很高(和NAT模式比) 3、因为DR模式是通过MAC地址改写机制实现转发,因此所有RS节点和调度器LB只能在一个局域网里面 4、RS主机需要绑定VIP地址在LO接口上,并且需要配置ARP抑制。 5、RS节点的默认网关不需要配置成LB,而是直接配置为上级路由的网关,能让RS直接出网就可以。 6、由于DR模式的调度器仅做MAC地址的改写,所以调度器LB就不能改写目标端口,那么RS服务器就得使用和VIP相同的端口提供服务。 测试拓扑图:

LVS搭建高可用性Web负载均衡服务器

LVS搭建高可用性Web负载均衡服务器 一.系统需求 实现Linux下的Web服务器负载均衡,LVS以主备方式工作,并且实现LVS机器同时加入Web服务器群。 二.软硬件需求 操作系统:Red Hat Enterprise Linux Server release 5(关闭selinux及iptables) 相关软件:heartbeat-2.1.4 、net-snmp 、lm_sensors 、net-snmp、ipvsadm、perl模块 网络要求:所有服务器位于同一VLan,机器无特殊要求。 三.软件安装 以本次安装为例,先后安装下列rpm包以解决依赖关系. #rpm –ivh libnet-1.1.2.1-2.1.i386.rpm #rpm –ivh ipvsadm-1.24-8.1.i386.rpm #rpm –ivh lm_sensors-2.10.0-3.1.i386.rpm #rpm –ivh net-snmp-libs-5.3.1-14.el5.i386.rpm #rpm –ivh net-snmp-5.3.1-14.el5.i386.rpm #rpm –ivh perl-Compress-Zlib-1.42-1.fc6.i386.rpm #rpm –ivh perl-HTML-Parser-3.55-1.fc6.i386.rpm #rpm –ivh perl-HTML-Tagset-3.10-2.1.1.noarch.rpm #rpm –ivh perl-Net-SSLeay-1.30-4.fc6.i386.rpm #rpm –ivh perl-TimeDate-1.16-5.el5.noarch.rpm #rpm –ivh perl-MailTools-2.02-1.el5.rf.noarch.rpm #rpm –ivh perl-URI-1.35-3.noarch.rpm #rpm –ivh perl-libwww-perl-5.805-1.1.1.noarch.rpm 以上软件包主要用来实现ISO/RM 2/3层数据转换及7层应用检测。 #rpm –ivh heartbeat-stonith-2.1.4-4.1.i386.rpm #rpm –ivh heartbeat-pils-2.1.4-4.1.i386.rpm #rpm –ivh heartbeat-ldirectord-2.1.4-4.1.i386.rpm #rpm –ivh heartbeat-2.1.4-4.1.i386.rpm #rpm –ivh heartbeat-devel-2.1.4-4.1.i386.rpm

软件负载均衡优缺点总结

(总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解 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的优点是: 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服务器

CentOs 5.0 LVS负载均衡集群

CentOs 5.3 LVS负载均衡集群 一、什么是IPVS? IPVS(ip virtual server):它是由毕业于国防科技大学的章文嵩博士主持的一个开源的集群负载均衡软件,创立于1998年5月,可以实现Linux平台下的简单负载均衡。 二、什么是LVS? 支持IPVS的集群负载均衡器和集群节点一起称为LVS (Linux Virtual Server)。 三、Linux集群分类 集群计算机按功能和经构可以分成以下几类: ?高可用性集群(High-availability (HA) clusters) 高可用性集群运行两个或多个节点上,当集群中有某个节点失 效的情况下,其上的任务会自动转移到其他正常的节点上。还 指可以将集群中的某节点进行离线维护再上线,该过程并不影 响整个集群的运行。 ?负载均衡集群(Load balancing clusters) 负载均衡集群运行时,一般通过一个或者多个前端负载均衡器 将工作负载分发到后端的一组服务器上,从而达到整个系统的 高性能和高可用性。这样的计算机集群有时也被称为服务器群 (Server Farm)。 ?高性能计算集群(High-performance (HPC) clusters) 按照计算关联程度的不同,又可以分为两种。一种是任务片方

式,要把计算任务分成任务片,再把任务片分配给各节点,在 各节点上分别计算后再把结果汇总,生成最终计算结果。另一 种是并行计算方式,节点之间在计算过程中大量地交换数据, 可以进行具有强耦合关系的计算。这两种超级计算集群分别适 用于不同类型的数据处理工作。有了超级计算集群软件,企业 利用若干台PC机就可以完成通常只有超级计算机才能完成的 计算任务。 ?网格计算(Grid computing) 网格计算即分布式计算,是一门计算机科学。它研究如何把一 个需要非常巨大的计算能力才能解决的问题分成许多小的部 分,然后把这些部分分配给许多计算机进行处理,最后把这些 计算结果综合起来得到最终结果。 四、LVS集群的种类 LVS集群种类通常是通过LVS Director中继到集群节点的请求的方法来形容的,目前有三种可用的方法: ?LVS-NAT 基于网络地址转换(network address translation ,NAT) ?LVS-DR 直接路由(direct routing,DR),包上的MAC地址被更改,然 后被转发到real-server ?LVS-Tun 隧道(tunnelling) ,包被IPIP封装,然后被转发到

使用LVS+Keepalived 实现高性能高可用负载均衡实际操作说明

使用LVS+Keepalived 实现高性能高可用负载均衡实际操作说明kkmangnn 网站: https://www.sodocs.net/doc/9010367414.html,/way2rhce 前言: 本文档用keepalived实现负载均衡和高可用性 一. 网站负载均衡拓朴图 . 系统环境:CentOS 5.2 ,需要安装有gcc openssl-devel kernel-devel包 二. 安装LVS和Keepalvied软件包 1. 下载相关软件包 #mkdir /usr/local/src/lvs #cd /usr/local/src/lvs #wget https://www.sodocs.net/doc/9010367414.html,/software/kernel-2.6/ipvsadm-1.24.tar.gz #wget https://www.sodocs.net/doc/9010367414.html,/software/keepalived-1.1.15.tar.gz 2. 安装LVS和Keepalived #lsmod |grep ip_vs #uname -r 2.6.18-92.el5 #ln -s /usr/src/kernels/2.6.18-92.el5-i686/ /usr/src/linux

#tar zxvf ipvsadm-1.24.tar.gz #cd ipvsadm-1.24 #make && make install #tar zxvf keepalived-1.1.15.tar.gz #cd keepalived-1.1.15 #./configure && make && make install 把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 三.配置web服务器的脚本. #vi /usr/local/src/lvs/web.sh #!/bin/bash SNS_VIP=192.168.0.8 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"

负载均衡系统构架

负载均衡系统构架 负载均衡系统构架 【摘要】随着计算机网络和Internet应用的飞速发展,信息共享日益广泛化,并深入到人们工作和生活的各个领域。人们对信息共享的依赖正逐渐增强。而作为提供信息载体的服务器的压力也越来越大,对于电子商务、信息共享平台急需合理分配访问流量来减少服务器的压力。 本文对目前的负载均衡技术进行简单的阐述,并对现有均衡算法进行简单的比较,分析其不足之处。并采用LVS(Linux虚拟服务器)实现负载均衡的架构。采用Keepalived技术实现负载均衡的高可用性。并对LVS不同策略上实现的均衡结果进行详细的比较。最终完成对负载均衡系统的构建同时提供了详细的系统搭建步骤,为研究该方向的人员提供可靠的参考资料。 【关键词】负载均衡、LVS、Keepalived、高并发 中图分类号:TN711 文献标识码:A 文章编号: 简介 1.1背景 目前随着网络技术的迅速崛起,网络信息共享数据越来越大,访问量和数据流量的快速增长,所需的处理能力和运算强度也越来越大,使得单一的服务器设备根本无法承担。在此情况下,如果花大量的资金进行硬件方面的升级,会造成大量的资源浪费。并且对于下一次升级来说,将会投入更大的成本,如何才能利用现有资源,在少量的投入下解决该问题? 针对此情况而衍生出来的一种廉价有效透明的方法来扩展现有网络设备和服务器的带宽、增加吞吐量、加强网络数 据处理能力、提高网络的灵活性和可用性的技术就是负载均 衡(Load Balance)。 1.2负载均衡技术概述 负载均衡(又称为负载分担),英文名称为Load Balance,其

集群HA负载均衡技术

集群、双机、负载均衡、HA、HPC、NLB 1.1什么是集群 简单的说,集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。 一个理想的集群是,用户从来不会意识到集群系统底层的节点,在他/她们看来,集群是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意增加和删改集群系统的节点。 1.2 集群系统的主要优点: (1)高可扩展性: (2)高可用性HA:集群中的一个节点失效,它的任务可传递给其他节点。可以有效防止单点失效。 (3)高性能:负载平衡集群允许系统同时接入更多的用户。 (4)高性价比:可以采用廉价的符合工业标准的硬件构造高性能的系统。 2.1 集群系统的分类 虽然,根据集群系统的不同特征可以有多种分类方法,但是一般把集群系统分为两类: (1)、高可用(High Availability)集群,简称HA集群。 这类集群致力于提供高度可靠的服务。就是利用集群系统的容错性对外提供7*24小时不间断的服务,如高可用的文件服务器、数据库服务等关键应用。 负载均衡集群:使任务可以在集群中尽可能平均地分摊不同的计算机进行处理,充分利用集群的处理能力,提高对任务的处理效率。 在实际应用中这几种集群类型可能会混合使用,以提供更加高效稳定的服务。如在一个使用的网络流量负载均衡集群中,就会包含高可用的网络文件系统、高可用的网络服务。 (2)、性能计算(High Perfermance Computing)集群,简称HPC集群,也称为科学计算集群。 在这种集群上运行的是专门开发的并行应用程序,它可以把一个问题的

DNS服务器LVS方式负载均衡部署与测试

DNS服务器LVS方式负载均衡部署与测试测试环境: 本测试方案采用LVS(DR)+Keepalived部署高可用的DNS服务集群。 主机IP划分: Master-LB:192.168.100.70 Backup-LB:192.168.100.30 RS1:192.168.100.40 RS2:192.168.100.60 Clinet:192.168.100.200 拓扑图:

LB-2:192.168.100.30Backup LB-1:192.168.100.70 Master DNS-RS1:192.168.100.40 DNS-RS2:192.168.100.60 1、配置Maste-LB 服务器: 1、 安装ipvsadm ; yum install ipvsadm* -y 2、 安装keepalived yum install keepalived -y 3、 配置配置keepalived #cat /etc/keepalived/keepalived.conf ! Configuration File for keepalived

global_defs { notification_email { 460249547@https://www.sodocs.net/doc/9010367414.html, } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_1 } vrrp_instance VI_1 { state MASTER interface eth1 virtual_router_id 50 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.100.100 } }

相关主题