linux+lvs+heartbeat+mon集群.docx
- 文档编号:4347517
- 上传时间:2022-11-30
- 格式:DOCX
- 页数:20
- 大小:191.97KB
linux+lvs+heartbeat+mon集群.docx
《linux+lvs+heartbeat+mon集群.docx》由会员分享,可在线阅读,更多相关《linux+lvs+heartbeat+mon集群.docx(20页珍藏版)》请在冰豆网上搜索。
linux+lvs+heartbeat+mon集群
iPanelTechnologiesltd.
Linux+lvs集群方案
version1.0
单位:
深圳市茁壮网络技术有限公司
日期:
2010年08月2日
文档维护日志
日期
维护内容
维护人
2010-08-02
创建文档
卓广飞
目录
1. 概述3
1.1 网络拓扑图3
1.2 功能概述3
2. 运行环境4
2.1 硬件需求4
2.2 软件需求5
3.方案说明6
4.软件安装7
4-1前端主LVS上的相关软件安装-------------------------------------------------------------------------
4-2前端备份LVS相关软件安装----------------------------------------------------------------------------
4-3中端tomcat群相关软件安装---------------------------------------------------------------------------
4-4后端的mysql群相关软件的安装----------------------------------------------------------------------
5.集群配置------------------------------------------------------------------------------------------------------------------------------------8
5-1前端主LVS配置---------------------------------------------------------------------------------------------
5-2前端备份LVS配置----------------------------------------------------------
5-3中端tomcat群的配置-------------------------------------------------------
5-4后端mysql群的配置----------------------------------------------------
6.运行与测试---------------------------------------------------------------------------------------------------------------------------------9
7.问题总结----------------------------------------------------------------------------------------------------------------------------------10
概述
1-1网络拓扑图
1-2功能概述
用LVS机制做前端分发,LVS是由国人章文嵩博士开发的,集成到linux内核的一项集群功能。
稳定性和性能都很不错,已经被广泛的使用在商业环境,采用来台LVS做前端机,一台主的,一台做为备份,当一台LVS宕机后,另一台备份机可以马上接管它,避免单点故障。
并且LVS提供了多种集群方式VS/NAT机制VS/DR机制VS/TUN机制。
不同的机制实现的功能,适用的范围,性能都是不一样的。
这里采用性能最好的VS/DR机制,即直接路由方式。
这种方式前端LVS分发机只是负责分发客户端的请求数据包到后端的tomcat群做实际的处理,处理完之后,tomcat群直接将响应包回复给客户端,而不会通过LVS前端来回复,这样使整个集群的处理能力大大提升,tomcat群的服务器数能达到150-200台服务器。
后端的mysql群用来响应tomcat群的数据请求,可以用NAS设备来存放数据库,也可以使用普通的服务器来存放数据库。
这里采用普通的服务器来存放数据库,并对存放数据库的服务器做一台热备份机,当主mysql服务器宕机后,备份mysql服务器能迅速接管它,响应tomcat群的数据请求,并做到和主mysql服务器的数据同步。
也就是做到热切换和热备份的效果。
整个集群要达到的目的和功能就是这样,这是一个可伸缩式的集群,tomcat群的节点数可以根据需要添加或删减。
运行环境
2-1硬件要求
对硬件的要求不高,采用普通的标准服务器即可,条件不够的也可采用PC代替
1前端LVS分发服务器两台;
2终端tomcat群根据自身需求配置理论值不要超过150台;
3后端的mysql群采用两台服务器,也可以用阵列代替;
4网卡:
每台服务器都需要进行多方面的数据交换,所以给每台服务器都配置两块网络卡;
5交换机:
性能稍好的二层交换机;
6路由器:
性能较好的路由器;
7串口线:
作为前端LVS和后端mysql群主机和备份机的心跳线;
8网线:
若干;
2-2软件要求
操作系统:
前端LVS采用RHEL5.4/CentOS5.4版本,中端tomcat群操作系统没有具体
要求,采用RedHat系列即可,后端的mysql机群采用RHEL5.4/CentOS5.4
版本。
集群所需软件:
1前端主LVS:
ipvsadm-1.24-10heartbeat-2.1.3-3及相关的依赖软件包。
2前端备份LVS:
ipvsadm-1.24-10heartbeat-2.1.3-3及相关的依赖软件包
3中端的tomcat群:
apache-tomcat-5.5.30
4后端的主mysql服务器:
mysql-5.0.77-3.el5heartbeat-2.1.3-3mon-1.2.0及相关的依赖软件包
5后端的备份mysql服务器:
mysql-5.0.77-3.el5heartbeat-2.1.3-3
方案说明
前端的LVS服务器都安装两块1000M网卡,配备串口线。
主LVS服务器的网络IP地址为:
Eth0:
10.240.0.10NETMASK255.255.0.0
Eth0:
010.240.0.20这个地址是一个虚拟VIP地址,这块虚拟网卡的子网掩码要设置成255..255.255.255对外作为客户端访问地址,对内作为一个滑动的IP地址,这个地址是用来和tomcat群通信使用的,必须要配置。
前端备份LVS服务器采用和主LVS相同的IP配置。
中端的tomcat群的IP地址采用和LVS群位于一个子网即可,为了方便说明,这里采用两台服务器作为tomcat节点IP地址分别为
Tomcatserver110.240.0.11
NETMASK255.255.0.0
lo:
010.240.0.20
NETMASK255.255.255.255
Tomcatserver210.240.0.12
NETMASK255.255.0.0
lo:
010.240.0.20
NETMASK255.255.255.255
后端的mysql群也采用和LVS位于一个子网即可,为了方便说明,这里使用IP地址为
Mysqlserver110.240.0.17NETMASK255.255.0.0
Mysqlserver210.240.0.19NETMASK255.255.0.0
说明:
将10.240.0.18分配给后端的mysql群作为虚拟IP,这也是个滑动IP,在heartbeat中要使用,这个IP地址不能分配给其他真实服务器使用。
这个地址也是tomcat群访问msyql的IP地址。
软件安装
4-1前端主LVS上的相关软件安装
1安装ipvsadm-1.24-10:
因为ipvsadm是集成到linux内核中的HA功能,所以直接通过yum安装或者通过光盘安装即可
#yum–yinstallipvsadm
2安装heartbeat-2.1.3-3:
heartbeat也是各个linux厂家集成的功能,主流的linux发行商已经将此软件包集成到了软件库中,通过yum安装或者光盘安装即可
#yum–yinstallheartbeat
4-2前端备份LVS相关软件安装
备份LVS只需要安装ipvsadm-1.24-10和heartbeat-2.1.3-3按照主LVS的方法安装即可。
4-3中端tomcat群相关软件安装
1javajdk的安装:
#cd/usr
#mkdirjava
#cpjdk-6u4-linux-i586-rpm.bin/usr/java
#cd/usr/java
#chmod775jdk-6u4-linux-i586-rpm.bin
#./jdk-6u4-linux-i586-rpm.bin
—〉脚本将显示二进制许可证协议,在继续安装之前询问您是否接受。
您接受许可证协议后,安装脚本将在当前目录中创建文件jdk-6u4-linux-i586-rpm.bin
#rpm–ivhjdk-6u4-linux-i586-rpm
#vi/etc/profile
--〉改动Linux的环境变量,在该文件最后加上下面几行
JAVA_HOME=/usr/java/jdk1.6.0_04
CLASSPATH=.:
$JAVA_HOME/lib/tools.jar:
$JAVA_HOME/lib/dt.jar
PATH=$JAVA_HOME/bin:
$PATH
CATALINA_HOME=/usr/local/tomcat
exportCATALINA_HOME=/usr/local/tomcat
exportJAVA_HOMECLASSPATHPATHCATALINA_HOME
执行如下命令使环境变量生效:
source/etc/profile
测试配置是否成功:
java–version
javaversion"1.6.0_04"
Java(TM)SERuntimeEnvironment(build1.6.0_04-b12)
JavaHotSpot(TM)ClientVM(build10.0-b19,mixedmode,sharing)
2tomcat的安装:
下载apache-tomcat-5.5.30版本放在/usr/local/src目录下
#cd/usr/local/src
#tar–xzvfapache-tomcat-5.5.30.tar.gz–C/usr/local/
#cd/usr/local/
#mvapache-tomcat-5.5.30tomcat
设置tomcat随机启动
#vi/etc/rc.local
在最后一行添加以下内容
/usr/local/tomcat/bin/startup.sh
4-4后端的mysql群相关软件的安装
1后端的主mysql服务器软件安装:
#yum–yinstallmysql-5.0.77-3.el5
#yum–yinstallheartbeat
mon的安装
mon的安装比较麻烦,需要的依赖软件包较多,这里给出依赖软件包列表
perl-Time-Period-1.20-2.el5.rf.noarch.rpm
perl-Convert-BER-1.31.01-1.2.el5.rf.noarch.rpm
perl-Mon-0.11-1.1.fc3.rf.noarch.rpm
fping-2.4-1.b2.2.el5.rf.i386.rpm
Time-HiRes-1.9721.tar.gz
mon-1.2.0.tar.gz
安装顺序安装上述rpm包。
然后再安装tar.gz包
#rpm–ivhperl-Time-Period-1.20-2.el5.rf.noarch.rpm
#rpm–ivhperl-Convert-BER-1.31.01-1.2.el5.rf.noarch.rpm
#rpm–ivhperl-Mon-0.11-1.1.fc3.rf.noarch.rpm
#rpm–ivhfping-2.4-1.b2.2.el5.rf.i386.rpm
#tar–xzvfTime-HiRes-1.9721.tar.gz–C/usr/local/
#tar–xzvfmon-1.2.0.tar.gz–C/usr/lib/mon
#cd/usr/local/Time-HiRes-1.9721
#perlMakefile.PL
#make
#maketest
#makeinstall
至此mon安装完毕。
2后端的备份mysql服务器软件安装:
#yum–yinstallmysql-5.0.77-3.el5
#yum–yinstallheartbeat
集群配置
5-1前端主LVS配置
1配置ipvsadm:
#echo"1">/proc/sys/net/ipv4/ip_forward开启IP转发,必须的
#sysctl–p
#cd/etc/sysconfig/network-scripts/
#viifcfg-eth0:
0
写入以下内容:
DEVICE=eth0:
0
IPADDR=10.240.0.20
NETMASK=255.255.255.255
ONBOOT=yes
保存,退出。
#ipvsadm–C
#ipvsadm–A–t10.240.0.20:
8080–swlc
#ipvsadm–a–t10.240.0.20:
8080–r10.240.0.11:
8080–g
#ipvsadm–a–t10.240.0.20:
8080–r10.240.0.12:
8080–g
加入自启动
#vi/etc/rc.d/rc.local
最后一行写入以下内容:
echo"1">/proc/sys/net/ipv4/ip_forward
sysctl-p
ipvsadm-C
ipvsadm-A-t10.240.0.20:
8080–swlc
ipvsadm-a-t10.240.0.20:
8080-r10.240.0.11:
8080-g
ipvsadm-a-t10.240.0.20:
8080-r10.240.0.12:
8080–g
保存,退出。
2配置heartbeat:
#cd/usr/share/doc/heartbeat-2.1.3
#cpha.cf/etc/ha.d/
#cpharesources/etc/ha.d/
#cpauthkeys/etc/ha.d/
5.2-1配置ha.cf文件
ha.cf是heartbeat的主要配置文件,可以对heartbeat的多数性能和状态进行配置。
大部分选项的取值可以采用默认值,其中的主要选项及配置方法说明如下:
debugfile/var/log/ha-debug:
该文件保存heartbeat的调试信息
logfile/var/log/ha-log:
heartbeat的日志文件
keepalive2:
心跳的时间间隔,默认时间单位为秒
deadtime30:
超出该时间间隔未收到对方节点的心跳,则认为对方已经死亡。
warntime10:
超出该时间间隔未收到对方节点的心跳,则发出警告并记录到日志中。
initdead120:
在某些系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔。
取值至少为deadtime的两倍。
udpport694:
设置广播通信使用的端口,694为默认使用的端口号。
baud19200:
设置串行通信的波特率。
serial/dev/ttyS0:
选择串行通信设备,用于双机使用串口线连接的情况。
如果双机使用以太网连接,则应该关闭该选项。
bcasteth0:
设置广播通信所使用的网络接口卡。
auto_failbackon:
heartbeat的两台主机分别为主节点和从节点。
主节点在正常情况下占用资源并运行所有的服务,遇到故障时把资源交给从节点并由从节点运行服务。
在该选项设为on的情况下,一旦主节点恢复运行,则自动获取资源并取代从节点,否则不取代从节点。
pingping-node1ping-node2:
指定pingnode,pingnode并不构成双机节点,它们仅仅用来测试网络连接。
respawnhacluster/usr/lib/heartbeat/ipfail:
指定与heartbeat一同启动和关闭的进程,该进程被自动监视,遇到故障则重新启动。
最常用的进程是ipfail,该进程用于检测和处理网络故障,需要配合ping语句指定的pingnode来检测网络连接。
具体内容举例:
nodenode1
nodenode2
具体配置如下:
#vi/etc/ha.d/ha.cf
debugfile/var/log/ha-debug
logfile/var/log/ha-log日志记录文件
logfacilitylocal0
keepalive1设置每隔多少时间ping对方
deadtime5多少时间内服务器没有反应,宣布机器宕掉
warntime10多少时间内服务器没有反应,给出警告
initdead100缓冲时间,主要是给网络重启留一定的时间
udpport694
ping10.240.0.1设置成网关地址
bcasteth0通过eth0网卡接口,通过广播方式监测服务器
auto_failbackon当主服务器恢复后,自动重新接管服务
nodenode1node1是主服务器的名字
nodenode2node2是备份服务器的名字
respawnhacluster/usr/lib/heartbeat/ipfail
apiauthipfailgid=haclientuid=hacluster
5..2-2配置haresources文件
haresources文件用于指定双机系统的主节点、集群IP、子网掩码、广播地址以及启动的服务等。
其配置语句格式如下:
node-namenetwork-config
其中node-name指定双机系统的主节点,取值必须匹配ha.cf文件中node选项设置的主机名中的一个,node选项设置的另一个主机名成为从节点。
network-config用于网络设置,包括指定集群IP、子网掩码、广播地址等。
resource-group用于设置heartbeat启动的服务,该服务最终由双机系统通过集群IP对外提供。
下面举例对配置方法进行说明
#node110.240.0.20mysqldtomcat
假设ha.cf文件中node选项设置的两个主机名分别为node1和node2,则根据上述配置,双机系统的主节点为node1,从节点为node2。
heartbeat启动时获取集群IP(clusterIP)为10.240.0.20,该IP成为heartbeat对外提供服务的网络地址。
此外heartbeat依次启动服务mysqld和tomcat(从左向右的顺序)。
heartbeat关闭时将依次关闭tomcat和mysqld(从右向左的顺序),并释放clusterIP。
Mysqld和tomcat分别是mysql和tomcat的启动脚本,heartbeat将从下面目录中寻找这些启动脚本:
/usr/etc/ha.d/resource.d
/usr/etc/rc.d/init.d
具体内容举例:
主服务器配置如下:
node110.240.0.20ipvsadm
备份服务器上配置:
node110.240.0.20ipvsadm
5.2-3配置authkeys文件
authkeys文件用于heartbeat的鉴权设置,共有三种可用的鉴权方式:
crc、md5和sha1。
三种方式安全性依次提高,但同时占用的系统资源也依次扩大。
crc安全性最低,适用于物理上比较安全的网络,sha1提供最为有效的鉴权方式,占用的系统资源也最多。
其配置语句格式如下:
auth
举例说明:
auth1
1sha1key-for-sha1
其中键值key-for-sha1可以任意指定,number设置必须保证上下一致。
auth2
2crc
crc方式不需要指定键值。
最后,该authkeys文件的文件许可权应该设为600(即-rw-------),命令为:
chmod600authkeys
注意:
上述三个配置文件设置完毕后,应该复制到/usr/etc/ha.d目录下。
具体内容举例:
auth3
#1sha1key-for-sha1
#1crc
#2sha1HI!
3md5Hello!
5-2前端备份LVS配置
参照主LVS配置即可
5-3中端tomcat群的配置
#cd/usr/local/tomcat/conf
#viserver.xml
把以前的设置
--YoushouldsetjvmRoutetosupportload-balancingviaAJPie:
-->
改成
--YoushouldsetjvmRoutetosupportload-balancingviaAJPie:
-->
--
-->
说明:
第一台tomcat就把jvmRoute="tomcat1"
第二台tomcat就把jvmRoute="tomcat2"
接着把cluster
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux lvs heartbeat mon 集群
![提示](https://static.bdocx.com/images/bang_tan.gif)