- 浏览: 145926 次
文章分类
最新评论
-
yajie:
写的一知半解,丁你个费!
数据挖掘(协同过滤、关联推荐、聚类分类)一些资料 -
xo_knight:
7.0有什么新的功能和改变吗
MyEclipse7.0相关备忘 -
kjj:
# <interceptor-ref name=&quo ...
Struts2 Action方法执行两次的问题?model-driven奇怪现象 -
xuhuasen:
我工程只是在ajax异步发送action方法时才执行了两次,检 ...
Struts2 Action方法执行两次的问题?model-driven奇怪现象 -
azure1898:
可能是你的提交按钮是submit类型,并且在按钮的onclic ...
Struts2 Action方法执行两次的问题?model-driven奇怪现象
集群技术主要分为三大类:
- 高可用性(High Available Cluster),例:Linux-HA
- 负载均衡(Load balancing Cluster),例:LVS、MOSIX
- 高性能计算(High Performance Computing),例:Beowulf
我们这里使用RedHat AS 3.x,LVS,Linux-HA,Ldirectord,构造一个高可用的负载均衡集群系统。如图:
各层的作用:
|
各服务器IP分配:
Virtual IP: | 192.168.136.10 |
Load Balancer: | 192.168.136.11 |
Backup: | 192.168.136.12 |
Real Server 1: | 192.168.136.101 |
Real Server 2: | 192.168.136.102 |
Real Server 3: | 192.168.136.103 |
IPVS
IPVS是LVS集群系统的核心软件,它的主要作用是:
|
IPVS的负载均衡机制有三种,这里使用IP Tunneling机制:
|
IPVS的负载调度算法有十种:
- 轮叫(Round Robin)
- 加权轮叫(Weighted Round Robin)
- 最少链接(Least Connections)
- 加权最少链接(Weighted Least Connections)
- 基于局部性的最少链接(Locality-Based Least Connections)
- 带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)
- 目标地址散列(Destination Hashing )
- 源地址散列(Source Hashing)
- 最短期望延迟(Shortest Expected Delay)
- 无须队列等待(Never Queue)
IPVS安装主要包括三方面:
|
关于如何编译内核请参考其他文档,这里使用从UltraMonkey下载的已编译好的内核。
在Load Banlancer、Backup和Real Server上使用同一内核,IPVS和ARP hidden都已编译在这个内核里:
wget http://www.ultramonkey.org/download/2.0.1/rh.el.3.0/RPMS/mkinitrd-3.5.13-1.um.1.i386.rpm
wget http://www.ultramonkey.org/download/2.0.1/rh.el.3.0/RPMS/kernel-2.4.21-27.0.2.EL.um.1.i686.rpm
wget http://www.ultramonkey.org/download/2.0.1/rh.el.3.0/RPMS/kernel-smp-2.4.21-27.0.2.EL.um.1.i686.rpm
rpm -Fhv mkinitrd-3.5.13-1.um.1.i386.rpm
rpm -Fhv kernel-2.4.21-27.0.2.EL.um.1.i686.rpm
在Load Banlancer和Backup上安装IPVS管理软件:
wget http://www.linuxvirtualserver.org/software/kernel-2.4/ipvs-1.0.10.tar.gz tar zxf ipvs-1.0.10.tar.gz chkconfig --del ipvsadm |
配置IPVS(/etc/sysconfig/ipvsadm),添加Real Server:
-A -t 192.168.136.10:80 -s rr -a -t 192.168.136.10:80 -r 192.168.136.11:80 -i -a -t 192.168.136.10:80 -r 192.168.136.12:80 -i
-a -t 192.168.136.10:80 -r 192.168.136.101:80 -i |
相关链接:
Kernel:http://www.kernel.org/ IPVS和IPVSadm:http://www.linuxvirtualserver.org/software/ipvs.html ARP hidden:http://www.ssi.bg/~ja/#hidden |
注意事项:
1. Kernel,IPVS,IPVSadm,ARP hidden之间的版本必须对应。 2. 自己编译内核时,从http://www.kernel.org/下载标准内核源文件,不要使用发行版的内核源文件。 3. Kernel 2.4.28和2.6.10及以上版本已内置IPVS,有些Linux发行版也在其内核里编译了IPVS。 4. ARP hidden可以用arp_ignore/arp_announce或者arptables代替 |
HeartBeat
HeartBeat是Linux-HA的高可用性集群软件,它的主要作用是:
|
HeartBeat串口线连接测试方法:
在Load Balancer上:cat < /dev/ttyS0 在Backup上:echo hello > /dev/ttyS0 |
修改主机名(/etc/hosts):
127.0.0.1 localhost.localdomain localhost 192.168.136.11 loadbalancer
192.168.136.12 backup |
安装:
groupadd -g 694 haclient useradd -u 694 -g haclient hacluster rpm -ivh /mnt/cdrom/RedHat/RPMS/glib2-devel-* wget http://www.packetfactory.net/libnet/dist/libnet.tar.gz tar zxf libnet.tar.gz
cd libnet cd heartbeat-1.99.4 chkconfig --add heartbeat |
主配置文件(/etc/ha.d/ha.cf):
#debugfile /var/log/ha-debug logfile /var/log/ha-log logfacility local0 keepalive 2 deadtime 30
warntime 10 # 当主节点恢复后,是否自动切回 # 输入"grep misc /proc/devices"(应为10),输入"cat /proc/misc | grep watchdog"(应为130)。 node backup respawn root /usr/lib/heartbeat/ipfail #apiauth ping gid=haclient uid=alanr,root |
资源文件(/etc/ha.d/haresources):
loadbalancer lvs IPaddr::192.168.136.10/24/eth0 ipvsadm ldirectord |
认证文件(/etc/ha.d/authkeys),选取一种认证方式,这个文件的权限必须是600:
auth 1 1 crc #2 sha1 sha1_any_password #3 md5 md5_any_password |
相关链接:
Linux-HA:http://www.linux-ha.org
|
ldirectord
安装HeartBeat过程中,已经自动安装了Ldirectord,它的作用是:
|
配置(/etc/ha.d/ldirectord.cf):
# Global Directives checktimeout=3
checkinterval=1 # A sample virual with a fallback that will override the gobal setting virtual=192.168.136.10:80 real=192.168.136.103:80 ipip virtualhost=www.funbsd.net |
在每个Real Server的中添加监控页:
echo "Test Page" >> /var/www/html/test.html |
Patch
在启动集群系统之前,我们认为包括Load Balancer和Backup在内的所有服务器都是Real Server。
在服务器上添加以下脚本/etc/init.d/tunl,用来配置tunl端口,应用arp补丁:
#!/bin/sh # chkconfig: 2345 70 10 # description: Config tunl port and apply arp patch
VIP=192.168.136.10 . /etc/rc.d/init.d/functions case "$1" in echo 1 > /proc/sys/net/ipv4/ip_forward stop) ;; |
如果有多个Virutal IP,可以使用tunl0:0,tunl0:1...。
chmod 755 /etc/init.d/tunl |
在Load Balancer和Backup上,这个脚本的启动级必须先于heartbeat,关闭级必须后于heartbeat。
Scripts
在HeartBeat资源文件(/etc/ha.d/haresources)中定义了实现集群所需的各个软件的启动脚本。
这些脚本必须放在/etc/init.d或者/etc/ha.d/resource.d目录里,启动顺序不能变:
loadbalancer lvs IPaddr::192.168.136.10/24/eth0 ipvsadm ldirectord |
IPaddr的作用是启动Virutal IP,它是HeartBeart自带的一个脚本。
ipvsadm的作用是在启动的时候把所有Real Server加入群中。
ldirectord的作用是启动ldirectord监控程序。
lvs的作用是为启动Load Balancer做准备,关闭tunl端口,取消arp补丁:
#!/bin/sh # chkconfig: 2345 90 10 # description: Preparing for Load Balancer and Real Server switching
VIP=192.168.136.10 . /etc/rc.d/init.d/functions case "$1" in echo 1 > /proc/sys/net/ipv4/ip_forward ifconfig tunl0 $VIP netmask 255.255.255.255 broadcast $VIP up ;; |
chmod 755 /etc/ha.d/resource.d/lvs |
启动集群系统:
/etc/init.d/heartbeat start |
发表评论
-
iptables封讯雷
2010-07-05 16:06 2338本文转自网络 下载文件最新内核: http://www. ... -
温顾而知新--gcc和vi基本用法
2010-04-15 14:35 1012vi编辑器是所有Unix及Li ... -
yum php 5.1 更新 5.2
2009-06-09 14:04 1186rpm --import http://www.jason ... -
Linux系统管理硬件配置
2009-05-12 15:45 1240常用命令整理如下:查 ... -
nagios二 客户端程序的安装
2009-01-12 18:46 2617要监视客户机的本地信息需要用到nrpe这个程序 NRPE的原理 ... -
nagios监控一(主程序的安装)
2009-01-12 18:45 1690Nagios 是一个开放源代码的主机、服务和网络监控平台,有各 ... -
lighttpd的启动脚本
2009-01-12 18:43 3438参考http://trac.lighttpd.net/tra ... -
lighttpd+tomcat+squid3.0
2009-01-12 18:41 1780我这里主要是用lighttpd来代替已有的apach ... -
squid3.0反向代理
2009-01-12 18:39 1239apache(81端口)+squid(80端口)(apach ... -
Linux Iptables语法
2009-01-12 18:37 1140语法 1. 对链的操作 建 ... -
nmap使用详解
2009-01-12 18:35 1022nmap使用详解 nm ... -
网络监控工具:IPTraf
2009-01-12 18:30 40312.使用IPTraf 2.1 ... -
优化squid配置
2009-01-12 18:29 1184#设置运行时的用户和组权限 cache_effective_u ... -
squid 基本配置
2009-01-12 18:27 1272配置命令configure有很多选项,如果不清楚可先用“-he ... -
linux 内核升级
2009-01-12 15:44 2024一 准备工作1 查看linux内核版本#uname -a2 下 ... -
sarg对squid的日志流量分析报表(按小时,天,周生成)
2009-01-12 15:41 34431.SARG介绍 SARG的全称是:Squid Analys ... -
Linux下Java的安装及环境配置
2009-01-12 15:40 1744在sun官网下载JDK 6(jdk-6u7-linux-i5 ... -
linux集群
2009-01-12 15:33 1184集群系统主要就2种: 系统:Centos5.0 集群软件: ...
相关推荐
LVS DR 模式总结详细笔记文档 LVS(Linux Virtual Server)是一种基于 Linux 的负载均衡解决方案,能够将incoming请求分布到多个后端服务器上,以提高系统的可扩展性和高可用性。在 DR 模式下,LVS 可以与 ...
**LVS DR模式详解** LVS(Linux Virtual Server)是一种基于IP层的负载均衡技术,DR(Direct Routing)模式是其工作模式之一,它通过直接路由的方式实现负载均衡。在这个案例环境中,我们将深入理解DR模式的搭建...
实验2 LVS DR模式实现负载均衡.md
LVS-DR 模式原理、流程特点及搭建 LVS-DR 模式是 Load Balancer 的一种实现方式,它可以将incoming请求分配到多个 Real Server 上,以提高系统的可用性和性能。LVS-DR 模式的核心思想是使用 Director 服务器来分配...
### Linux LVS的DR模式详解 #### 一、概述 Linux Virtual Server (LVS) 是一个基于 Linux 内核的高性能负载均衡解决方案,它能够通过调度算法将客户端请求分发到多个后端服务器(Real Server),从而实现负载均衡...
### LVS/NAT与LVS/DR模式集群的概述与配置 #### 一、集群及其重要性 **集群**的概念是指一组通过高速网络互连的计算单元,它们以单一系统的模式进行管理,对外提供一致的服务体验。集群技术的核心优势在于其能够...
LVS VIP 脚本,用在后端的Nginx 上面,每台Nginx上都要运行。
**LVS负载均衡DR模式详解** LVS(Linux Virtual Server)是基于Linux内核的高性能负载均衡解决方案,它能够将网络请求分发到多个后端服务器,以实现高可用性和可扩展性。DR(Direct Routing)模式是LVS中的一种工作...
Redhat Linux 6 操作系统LVS_DR模式配置的详细文档,按照文档的部署和配置可实现 LVS_DR模式的负载均衡。
**LVS DR模式** 1. **网络结构**:DR模式下,VIP(Virtual IP)与所有Real Server在同一网络段内。 2. **工作原理**: - 客户端向VIP发送请求,VIP依据调度算法选择合适的Real Server。 - VIP修改请求包的MAC地址...
LVS支持三种常见的工作模式:NAT模式、DR模式(Direct Routing模式)和IP Tunneling模式。本文将重点介绍LVS通过DR模式实现后台网站服务的代理。 在DR模式下,LVS作为负载均衡器,它并不修改数据包的源或目标IP地址...
其中,DR模式由于其实现简单且性能较高,在实际部署中被广泛采用。 #### 二、LVS DR模式详解 LVS的DR模式是通过直接路由的方式来实现负载均衡的。在DR模式下,真实服务器与负载均衡器在同一物理网络上,并且它们的...
例如,使用ipvsadm -e命令可以修改LVS集群规则的模式,将其改为DR模式。 1.5 小结 LVS是Linux虚拟服务器的缩写,主要用于实现服务器集群和负载均衡。LVS提供了两种集群模式:LVS-NAT集群和LVS-DR集群。通过使用...
LVS源码分析 LVS(Linux Virtual Server)是一种开源的负载均衡软件,能够将incoming请求分配到多个real server上以提高系统的可扩展性和可靠性。下面是LVS源码分析的总结。 ip_vs_conn 结构体 ip_vs_conn结构体...
DR模式是LVS中的直接路由模式,它通过修改数据包的目标MAC地址,将流量直接发送到真实服务器,无需经过LVS调度器。这种方式下,所有服务器都拥有相同的外部IP地址,且服务器间需要通过共享的物理网络层连接,确保...