- 浏览: 845665 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (379)
- struts (5)
- hibernate (16)
- spring (16)
- ssh (20)
- MySQL (16)
- 数据库脚本 (2)
- DownLoad (1)
- GAE (5)
- Java (103)
- LoadRunner (2)
- VF (1)
- 学习资料 (24)
- 软件使用 (21)
- 通信类 (4)
- 生活 (3)
- J2ME (1)
- 心理学 (1)
- Linux (26)
- Android (3)
- Oracle (1)
- 面向对象概念&面试准备 (11)
- ExtJs (2)
- Google Map (1)
- Flex (47)
- 算法研究 (1)
- share (20)
- python (1)
- MongoDB (7)
- centos6 (13)
- C++ (8)
- DB2 (3)
- C# (1)
- 代码片段 (24)
- Lucene (2)
- php (1)
- NodeJS (1)
- Express (1)
最新评论
-
shua1991:
已阅,我表示同意。
Eclipse统计代码行数 -
nakedou:
写的不错,挺详细的
在CentOS中使用 yum 安装MongoDB及服务器端配置 -
sjp524617477:
好方法
Eclipse统计代码行数 -
simpletrc:
<script>ale ...
Java写到.txt文件,如何实现换行 -
csdn_zuoqiang:
Apache Ftp Server,目前是1.0.4,非常好的 ...
Apache FtpServer在64位系统下服务不能启动解决方法
Linux 包括 CentOS 下高可用性(HA:High Availability)集群方案很多,而 Heartbeat 是比较常见和性价比比较高的一种。
一、硬件及网络连接
群集一般需要2台以上服务器,本篇以两台服务器做群集(双机热备)为例来说明。本实验在 Vmware Workstation 7.1 虚拟机中实现。
两台服务器的必需配置:双网卡。其中一块网卡作为“心跳”使用。作为“心跳”的两块网卡用交叉线直接连接,作为群集的信号同步使用。多台服务器的群集,建议用全千兆交换机来连接“心跳”线。作为“心跳”的网卡最好是质量好的千兆网卡。实际工程中见过因为网卡质量问题导致群集失败的案例。
群集使用的两台服务器并不需要有完全相同的硬件(或者内存大小等),但如果相同的话,当某个部件出现故障时会容易处理得多。集群是通过 Heartbeat 软件产生在两台电脑之间“心跳”信号来建立的。为了传输“心跳”信号,需要在节点之间存在一条或多条介质通路,例如串口线(通过 Modem 连接)、以太网通过交叉线等,本例选用常见的以太网连接。
群集服务器的另一块网卡连接到交换机上,对外提供服务。本例以 Apache 提供的 Web 服务作为群集服务,实际工程中还可以提供 MySQL 等服务。一个群集里可以集成几种以上的服务,但在生产环境下,建议还是提供单一的服务比较好,能发挥服务器的最大可用性,同时可保证群集的可靠性。
二、CentOS 配置
1,关闭 SELINUX
编辑 /etc/sysconfig/selinux 文件,配置以下语句: SELINUX=disabled
也可以在图形界面里修改。 实际生产环境不应该关闭 SELINUX,但必须注意 SELINUX 对群集的影响。
2,关闭 iptables 防火墙
执行命令: chkconfig iptables off chkconfig ip6tables off
也可以在图形界面里修改。 实际生产环境不应该关闭防火墙,但必须注意打开群集有关的协议和端口。
3,IP 地址配置
服务器一: 网卡0(eth0): IP 为 10.0.0.50/24 网卡1(eth1): IP 为 172.16.0.50/24
服务器二: 网卡0(eth0): IP 为 10.0.0.51/24 网卡1(eth1): IP 为 172.16.0.51/24
配置完毕,可以输入如下命令检查 IP 配置: # ifconfig
可以用 ping 命令检测网络的连通性。例如,在服务器一中: # ping 10.0.0.51 # ping 172.16.0.51 均应该连通。
4,分别修改主机名为 node1、node2
服务器一修改 /etc/sysconfig/network 文件中 HOSTNAME 语句为: HOSTNAME=node1 服务器二修改 /etc/sysconfig/network 文件中 HOSTNAME 语句为: HOSTNAME=node2 也可以在 GUI 的“网络”配置里修改。
修改完毕,运行命令 # uname -n 看到的结果应该与上面的修改一致。
5,修改 hosts 文件
在两台服务器的 /etc/hosts 文件里,添加以下语句: 10.0.0.50 node1 10.0.0.51 node2
6,安装 HeartBeat 软件
在两台服务器里,运行命令: # yum install heartbeat*
YUM 会安装 heartbeat 及其所有依赖的软件包。并创建隐藏的系统帐户 hacluster 和系统群组 haclient。
查看安装了什么软件包: 运行命令: # yum list heartbeat* Installed Packages heartbeat.i386 2.1.3-3.el5.centos installed heartbeat-devel.i386 2.1.3-3.el5.centos installed heartbeat-gui.i386 2.1.3-3.el5.centos installed heartbeat-ldirectord.i386 2.1.3-3.el5.centos installed heartbeat-pils.i386 2.1.3-3.el5.centos installed heartbeat-stonith.i386 2.1.3-3.el5.centos installed
7,配置 Apache
Apache 是作为群集的测试服务来对外提供 Web 服务的。注意 Apache 是以 HeartBeat 群集虚拟的 IP 地址来访问的。群集创建完成后,将以该虚拟 IP 作为外部访问的地址,所以该 IP 必须是外网可访问地址。
们指定该 IP 为 10.0.0.60,所以可以在两台服务器的 Apache 里配置以 IP 地址 10.0.0.60 访问的虚拟主机。
ServerAdmin webmaster@example.com DocumentRoot /var/www/html
ServerName 10.0.0.60 #or: ServerName www.somedomain.com ErrorLog
logs/example.com-error_log CustomLog logs/example.com-access_log common
Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all
为简单起见,可以将 Apache2.0 配置文件 httpd.conf 中的 Listen 80 语句改为 Listen 10.0.0.60:80 即可。
然后在服务器一(node1)的 Apache 根文件夹 /var/www/html/ 下建立主页文件 index.html,文件内容为: This is node1。 在服务器二(node2)的 Apache 根文件夹 /var/www/html/ 下建立主页文件 index.html,文件内容为: This is node2。
实际使用中,node1 和 node2 的 Apache 网站文档需要同步,或直接指向同一个高可靠性的存储位置(例如 RAID 5+1 磁盘阵列)即可。
8,无关的服务,尽量关闭,例如: # chkconfig acpid off # chkconfig anacron off # chkconfig apmd off # chkconfig auditd off # chkconfig autofs off # chkconfig bluetooth off # chkconfig cpuspeed off # chkconfig cups off # chkconfig gpm off # chkconfig haldaemon off # chkconfig iptables off # chkconfig isdn off # chkconfig kudzu off # chkconfig mDNSResponder off # chkconfig mdmonitor off # chkconfig messagebus off # chkconfig netfs off # chkconfig nfslock off # chkconfig nifd off # chkconfig pcmcia off # chkconfig portmap off # chkconfig rhnsd off # chkconfig rpcgssd off # chkconfig rpcidmapd off # chkconfig sendmail off # chkconfig xfs off
三、群集配置
CentOS5.5 安装 HeartBeat2.1.3 后,在 /usr/share/doc/heartbeat-2.1.3 下有有关的配置文件模板,我们把它们拷贝到 /etc/ha.d/ 目录下:
#cp /usr/share/doc/heartbeat-2.1.3/ha.cf /etc/ha.d/ #cp /usr/share/doc/heartbeat-2.1.3/haresources /etc/ha.d/ #cp /usr/share/doc/heartbeat-2.1.3/authkeys /etc/ha.d/
进入群集配置目录: #cd /etc/ha.d/
2,编辑 authkeys 文件 # gedit authkeys
服务器一、二相同。内容如下,1 、2、3 表示认证算法选择,这里选择了crc 算法。1 、2、3 不是固定的,只要前后对应即可: auth 1 1 crc #2 sha1 HI! (注释掉) #3 md5 Hello! (注释掉)
还必须将 authkeys 文件权限设置为 600(安全考虑): #chmod 600 authkeys
authkeys 文件权限不够,当启动 heartbeat 服务时,会报错: ERROR: Bad permissions on keyfile [/etc/ha.d/authkeys], 600 recommended. ERROR: Authentication configuration error. ERROR: Configuration error, heartbeat not started.
3,编辑 haresources: # gedit haresources
服务器一、二相同。内容如下: node1 IPaddr::10.0.0.60 httpd
第一列为默认主机; 第二列为配置的虚拟 IP; 第三列为需要实现高可用性的服务(启动脚本在 /etc/init.d 内); 如果没有服务则默认全部已运行服务,指定服务在备机接管之前是不会启动的。
该行指定在“心跳”服务启动时,节点 node1 得到 IP 地址 10.0.0.60,并启动 Apache 服务。在停止时,首先停止 Apache,然后释放 IP 地址。
4,编辑 ha.cf: # gedit ha.cf
服务器一(node1)内容为: debugfile /var/log/ha-debug logfile /var/log/ha-log logfacility local0 keepalive 2 deadtime 60 warntime 4 initdead 120 udpport 694 #bcast eth0 ucast eth1 172.16.0.51 #mcast eth0 225.0.0.1 694 1 0 auto_failback on node node1 node node2 ping 10.0.0.2 respawn hacluster /usr/lib/heartbeat/ipfail apiauth ipfail gid=haclient uid=hacluster
服务器二(node2)的 ucast eth1 172.16.0.51 语句改为: ucast eth1 172.16.0.50
解释:
debugfile /var/log/ha-debug 日志文件
logfile /var/log/ha-log 日志文件
logfacility local0 登陆/调试日志同时记录给syslog
serial /dev/ttyS0 使用串口heartbeat-如果不使用串口heartbeat,则必须使用其他的介质,如bcast(以太网)heartbeat。用适当的设备文件代替/dev/ttyS0。
bcast eth1 表示在eth1接口上使用来发送“心跳”信息,建议在副节点不只一台时使用(将eth1替换为eth0,eth2,或者您使用的任何接口)。
ucast eth1 10.0.0.102 采用网卡eth1 的udp 单播来通知“心跳”,ip 应为对方IP ,在主机2 上设置为ucast eth1 10.0.0.101
#mcast eth0 225.0.0.1 694 1 0 采用udp 多播播来通知“心跳”,建议在副节点不只一台时使用, 广播,单播,多播,以上三种任选其一即可
keepalive 2 设定heartbeat之间的检测时间间隔为2秒。
warntime 10 在日志中发出“late heartbeat“警告之前等待的时间,单位为秒。
deadtime 30 在30秒后宣布节点死亡,主从机切换。
initdead 120 在某些配置下,重启后网络需要一些时间才能正常工作。这个单独的”deadtime”选项可以处理这种情况。它的取值至少应该为通常deadtime的两倍。
baud 19200 波特率,串口通信的速度。
udpport 694 使用端口694进行bcast和ucast通信。这是默认的,并且在IANA官方注册的端口号。
auto_failback on 该选项是必须配置的。对于那些熟悉Tru64 Unix的人来说,heartbeat的工作方式类似于“favored member“模式。在failover之前,haresources文件中列出的主节点掌握所有的资源,之后从节点接管这些资源。当 auto_failback设置为on时,一旦主节点重新恢复联机,将从从节点取回所有资源。若该选项设置为off,主节点便不能重新获得资源。该选项与 废弃的nice_failback选项类似。如果要从一个nice_failback设置为off的集群升级到这个或更新的版本,需要特别注意一些事项以 防止flash cut。请参阅FAQ中关于如何处理这类情况的章节。
node primary.mydomain.com 该选项是必须配置的。集群中机器的主机名,与“uname –n”的输出相同。
node backup.mydomain.com 该选项是必须配置的。同上。
ping 192.168.0.1 用来验证外网线连通的ip(推荐上级路由器,还有 ping_group, hbaping 等类似配置可选)。
respawn 该选项是可选配置的:列出将要执行和监控的命令。例如:要执行ccm守护进程,则要添加如下的内容:
respawn hacluster /usr/lib/heartbeat/ccm 使得Heartbeat以userid(在本例中为hacluster)的身份来执行该进程并监视该进程的执行情况,如果其死亡便重启之。对于 ipfail,则应该是:
respawn hacluster /usr/lib/heartbeat/ipfail 注意:如果结束进程的退出代码为100,则不会重启该进程。
apiauth ipfail gid=haclient uid=hacluster 网络检测补救插件,用来实现 auto_failback 功能的。
四、群集测试
方法1、启动服务器一(主机)的 HeartBeat 服务: # service hea
is node2。
IP 地址 10.0.0.60 还是能够 ping 通。
修改了前述的配置文件后,应该在同一台服务器上运行以下命令重新装载“心跳”服务: service heartbeat reload 重新启动“心跳”服务的命令是: service heartbeat restart (运行服务的另一种形式是 /etc/init.d/heartbeat restart)
方法2、另一种查看 heartbeat 服务是否凑效的方法是,运行 ifconfig 命令,如果看到类似以下信息,说明服务已经切换带该服务器上了:
eth0:0 Link encap:Ethernet HWaddr 00:0C:29:2D:4A:7F inet addr:10.0.0.60 Bcast:10.0.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:67 Base address:0×2000
这说明 heartbeat 服务已经在本机上虚拟了一个 IP 设备,通过这个设备 Apache 服务得到访问了。
还可以使用 ping 命令进行不间断监测,可以发现集群 IP 地址 10.0.0.60 一直处于可通状态,并没有产生任何阻塞或延迟,所以,在关闭处于激活状态的 heartbeat 的情况下,双机系统可以实现无缝切换。
但是在另外一些情况下,比如网络故障、主机关机或重启等,如果该主机的 heartbeat 处于激活状态,则不能实现双机的无缝切换,切换过程需要有一定的延迟,使用 ping 命令可以发现集群 IP 地址暂时无法使用。
五、群集维护及故障排除
群集(包括双机)系统并不是一个简单的系统。并不是每次配置群集都能成功。群集系统在运行的过程中也会出现问题,如“心跳”服务不能启动或死机,“心跳”服务不跳转或莫名其妙的自动跳转。
比如,查看日志 /var/log/ha-log 内的信息,发现如下信息:
“ERROR: No local heartbeat. Forcing shutdown”
并且 Heartbeat 无原因的关闭。可能是因为系统I/O负载过重,或操作系统的 BUG 引起的。
这时。可以调节 ha.cf 中 deadtime 的值到 60 秒或更高。
发表评论
-
FileChannelMain
2012-10-15 18:12 1117package scan; import java ... -
IDEA 常用配置以及快捷
2012-09-01 10:38 51721. IDEA内存优化 ... -
Ubuntu 10.04 TinyOS
2012-08-20 00:42 1610sudo gedit /etc/apt/sources.lis ... -
我看用户体验与用户价值
2012-07-01 14:55 1070不知道从什么时候开始,各个信息源都开始充斥着用户体验的讨 ... -
在windows 7上安装Maven2.2.1
2012-06-18 17:00 1254Maven是一个java工具,所以请确保jdk环境已经正确安装 ... -
产品经理如何赢得开发人员的尊重和支持?
2012-06-14 09:08 988对于产品经理来说, ... -
Apache FtpServer在64位系统下服务不能启动解决方法
2012-06-10 21:29 6925Apache FTPServer是一款用Java开发的 ... -
Java 集合类
2012-06-07 22:03 1802Java 集合类 1. 为什么要了解J ... -
Java集合工具类之List - ArrayList & LinkedList
2012-06-07 21:21 19421.ArrayList 的数据结构 ... -
VISIO2010 密钥
2012-06-07 08:35 6vISIO PREMIUM GR24B-G ... -
网络爬虫调研报告
2012-06-06 11:17 6055网络爬虫调研报告 调研背景 项目中要对 ... -
海量数据处理
2012-06-05 10:02 1903一:常见的题目:- 1 ... -
short、int、long与byte之间的转换工具类
2012-05-31 11:05 4529/** * 各基础类型与byte之间的转换 * ... -
新浪/搜狐微博插件 for Gwibber 3.0
2012-05-28 14:02 1794通过 Ubuntu 的 Gwibber 组件,我们可以很 ... -
Ubuntu 12.04 改造指南
2012-05-28 10:47 1475升级12.04已经有一段时间了。作为一个从08年就开始用 ... -
使用apt-get方式为Linux Mint 13安装PHP+MYSQL+Apache
2012-05-25 17:48 4819使用apt-get方式为Ubuntu安装PHP+MYSQ ... -
Linux Mint 13 配置JAVA 环境
2012-05-24 22:35 26650.1--下载 JAVA ... -
CentOS 5.5下搭建部署独立SVN服务器全程详解
2012-05-10 10:08 1169SVN服务器有2种运行方式: 1、独立服务器 (例如:s ... -
Erlang开发环境配置
2012-05-08 11:23 13041. 从erlang官网 下载安装包并安装。 本例 ... -
两个工具类
2012-03-17 21:27 899package com.retrieve.utils; ...
相关推荐
本主题将详细探讨如何在CentOS 7操作系统中利用HeartBeat软件来配置高可用性集群,以及VIP(Virtual IP)的角色和作用。HeartBeat是一款用于监控和管理集群服务的工具,它能在主服务器出现故障时自动将服务切换到...
### CentOS 下使用 Heartbeat 实现双机热备的详细步骤 Heartbeat 是一款开源的高可用性集群管理软件,能够实现在多台服务器之间进行故障转移和服务接管,从而提高服务的稳定性和可用性。本文将详细介绍如何在 ...
本主题聚焦于CentOS Linux操作系统中的Heartbeat配置,这是一个用于实现高可用性集群的关键组件。Heartbeat监控并保持集群节点间的通信,当主节点发生故障时,它能迅速将服务切换到备用节点,从而确保服务的连续性和...
在CentOS 6.5上搭建LVS+heartbeat集群的步骤通常包括: 1. **系统准备**:在所有参与服务器上安装CentOS 6.5,确保网络配置正确,并安装必要的软件包,如lvs、heartbeat等。 2. **配置LVS**:在Director Server上...
### Centos6.5下安装Heartbeat-2.1.4 #### 一、Heartbeat简介 Heartbeat是一款开源的高可用性解决方案软件,主要用于在两台或多台服务器之间实现故障转移(failover),确保服务的连续性和可用性。通过Heartbeat,...
【标题】:“heartbeat集群配置”涉及的知识点 【描述】:在描述中,我们讨论了使用Heartbeat心跳检测技术来构建高可用性集群。这里的关键是Heartbeat如何确保集群服务的连续性和稳定性。 【标签】:“heartbeat”...
4. **虚拟化技术**:这里提到使用虚拟机实现集群,这可能是通过如VMware或KVM等虚拟化软件,在一台物理机器上创建多个虚拟CentOS系统来模拟多台物理服务器。 5. **集群软件**:CentOS集群的搭建通常需要集群软件,...
总结来说,LVS+Heartbeat+ldirectord的高可用Web集群方案提供了一种稳定且灵活的负载均衡解决方案,通过Heartbeat实现故障切换,通过ldirectord动态调整负载策略,确保了服务的高可用性和性能优化。
从给定的文件信息来看,这里涉及的是在CentOS环境下搭建Heartbeat集群并实现负载均衡的知识点。Heartbeat是一个开源的高可用性解决方案,主要用于在Linux系统之间建立故障转移(failover)机制,确保关键服务的连续...
标题中的“drbd heartbeat安装 Linux CentOS”涉及到的是在Linux CentOS操作系统上部署DRBD...在实际生产环境中,DRBD和Heartbeat的结合使用能够大大提高系统的稳定性和可用性,是构建高可用集群的重要工具。
### RHEL5上使用LVS与Heartbeat实现Squid反向代理的高可用性 #### 实验背景及目的 本实验旨在RHEL5(Red Hat Enterprise Linux 5)操作系统上构建一个基于LVS(Linux Virtual Server)和Heartbeat的高可用性Squid...
该集群使用Pacemaker作为核心组件来管理资源和服务的高可用性,具体包括通过Pacemaker组件部署RHCS(Red Hat Cluster Suite)集群,实现Web资源的双机热备。 #### 环境准备 - **操作系统**: CentOS Linux release ...
- `heartbeat-gui-2.1.3-3.el5.centos.i386.rpm`:提供了图形用户界面,使得管理员可以更直观地监控和管理Heartbeat集群。 - `heartbeat-devel-2.1.3-3.el5.centos.i386.rpm`:开发包,包含头文件和库,供开发者...
Heartbeat集群系统是一种开源的高可用性(HA)解决方案,用于确保关键服务的连续运行。在本场景中,我们将深入探讨如何安装和配置Heartbeat,特别是在一个基于CentOS 5.3的操作系统环境下。 首先,构建Heartbeat集群...
在本文中,我们将使用Heartbeat配合MySQL实现一个高可用性集群。 #### 三、环境配置 本实验使用两台服务器进行互备关系的搭建,操作系统为CentOS release 5.3 (Final)。两台服务器的IP地址分别为188.188.1.132和188...
本文档旨在指导用户在 Centos5.6 x86_64 操作系统下部署安装 DRBD+Heartbeat+MySQL 服务器平台,实现高可用集群环境。通过本文档,用户可以学习如何在 Centos5.6 x86_64 操作系统下安装和配置 DRBD、Heartbeat 和 ...
### 使用LVS+Heartbeat构建高可用Web集群 #### 一、引言 随着互联网业务规模的不断扩大,单一服务器往往无法满足大规模用户访问的需求。为了提高系统的可用性和扩展性,通常采用集群技术来实现。其中,LVS(Linux ...