Heartbeat双机互备
动手搭建centos下用heartbeat实现双机热备

动手搭建centos下用heartbeat实现
双机热备
#和从服务器名称不能相同
ip:10.0.0.211
心跳地址:100.0.0.211 #提供给心跳服务使用的,用来检控服务器运行状态
备份服务器:
系统:centos
主机名称: #和主服务器名称不能相同
ip:10.0.0.212
心跳地址:100.0.0.212 #提供给心跳服务使用的,用来检控服务器运行状态
注:每太服务器需要有两块网卡;心跳地址是心跳服务用来检控服务器运行状态使用的,心跳地址随意写,只要符合规范就行,网关、子网掩码不用写,用在两块网卡之间的通信只有ip就够了,并且和其它ip不会冲突。
服务器配置完毕后需要设置以下文件:
/etc/hosts
/etc/resolv.conf
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0 # 主网卡
/etc/sysconfig/network-scripts/ifcfg-eth1 # 心跳检测的网卡
sev1与sev2主机下/etc/hosts内容的配置相同:
1 # Do not remove the following line, or various programs
文章来源于:/article-22845-1.html。
双机热备安装部署方案(heartbeat pacemaker)

双机热备安装部署方案(heartbeat 3.x +pacemaker)by——商胜前言双击热备用一句通俗易懂的话来说就是避免服务器因临时故障而导致服务中断的一种备份技术,这也就是所谓的高可用性。
本文主要是用heartbeat来针对resin下的服务做服务热备。
例如,在resin下现有三个服务server1 、server2 、server3 以及访问这三个服务的虚拟ip——vip:10.3.255.36 。
现在的需求是要保证这三个服务的高可用性,即当三个服务中的任何一个宕掉了以后,heartbeat首先要做的是判断这些服务是否有故障的,如果存在有故障的服务,heartbeat首先会在本机重启该故障服务,一旦该服务无法启动,则停止本机的server1、server2 、server3,切换虚拟ip到从机并在从机上启动这三个服务。
一.测试环境搭建测试环境说明:操作系统:Red Hat Enterprise Linux Server release 5.4 (Tikanga) 64位操作系统Heartbeat版本:heartbeat-3.0.3-2 附录中有heartbeat简介以及版本说明操作系统配置主服务器备用服务器主机名HB_Node01 HB_Node02Ip Eth0: 10.3.43.99Eth1: 192.168.254.12 Eth0: 10.3.43.99Eth1: 192.168.254.12vip 10.3.43.101(由heartbeat中生成)添加用户、用户组添加用户:hacluster useradd -M hacluster添加用户组:haclient groupadd haclient并且hacluster 属于用户组haclient usermod -G haclient hacluster主机名配置方式:设置主机名[root@localhost ~]# hostname HB_Node01[root@localhost ~]# vi /etc/hosts[root@localhost ~]# vi /etc/sysconfig/networkIp配置方式配置ip[root@HB_Node01 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 [root@HB_Node01 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1(这里给出的是命令行配置方式,也可以进入图形界面进行配置)注意的问题:配置外网ip时配置默认网关,但在配置heartbeat1之间通信的ip时网关不要配置,因为这里再配置网关则会覆盖之前配置的默认网关导致通信异常。
双机热备+负载均衡线上方案(Heartbeat+DRBD+NFS+Keepalived+Lnmp)

/thread-3689681-1-1.html我们下面来实现一个架构,heartbeat+drbd+nfs实现mysql和网站数据的同步,keepalived 实现nginx的高可用,而用nginx和dns轮询实现负载均衡。
架构说明目录规划/usr/local/src/lnmp:用来存放源码工具等等/data:用来存放所有数据和NFS以及DRBD的挂载/data/shell:用来存放所有管理脚本/data/mysql:用来挂载DRBD的mysql资源,以供mysql存放数据库/data/wwwnfs:用来挂载DRBD生成的www资源,以供两个节点挂载到各个节点的/data/www 目录,以供论坛等程序数据使用/data/www:用来挂载NFS资源,用来存放论坛(网站)等程序数据拓扑工作原理内网:1,DRBD网络存储创建出两个资源,一个mysql给mysql数据库同步用,一个www给web(论坛)数据NFS共享挂载用,虚拟出两个虚拟IP,一个是 192.168.1.100,用来连接数据库,一个是192.168.1.200,用来给节点挂载NFS注意:NFS底下挂载了三次:DRBD挂载一次,文件系统挂载一次,客户端挂载一次2,Heartbeat来实现DRBD的HA,同时虚拟出两个内网IP,并管理NFS,MySQL的启动和关闭外网:1,两个节点都用Nginx做均衡器,通过内网调度负载两个节点,实现内部均衡2,DNS配置双IP对应一个域名的方式来实现DNS轮询,实现外网均衡3,Keepalived使用双主(master)配置虚拟出两个虚拟IP:节点一 12.12.12.100和节点二12.12.12.200,同时共外网访问,两个节点互为主从关系,当某个节点挂掉的时候,另外一个节点将同时是两个资源的master,同时拥有两个虚拟IP,实现资源转移。
我们知道DNS的缺点就是生效慢,分配资源不合理,理论上有可能把所有的请求都发送给同一节点,导致均衡不合理导致所有资源不可用,这里我们由于有了NGINX内部负载,就不怕DNS轮询不均衡了,因为NGINX内部有严谨的调度方式,不管那台请求有多少,在内部都能实现理想的调度,这样就能把 DNS负载均衡和NGINX完美结合,是硬件资源得到合理的利用,然后利用keepalive保证了每个节点的可靠性,几乎完美!拓扑图如下:架构实现LNMP架构配置配置LNMp架构需要注意两点:注意一:这里MYSQL都不要初始化,不要启动!后面有专门的配置的注意二:nginx所有端口都改成 8080,因为一会还要安装nginx来做均衡器并对外提供服务,所以不要用默认的80注意三、nginx和php-fpm运行的用户都是www。
Heartbeat安装与配置虚拟IP双机热备

Heartbeat 安装与配置虚拟 IP 双机热备
1、环境描述 服务器 A(主) 192.85.1.175 服务器 B(从) 192.85.1.176 Mysql 版本:5.1.61 系统版本:System OS:ubuntu 10.10 X86 2.安装 heartbeat 1)安装 heartbeat [html] view plain copy 1. sudo apt-get install heartbeat
(2)ha.cf 文件内容:(主配置文件) [html] view plain copy
Centos 5.2+MYSQL+heartbeat双机互备

当前大多网站采用Linux +MYSQL+APACHE+PHP这种经典配置,如何防止单点失败造成的整个网站的不可用是网站管理者必须要考虑的问题,其中数据库的高可用性(Database server’s high availability)是重中之重。
对于数据库的高可用性,各商业软件的厂商都有各自的解决方案,比如Oracle OPS server和IBM DB2 (share-nothing architecture)。
最近MYSQL AB也发布了MYSQL cluster 软件,使用与IBM DB2类似的技术。
MySQL cluster可能会是日后最理想的方案,但是从资源、可集成度方面考虑,给出一个简单实用的方案借鉴。
本文介绍的是性价比比较高的一种: 使用Heartbeat 2.0配置Linux高可用性集群,同时使用Heartbeat也可以实现简单的web集群。
二、实现原理通过Linux HA 软件heartbeat 实现IP的自动漂移,即当一台服务器宕机后,浮动IP(整个cluster的对外IP )自动漂移到另外一台服务器。
通过Mysql自身的replication 实现不同机器上多个数据库的同步整体性能此方案将会降低MYSQL 1%左右的性能,可用性及数据安全性将大有提高,同时服务器的切换对终端使用者是透明的,终端应用不需要进行更改。
所需硬件:安装有双网卡的配置大致相同的服务器或工作机两台一条交叉网线(用于双机对连的心跳线)Linux HA 软件heartbeat (只支持两个节点),安装盘里集成的有这个软件的rpm包软件主页:[url]/[/url]Mysql软件软件主页:[url]/[/url]安装步骤:1、安装MYSQL#cd /opt#useradd mysql -d /usr/local/mysql -s /sbin/nologin#tar -zxvf mysql-5.1.29-rc.tar.gz#cd mysql-5.1.29-rc# ./configure --prefix=/usr/local/mysql --with-mysqld-user=mysql --without-debug --with-big-tables --with-charset=gbk--with-collation=gbk_chinese_ci --with-extra-charsets=all--with-pthread --enable-thread-safe-client --enable-assembler--without-isam --without-innodb --without-ndb-debug --with-mysqli #make && make install#/usr/local/mysql/bin/mysql_install_db //初始化数据库#chown -R mysql.mysql /usr/local/mysql/ //设置目录宿主#cp /usr/local/mysql/share/mysql/f /etc/f //复制配置文件#cp support-files/mysql.server /etc/rc.d/init.d/mysqld //设置启动文件#chmod 700 /etc/rc.d/init.d/mysqld#/usr/local/mysql/bin/mysqld_safe --user=mysql &#/etc/rc.d/init.d/mysqld start在启动mysql时报错查看日志发现以下错误:将/etc/f文件中的skip-federated注释掉即可#chkconfig --add mysqld#chkconfig --level 2345 mysqld on#ln -s /usr/local/mysql/bin/mysql /sbin/mysql#ln -s /usr/local/mysql/bin/mysqladmin /sbin/mysqladmin#mysqladmin –u root password 1q2w3e //设置root 密码#配置库文件搜索路径#echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf#ldconfig#添加/usr/local/mysql/bin到环境变量PATH中#export PATH=$PATH:/usr/local/mysql/binmysqlB也按以上的方式进行安装2、mysqlA设置设置同步数据库:在这里我就用test数据库来做测试,在test数据库里新建一个data表,并添加一些数据,具体操作如下:#mysql –u root –p1q2w3emysql> create table data(name VARCHAR(20), address VARCHAR(50), phoneVARCHAR(20));mysql>insert into data(name,address,phone) values('jhone','beijing','138000000'); mysql>select * from data;设置数据库同步帐户:mysql>GRANT REPLICATION SLAVE,REPLICATIONCLIENT,RELOAD,SUPER ON *.* TO 'backup'@'10.0.0.2' IDENTIFIED BY 'qawsed';(授与从10.0.0.2主机上登录用户backup数据复制权限,4.02版本以前用:GRANT FILE ON *.* TO backup@10.0.0.2 IDENTIFIED BY 'qawsed';) mysql>flush privileges;修改配置文件:停止mysql服务[root@mysqlA opt]#service mysqld stop建立用于更新日志的目录,并给于mysql的权限[root@mysqlA opt]# mkdir /var/log/mysql[root@mysqlA opt]# chown mysql.mysql /var/log/mysql/更改Mysql配置文件/etc/f[root@mysqlA opt]# vi /etc/fserver-id=1 //服务器ID号log-bin=mysql-binlog-bin=/var/log/mysql/updatelog //启用更新日志binlog-do-db=test //表示需要备份的数据库是test这个数据库replicate-same-server-idmaster-host=10.0.0.2 //指定主服务器IPmaster-user=backup //指定在主服务器上可以同步的帐号master-password=qawsed //指定帐号对应的密码master-connect-retry=60 //断点重试间隔为60秒replicate-do-db=test //表示同步test数据库binlog-ignore-db=mysql //不同步mysql数据库把test进行备份[root@mysqlA opt]# service mysqld start //先启动mysql[root@mysqlA opt]# /usr/local/mysql/bin/mysqldump -h localhost -u root -p1q2w3e test >test.sql[root@mysqlA opt]#scp test.sql root@10.0.0.2:/opt //(将test.sql 复制到mysqlB的/opt目录下)至此mysqlA服务器上有关mysql的设置已完成,下一步开始配置mysqlB设置mysqlB设置数据库同步帐户:mysql>GRANT REPLICATION SLAVE,REPLICATIONCLIENT,RELOAD,SUPER ON *.* TO 'backup'@'10.0.0.1' IDENTIFIED BY 'qawsed';(授与从10.0.0.1主机上登录用户backup数据复制权限,4.02版本以前用:GRANT FILE ON *.* TO backup@10.0.0.1 IDENTIFIED BY 'qawsed';) mysql>flush privileges;修改配置文件:停止mysql服务[root@mysqlA opt]#service mysqld stop建立用于更新日志的目录,并给于mysql的权限[root@mysqlA opt]# mkdir /var/log/mysql[root@mysqlA opt]# chown mysql.mysql /var/log/mysql/更改Mysql配置文件/etc/f[root@mysqlA opt]# vi /etc/fserver-id=2 //服务器ID号log-bin=mysql-binlog-bin=/var/log/mysql/updatelog //启用更新日志binlog-do-db=test //表示需要备份的数据库是test这个数据库replicate-same-server-idmaster-host=10.0.0.1 //指定主服务器IPmaster-user=backup //指定在主服务器上可以同步的帐号master-password=qawsed //指定帐号对应的密码master-connect-retry=60 //断点重试间隔为60秒replicate-do-db=test //表示同步test数据库binlog-ignore-db=mysql //不同步mysql数据库还原从mysqlA备份过的test.sql#service mysqld start# mysql -u root -p1q2w3e test <test.sql重启两边的mysql服务查询配置Show Slave status:此处Slave_IO_Running ,Slave_SQL_Running 都应该是yes,表示从库的I/O,Slave_SQL线程都正确开启.在Mysql中可通过以下命令来查看主从状态show master status 查看master状态show slave status 查看slave状态show processlist G 查看当前进程stop slave 暂时停止slave进程start slave 开始slave进程在primary服务器上MySQL命令符下输入:mysql>show master status;mysql>show slave status\G;如果出现以错误:解决办法:在/etc/f 的[mysqld]下面加上replicate-same-server-id 参数到此mysql的双机互备已基本完成,在两台服务器的mysql数据库中任意添加数据,都可以同步到对端服务器上安装配置heartbeat:Heartbeat下载地址如下:[url]/repositories/server:/ha-clusterin g:/lha-2.1/CentOS_5/i386/[/url]下载对应的版本,在此我的系统是centos 5.2rpm -ivh libnet-1.1.2.1-2.1.i386.rpmrpm -ivh heartbeat-pils-2.1.4-2.1.i386.rpmrpm -ivh --nodeps heartbeat-stonith-2.1.4-2.1.i386.rpmrpm -ivh --nodeps heartbeat-2.1.4-2.1.i386.rpmrpm -ivh --nodeps heartbeat-devel-2.1.4-2.1.i386.rpmrpm -ivh --nodeps heartbeat-ldirectord-2.1.4-2.1.i386.rpmrpm -ivh ipvsadm-1.24-8.1.i386.rpm配置HA的各配置文件:复制配置文件[root@mysqlA opt]# cp/usr/share/doc/packages/heartbeat/authkeys /etc/ha.d/[root@mysqlA opt]# cp/usr/share/doc/packages/heartbeat/haresources /etc/ha.d/[root@mysqlA opt]# cp /usr/share/doc/packages/heartbeat/ha.cf /etc/ha.d/配置心跳的加密方式:authkeys[root@mysqlA opt]#vi /etc/ha.d/authkeys#如果使用双机对联线(双绞线),可以配置如下:auth 11 crc#存盘退出,然后[root@mysqlA opt]#chmod 600 authkeys配置心跳的监控:haresources[root@mysqlA opt]#vi /etc/ha.d/haresources#各主机这部分应完全相同。
Heartbeat双机互备可行方案

Heartbeat双机互备可行方案一、文档说明本文档,设计了heartbeat提供对外的VIP(虚拟IP),当主服务器down机后,从服务器通过心跳检测到主服务器down机后,会启动本机的heartbeat服务,VIP将会自己转移到从服务器,当主服务器处理好后,通过从心跳监测,自动把VIP移回到主服务器。
二、网络拓朴Matesr Slave注释:公网接入:主从服务器通过公网通信心跳连线:主从服务器通过专用网络通信,专用网络可用以太网的交叉线连接,也可用串口连接监测。
VIP:集群通过VIP与公网通信,主从通过公网网卡上邦定虚拟地址(VIP)实现。
三、Heartbeat工作原理Heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未受到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运行在对方主机上的资源或者服务。
(一)用户与主服务器正常通信(二)主从服务器通过心跳专线监测彼此是否正常(三)如果主服务器的公网失效或服务器DOWN机,从服务器通过心跳监测后,启动设定服务并接管主服务器对外的网络资源(VIP)(四)用户与从服务器通信(从机在几秒或几十秒内接管主服务器)(五)主服务器恢复后(重起或修复等)可以重新接管网络资源。
四、安装配置及调试Heartbeat集群(一)安装前环境设定两台主机硬件环境(不必完全一致)(二)安装前网络环境设定node1: 主机名:Master ( HAM )eth0: 10.0.0.5 //对外通信IP地址eth1: 172.16.0.5 //心跳使用地址node2: 主机名:Slave ( HAS )eth0: 10.0.0.6 //对外通信IP地址eth1: 172.16.0.6 //心跳使用地址VIP:10.0.0.7 //集群对外提供服务的地址,浮动IP注意要检查以下几个文件:/etc/hosts/etc/host.conf/etc/sysconfig/network/etc/sysconfig/network-scripts/ifcfg-eth0/etc/sysconfig/network-scripts/ifcfg-eth1#vi /etc/hostsnode1与node2的hosts内容相同如下(hosts文件的修改必需在heartbeat安装前):127.0.0.1 localhost.localdomain localhost10.0.0.5 Master172.16.0.5 HAM172.16.0.6 HAS10.0.0.6 Slave#cat /etc/host.conforder hosts,bind#cat /etc/sysconfig/networkNETWORKING=yesHOSTNAME=Master //主机名GATEWAY="10.0.0.1" //网关GATEWAY="eth0" //网关使用网卡ONBOOT=YES //启动时加载FORWARD_IPV4="yes" //只允许IPV4#cat /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0ONBOOT=yesBOOTPROTO=staticIPADDR=10.0.0.5NETMASK=255.0.0.0GATEWAY=10.0.0.1TYPE=Ethernet#cat /etc/sysconfig/network-scripts/ifcfg-eth1DEVICE=eth1ONBOOT=yesIPADDR=172.16.0.5NETMASK=255.255.0.0TYPE=Ethernet[node1] 与[node2] 在上面的配置中,除了/etc/sysconfig/network/etc/sysconfig/network-scripts/ifcfg-eth0/etc/sysconfig/network-scripts/ifcfg-eth1要各自修改外,其他一致。
MySql双机热备
一、heartbeat的安装和配置集群并不是一个全新的概念,其实早在七十年代计算机厂商和研究机构就开始了对集群系统的研究和开发。
由于主要用于科学工程计算,所以这些系统并不为大家所熟知。
直到Linux集群的出现,集群的概念才得以广为传播。
集群系统主要分为高可用(High Av ailability)集群,简称HA 集群。
常见的就是2个节点做成的HA集群,有很多通俗的不科学的名称,比如"双机热备", "双机互备", "双机"。
这样做的好处是当服务启动的时候,两台服务器一个作为主,另一个是从。
测试机每几秒会ping主机,当发现主机没有回应,就证明主机宕机了,那么从机马上会启动相应的服务,继续进行服务。
这样就可以保证服务不间断。
具体的拓扑图如下:1.1.1安装网络环境设定分别设置两台服务器eth1、eth0的IP地址,如:server1所示更改计算机名称设置DNS解析1.1.2、安装1)先要检查系统中是否有下面软件开发包的支持,包括pkgconfig g lib2-devel e2fsprogs和libnet2) 我的系统中只缺少libnet,安装libnet,这里使用的是1.1.2. 1版本tar -zxvf libnet.tar.gzcd libnet./configuremakemake install3) 安装heartbeattar -zxvf heartbeat-2.0.7.tar.gzcd heartbeat-2.0.7./ConfigureMe configuremakemake install4) 当安装好heartbeat后,系统会在/etc/下建立一个ha.d的目录,我们需要把一些文件拷到里面去。
cp /soft/heartbeat-2.0.7/doc/ha.cf /etc/ha.dcp /soft/heartbeat-2.0.7/doc/haresources /etc/ha.dcp /soft/heartbeat-2.0.7/doc/authkeys /etc/ha.d1.1.3配置主要文件的配置vi /etc/ha.d/ha.cf具体要把下面的选项前的注释去掉logfile /var/log/ha-loglogfacility local0keepalive 2 每2秒钟测试机发送一个广播deadtime 30 30秒内没有反应,立即切换服务warntime 10initdead 120udpport 694bcast eth1 指明心跳连接的接口号ucast eth1 192.168.10.1 心跳连接的pc的ipauto_failback onnode server1 两个的主机名(最好用uname -n察看)node server2ping 192.168.0.1 测试机的ip (要写外部的测试IP)vi /etc/ha.d/haresources 这个主要是指明资源的来源,添加一条指定虚拟IP表示server2是主服务器,虚拟IP地址为192.168.0.10 ,IP启动虚拟服务器HTTPD。
用DRBD和Heartbeat实现IBMMQ前置机双机热备
用DRBD和Heartbeat实现人行前置机双机热备1前提Linux下可以用开源软件DRBD和Heartbeat实现廉价的双机热备,这种方案不需要存储和光纤交换机,适合于共享存储不是特别大的场合,比较廉价。
人行的网银前置机就可以采用这种方式。
建议使用Suse Linux Enterprise Server 10、11或Suse Linux HA Extension版本,Suse企业版和HA扩展版中已经包含了DRBD和Heartbeat。
如果采用Open Suse或其他版本Linux,可能需要自行安装DRBD和Heartbeat,因为其中涉及很多软件包,安装比较麻烦。
(本文并不提供详细的安装说明)1.1 DRBDDRBD是一个磁盘镜像软件,类似于一个网络RAID-1功能。
当你将数据写入本地文件系统时,数据还将会被发送到网络中另一台主机上,以相同的形式记录在一个文件系统中。
本地(主节点)与远程主机(备节点)的数据可以保证实时同步。
当本地系统出现故障时,远程主机上还会保留有一份相同的数据,可以继续使用。
DRBD包含一个用户程序和一个内核模块,在Linux内核2.6.33后已经含有了drbd的内核模块,不需要再安装drbd内核。
目前DRBD的最新版本是8.3.8.1。
1.2 HeartbeatHeartbeat是Linux下的HA软件,用来实现高可靠性集群服务。
目前Heartbeat最新版本是3.0。
1.3 示例系统下面用2台虚拟机上的的双机热备来说明DRBD和Heartbeat的配置和启动。
主机A(双网卡):操作系统:Open Suse Linux Server 11.1DRBD版本:8.2.7Heartbeat版本:2.1.3内核:Linux suse11 2.6.27.19-5-pae #1 SMP 2009-02-28 04:40:21 +0100 i686 i686 i386 GNU/Linux心跳IP:10.1.1.228(eth0)固定IP:192.168.253.101(eth1)浮动IP:192.168.253.205(eth1:0,由Heartbeat自动获得)主机名:suse11空磁盘分区:/dev/sda5备机B(双网卡)操作系统:Open Suse Linux Server 11.1DRBD版本:8.2.7Heartbeat版本:2.1.3内核:Linux ibps-mbfe 2.6.27.19-5-pae #1 SMP 2009-02-28 04:40:21 +0100 i686 i686 i386 GNU/Linux心跳IP:10.1.1.229(eth0)固定IP:192.168.253.202(eth1)浮动IP:192.168.253.205(eth1:0,由Heartbeat自动获得)主机名:ibps-mbfe空磁盘分区:/dev/sda5说明:浮动IP是对外公开的IP地址,主机挂掉,由备机自动获得此IP。
centos heartbeat 双击热备
CentOS+heartbeat+apache配置操作步骤:1、在两台CentOS 虚拟机上分别加两块网卡(一共是四块网卡)2、关闭SELINUX编辑/etc/sysconfig/selinux 文件,配置以下语句:SELINUX=disabled也可以在图形界面里修改。
实际生产环境不应该关闭SELINUX,但必须注意SELINUX 对群集的影响。
3、关闭iptables 防火墙执行命令:chkconfig iptables offchkconfig ip6tables off也可以在图形界面里修改。
实际生产环境不应该关闭防火墙,但必须注意打开群集有关的协议和端口。
4、IP 地址配置服务器一:网卡0(eth0):IP 为192.168.0.110/24网卡1(eth1):IP 为10.0.0.10/24服务器二:网卡0(eth0):IP 为192.168.0.111/24网卡1(eth1):IP 为10.0.0.11/24配置完毕,可以输入如下命令检查IP 配置:# ifconfig可以用ping 命令检测网络的连通性。
例如,在服务器一中:# ping 192.168.0.111# ping 10.0.0.11均应该连通。
5、分别修改主机名为node1、node2服务器一修改/etc/sysconfig/network 文件中HOSTNAME 语句为:HOSTNAME=node1服务器二修改/etc/sysconfig/network 文件中HOSTNAME 语句为:HOSTNAME=node2也可以在GUI 的“网络”配置里修改。
修改完毕,运行命令# uname -n看到的结果应该与上面的修改一致。
(生效需重启)6、修改hosts 文件在两台服务器的/etc/hosts 文件里,添加以下语句:192.168.0.110 node1192.168.0.111 node27、开始安装heartbeatRpm -ivh heartbeat-pils.i386 2.1.3-3.el5.centosRpm -ivh heartbeat-stonith.i386 2.1.3-3.el5.centosRpm -ivh heartbeat.i386 2.1.3-3.el5.centos installed注意:如果提示错误说有个脚本没执行不用管它重新执行Rpm -ivh heartbeat.i386 2.1.3-3.el5.centos installed操作8、配置ApacheApache 是作为群集的测试服务来对外提供Web 服务的。
构建Heartbeat 3.0.3 GUI+DRBD+Oracle 10g 双机互备集群
构建Heartbeat 3.0.3 GUI+DRBD+Oracle 10g 双机互备集群一、系统环境引用操作系统:Asianux 3.0 SP2 for x86_64DRBD 版本:8.3.8Heartbeat 版本:3.0.3Oracle 版本:10.2.0.4两服务器::192.168.228.133:192.168.228.134DRBD 镜像分区:资源名称:oradata设备:/dev/drbd0挂载点:/oradata (存放Oracle实例)二、安装Heartbeat 3.0.3这里将使用我自行编译的rpm 包,通过yum来安装。
1、配置yum 环境假设把压缩包解压到/root/rpms 目录下。
然后在/etc/yum.repos.d中创建以下文件:引用# cat heartbeat.repo[heartbeat]name=Heartbeat 3baseurl=file:///root/rpmsenabled=12、安装先卸载旧的包:# rpm -e `rpm -qa|grep heartbeat`# rpm -e `rpm -qa|grep openais`然后用yum安装:# yum install pacemaker corosync heartbeat ldirectord pacemaker-mgmt pacemaker-mgmt-client ldirectord※ ldirectord 用于LVS环境,若您不需要,可不安装三、配置Heartbeat 3实际上,Heartbeat 3 与 2.x 的配置差别并不大,很多内容都是相通的。
1、配置authkeys这里我用随机数来获得密钥:引用# (echo -ne "auth 1\n1 sha1 ";dd if=/dev/urandom bs=512 count=1 | openssl md5) > authkeys# cat authkeysauth 11 sha1 0366577bdaed36f08b5f1c29431812dc※注意,authkeys 的权限必须是6002、配置ha.cf引用# grep -v '^#' ha.cfdebugfile /var/log/ha-debuglogfile /var/log/ha-loglogfacility local0keepalive 2deadtime 30initdead 30udpport 694mcast eth0 239.0.0.1 694 1 0 # 使用多播方式进行相互通信auto_failback onnode node compression bz2compression_threshold 2crm respawn# 以下两行是pacemaker-mgmt提供的hb_gui 连接所必须的,2.1.4时没有apiauth mgmtd uid=root# 注意,下面文件的路径不能有错(可查询pacemaker-mgmt包),并且一定是可执行文件respawn root /usr/lib64/heartbeat/mgmtd -v两文件保存后,同步到另一节点上:# /usr/share/heartbeat/ha_propagate3、启动heartbeat在两节点上启动heartbeat 3:# service heartbeat start四、pacemaker(CRM)pacemaker是heartbeat项目将原有的crm组件独立出来形成的项目(当然,除了Heartbeat外,还支持OpenAIS),它在Heartbeat3集群中的角色就是CRM(其实如今CRMd 也只是pacemaker的一个部分)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Heartbeat双机互备
深圳傲天通信有限公司
深圳市南山区软件园3栋6楼
电话:86168886(0755)
地址:
一、文档说明
本文档,设计了heartbeat提供对外的VIP,当主服务器down机后,从服务器通过心跳检测到主服务器down机后,会启动本机的heartbeat服务,VIP将会自己转移到从服务器,当主服务器处理好后,通过从心跳监测,可以手动把VIP移回到主服务器,也可一直由从机接管。
二、网络拓朴
Matesr Slave
注释:
公网接入:主从服务器通过公网通信
心跳连线:主从服务器通过专用网络通信,专用网络可用以太网的交叉线连接,也可用串口连接监测。
VIP:集群通过VIP与公网通信,主从通过公网网卡上邦定虚拟地址(VIP)实现。
三、Heartbeat工作原理:
Heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未受到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运行在对方主机上的资源或者服务。
(一)用户与主服务器正常通信
(二)主从服务器通过心跳专线监测彼此是否正常
(三)如果主服务器的公网失效或服务器DOWN机,从服务器通过心跳监测后,启动设定服务并接管主服务器对外的网络资源(VIP)
(四)用户与从服务器通信(从机在几秒或几十秒内接管主服务器)
(五)主服务器恢复后(重起或修复等)可以重新接管网络资源。
四、安装配置及调试Heartbeat集群
(一)安装前环境设定
两台主机硬件环境(不必完全一致)
系统安装按公网标准文档(centos4.4)
(二)安装前网络环境设定:
node1: 主机名:Master ( HAM )
eth0: 10.0.0.5 //对外通信IP地址
eth1: 172.16.0.5 //心跳使用地址
node2: 主机名:Slave ( HAS )
eth0: 10.0.0.6 //对外通信IP地址
eth1: 172.16.0.6 //心跳使用地址
VIP:10.0.0.7 //集群对外提供服务的地址
注意要检查以下几个文件:
/etc/hosts
/etc/host.conf
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
#vi /etc/hosts
node1与node2的hosts内容相同如下(hosts文件的修改必需在heartbeat安装前):127.0.0.1 localhost.localdomain localhost
10.0.0.5 Master
172.16.0.5 HAM
172.16.0.6 HAS
10.0.0.6 Slave
#cat /etc/host.conf
order hosts,bind
#cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=Master //主机名
GA TEWAY="10.0.0.1" //网关
GA TEWAY="eth0" //网关使用网卡
ONBOOT=YES //启动时加载
FORWARD_IPV4="yes" //只允许IPV4
#cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.0.0.5
NETMASK=255.0.0.0
GA TEWAY=10.0.0.1
TYPE=Ethernet
#cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=172.16.0.5
NETMASK=255.255.0.0
TYPE=Ethernet
[node1] 与[node2] 在上面的配置中,除了
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
要各自修改外,其他一致。
配置完成后,试试在各自主机上ping对方的主机名,应该可以ping通: (三)下载与安装Heartbeat(主从相同)
heartbeat软件从下载,本实验用最新版2.1.3
#rpm -ivh heartbeat-pils-*.rpm
#rpm -ivh hearbeat-stonith-*.rpm
#rpm -ivh hearbeat-*i386.rpm
(四)配置HA的各配置文件(主从相同)
配置心跳的加密方式:authkeys
#vi /etc/ha.d/authkeys
如果使用双机对联线(双绞线),可以配置如下:
#vi /etc/hc.d/authkeys
auth 1
1 crc
存盘退出,然后
#chmod 600 authkeys
配置心跳的监控:haresources(资源文件)
#vi /etc/ha.d/haresources
各主机这部分应完全相同。
Master 10.0.0.7 httpd //http等服务必需在init.d目录中存在
指定Master启动http服务,系统附加一个虚拟IP 10.0.0.7 给eth0:0
这里如果Master宕机后,Slave可以自动启动http服务,并新分配IP 10.0.0.7给Slave 的eth0:0
配置心跳的配置文件:ha.cf
#vi /etc/ha.d/ha.cf
logfile /var/log/ha_log/ha-log.log //ha的日志文件记录位置。
如没有该目录,则需要手动添加
bcast eth1 //使用eht1做心跳监测
keepalive 2 //设定心跳(监测)时间时间为2秒
warntime 10 //警告时间
deadtime 30 //死亡时间,设定几秒后判定为对方死亡
initdead 120 //系统重起后的等待时间(如等待其它服务器启动)
udpport 694 //使用udp端口694 进行心跳监测
auto_failback on //是否自动接管资源
node Master //节点1,必须要与uname -n 指令得到的结果一致。
node Slave //节点2
ping 10.0.0.1 //通过ping 网关来监测心跳是否正常。
respawn hacluster /usr/lib64/heartbeat/ipfail //如果通信故障,ipfail将转移资源
apiauth ipfail gid=root uid=root //设置ipfail的用户
groupadd haclient; useradd -g haclient hacluster //新建ipfail用户
(五)HA服务的启动、关闭以及测试
启动HA: service heartbeat start
关闭HA; service heartbeat stop
系统在启动时已经自动把heartbeat 加载了。
也可chkconfig heartbeat on
使用http服务测试heartbeat
首先启动httpd服务
#service httpd start
编辑各自主机的测试用html文件,放到/var/www/html/目录下。
启动node1的heartbeat,并执行这个指令进行监控: heartbeat status (六)防火墙设置(主人相同)
Heartbeat 默认使用udp 694端口进行心跳监测。
如果系统有使用iptables 做防火墙,应记住把这个端口打开。
#vi /etc/sysconfig/iptables
加入以下内容
-A RH-Firewall-1-INPUT -p udp -m udp --dport 694 -j ACCEPT
意思是udp 694端口对对方的心跳开放。
#service iptables restart //重新加载iptables。
四、小结
Heartbeat的功能,主要是做双机的执备。
也就是两个装有(并设置好了)heartbeat的两台电脑,互相做实时的“健康”检查。
也就是这个软件可以保证总有一台服务器是连通的,当一台坏掉的时候。