使用Heartbeat在Linux搭建高可用(High-Availability)的集群服务
本文的最后更新时间: 2005年10月19日 23:12
在互连网高速发展的今天,尤其是电子商务的发展,要求服务器要能够提供不间断服务。在电子商务中,如果服务器宕机,造成的损失是不可估量的。要保证服务器不间断服务,就需要对服务器实现冗余。在众多的实现服务器容易的解决方案中,heartbeat为我们提供了廉价的、可伸缩的高可用集群方案。下面我们将通过heartbeat在Linux下创建一个高可用的web服务器集群服务器。 本文中的系统环境为:RedHat Linux9.0
1. 目的和环境
* 硬件条件和环境
两台计算机(两个节点),一个共享SCSI硬盘盒(用于存储共享)。每个节点都安装支持共享总线的SCSI卡;每个节点有自己的系统磁盘;每个分别带有两块以太网卡,(其中一块用于网络通讯,另一块用于心跳功能。)。两个节点的网络设置如下:
节点1: 主机名为:node1.clusting.com,第一块网卡(eth0)的IP地址:192.168.100.7 (用于网络通讯) 。第二块网卡(eth1)的IP地址:10.0.0.1 (用于心跳通讯) 。
节点2: 主机名为:node2.clusting.com,第一块网卡(eth0)的IP地址:192.168.100.8 (用于网络通讯) 。第二块网卡(eth1)的IP地址:10.0.0.2 (用于心跳通讯) 。
其网络拓扑如下图所示:
* 目的
用上面的硬件搭建一台高可用的web服务器,服务器的IP地址为192.168.100.10,netmask 为255.255.255.240,broadcast为192.168.100.15。 web服务器的页面数据存储到共享盘的第一个分区(sdb1)上。
2. 准备环境
* 对共享磁盘进行分区
先关闭节点2(node2.clusting.com)主机的电源,打开节点1(node1.clusting.com)主机的电源,在节点一上安装系统,并对共享磁盘分区。
* 下载软件
首先下载heartbeat软件:到http://linux-ha.org/download 下载最新的heartbeat软件。本文写作时下载的软件是:heartbeat-2.0.2.tar.gz
* 下载和安装其它所需的软件
安装heartbeat除必要的编译器之外,需要下面两个软件的开发包支持:e2fsprogs和libnet。
e2fsprogs可以从系统的安装光盘使用rpm来安装: rpm -ivh /mnt/cdrom/RedHat/RPMS/e2fsprogs-devel-1.32-6.i386.rpm
libnet只能下载源代码进行安装。下载地址:http://www.packetfactory.net/libnet/。我下载的稳定版本是:1.1.2.1
接下来就是安装libnet:
tar -zxvf libnet.tar.gz
cd libnet
./configure
make
make install
3. 安装heartbeat
tar -zxvf heartbeat-2.0.2.tar.gz
cd heartbeat-2.0.2
./ConfigureMe configure
make
make install
4. 配置heartbeat
heartbeat的主配置文件为:/etc/ha.d/ha.cf。我们需要配置该文件,针对我们前面的规划,/etc/ha.d/ha.cf文件的主要内容如下:
logfile /var/log/ha-log #指名heartbeat的日志存放位置。
crm yes #支持ClusterResourceManager(集群资源管理)功能。
bcast eth1 #指明心跳方式使用以太广播方式,并且是在eth1接口上进行广播。
keepalive 2 #指明心跳时间为2秒(即每两秒钟在eth1上发送一次广播)。
warntime 10 #指明心跳延迟的时间为十秒。当10秒钟内备份机不能联系上主机(当前活动的服务器,即无心跳信号),就会往日志中写入一个警告日志,但此时不会切换服务。
deadtime 30 #指定在30秒内没有心跳信号,则立即切换服务。
initdead 120 #With some configurations, the network takes some time to start working after a reboot. This is a separate "deadtime" to handle that case. It should be at least twice the normal deadtime.
udpport 694 #Use port number 694 for bcast or ucast communication. This is the default, and the official IANA registered port number.
auto_failback on #
node node1.clusting.com #Mandatory. Hostname of machine in cluster as described by uname -n.
node node2.clusting.com #
respawn hacluster /usr/lib/heartbeat/ccm
respawn hacluster /usr/lib/heartbeat/ipfail
ping ping1.clusting.com ping2.clusting.com #Specify ping nodes. These nodes are not considered as cluster nodes. They are used to check network connectivity for modules like ipfail.
5. 配置HA资源
当切换资源时应该切换哪些资源,例如IP、磁盘……等。在heartbeat中,通过/etc/ha.d/haresources文件来配置共享的资源,在我们的案例中,/etc/ha.d/haresources文件的主要内容如下:
node1.clusting.com 192.168.100.10/28/192.168.100.15 Filesystem::/dev/sdb1::/ha::ext3 httpd
#设置node1.clusting.com为主节点,集群服务器的ip地址为192.168.100.10,netmask 为255.255.255.240,broadcast为192.168.100.15,集群的服务有httpd,还有共享磁盘/dev/sdb1。
该文件只有一行,其含义就是,当主节点node1.clusting.com宕机时,自动启用备用节点node2.clusting.com来提供服务,在却换到node2.clusting.com上时,自动启动httpd和smb服务,同时,将/dev/sdb1挂接到/ha。
6. 配置Authkeys
/etc/ha.d/authkeys文件的内容如下:
auth 1
1 sha1 key-for-sha1-any-text-you-want
更改文件的权限:
chmod 600 /etc/ha.d/authkeys
7. 使用同样的方法配置节点2
在节点2(node2.clusting.com)上执行步骤3-6(当然同样必须先安装heartbeat所需要的软件),节点2 上的heartbeat和apache的配置与节点1要完全相同。
8. 测试
* 在主节点(node1.clusting.com)上启动heartbeat服务:/etc/init.d/heartbeat start。 如果不出现错误,web服务应该被heartbeat启动,同时heartbeat为主节点设置IP地址192.168.100.10。使用ifconfig eth0:0可以看到如下信息:
eth0:0 Link encap:Ethernet HWaddr 00:0C:29:D8:FD:EB
inet addr:192.168.100.10 Bcast:192.168.100.15 Mask:255.255.255.240
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:14970 errors:0 dropped:0 overruns:0 frame:0
TX packets:14977 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:3624073 (3.4 Mb) TX bytes:3626223 (3.4 Mb)
Interrupt:19 Base address:0x10a0
同时/dev/sdb1,应该被挂接。使用df -h,可以看到的信息包含下面的行:
/dev/sdb1 485M 8.1M 452M 2% /ha
* 在node2(node2.clusting.com)上启动heartbeat:/etc/init.d/heartbeat start。 使用ifconfig eth0:0可以看到如下信息:
eth0:0 Link encap:Ethernet HWaddr 00:0C:29:E4:1E:F7
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:19 Base address:0x10a0
表明现在node2节点没有被启用。
使用df -h,看到的信息不包含下面的行:
/dev/sdb1 485M 8.1M 452M 2% /ha
表明/dev/sdb1没有被加载。
*
直接关闭节点1的电源(模拟故障)。 30秒后,在节点2(node2.clusting.com) 上执行ifconfig eth0:0,可以看到eth0:0已经被设置为192.168.100.10
Copyright© 2005 Clusting.com All Rights Reserved
联系:
分享到:
相关推荐
### Linux上实现Oracle HA双机热备的关键知识点 #### 一、实施环境说明与拓扑设计 **实施说明**:本文档旨在详细说明如何在Linux环境下实现Oracle HA(高可用性)双机热备方案。该方案利用了Red Hat Cluster Suite...
Linux HA(High Availability)是指在Linux环境中实现高可用性,以确保关键服务的连续性和可靠性。HA主要通过心跳机制监控系统状态,当主服务器发生故障时,能够自动将服务切换到备用服务器,避免服务中断。在本文中...
Linux HA(High Availability)管理操作主要关注的是在Linux环境下如何构建高可用性的系统,确保服务的连续性和稳定性。HA在IT领域中是一个重要的概念,它通过冗余硬件、软件和服务来减少系统的停机时间,提高业务...
《Linux-HA用户指南》是一本详尽介绍Linux高可用性集群中Heartbeat系统的文档,旨在帮助用户理解和配置Heartbeat,以实现系统故障转移和负载均衡。以下是该指南中的主要知识点: I. Heartbeat作为集群消息传递层 ...
HP Windows/Linux HA(High Availability)高性能集群是惠普公司提供的解决方案,它结合了Windows和Linux操作系统,以提供高可用性和强大的计算能力。本文将深入探讨这个主题,包括其基本操作、技术细节以及如何构建...
RoseHA是在Linux环境下配置MySQL高可用性解决方案...这些知识是建立在深厚的网络通信、操作系统、数据库和集群技术基础之上的,对于想要保证MySQL服务在Linux环境下实现高可用性的IT工程师而言,是不可或缺的参考资料。
5. **操作系统 RedFlag DC5.0**:作为HA集群的基础,红旗DC5.0操作系统提供了必要的支持和服务。 6. **RedFlag HA Daemon (Service)**:HA守护进程,负责处理集群的核心功能,如心跳检测、故障切换等。 7. **Red...
RoseMirrorHA是一款为Linux系统设计的高可用性(HA)解决方案。它通过提供一系列的服务和工具来确保关键业务应用程序和服务能够在发生故障时自动切换到备用服务器,从而实现系统的高可用性和容错能力。本文档将详细...
除了基础的截图功能,ha_FSCapturev9.7还集成了绘图和修图工具,使用户可以在截图后进行进一步的编辑处理。例如,你可以添加箭头、文字注释,以更好地表达图片中的重点信息;也可以选择不同的笔刷和颜色,进行自由...
Linux下的高可用性(High Availability, HA)配置与Domino分区服务器部署是企业级服务器环境中确保服务连续性和数据安全的重要技术。本文档将详细介绍如何在Linux操作系统上搭建HA集群,并结合Lotus Domino服务器进行...
RoseHA支持多种操作系统,包括常见的Linux发行版,如Red Hat Enterprise Linux和CentOS。在提供的版本中,“RoseHA_10.0.0_1002-i386”是针对32位系统的,而“RoseHA_10.0.0_1002-SP1-x64”则是为64位系统设计的。这...
ROSE HA for Linux不仅提供了基础的高可用性和故障切换能力,还支持多种数据库和应用服务的保护,如Oracle、DB2、Apache等。其优势在于: - **自动化故障检测与恢复**:能够自动检测硬件或软件故障,并迅速进行服务...
在“Linux集群理论基础”中,我们将深入探讨以下几个关键知识点: 1. **集群架构**:Linux集群通常分为高可用性(High Availability, HA)集群和负载均衡(Load Balancing)集群。HA集群确保当一台服务器故障时,服务...
在集群配置中,文档接着讨论了安装和基础设置,包括自动集群设置(使用ha-cluster-bootstrap)和手动设置(使用YaST)。YaST是SUSE系统配置的图形界面工具,文档中描述了如何使用YaST集群模块定义通信频道、设置认证...
《RoseHA for Linux 安装指南》详述了在Linux环境中安装和配置RoseHA软件的步骤,这是一款用于实现高...正确执行上述步骤,能够确保RoseHA在Linux环境下有效地提供高可用性保障,为关键业务的连续运行提供坚实的基础。
在Kubernetes v1.12.5版本中,通过多Master节点的设置,配合负载均衡器如LVS(Linux Virtual Server),可以实现高可用性,提高服务的稳定性和可靠性。 TLS双向认证是Kubernetes安全机制的重要组成部分。它要求...
【Red Hat Linux AS 3配置HA集群实战】 在IT领域,高可用性(HA)集群是一种重要的技术,它能够确保关键服务的连续性,避免单点故障。Red Hat Linux AS 3是Red Hat公司推出的企业级操作系统,支持构建HA集群以提供...
### RoseMirrorHA for Linux配置详解 #### 硬件与软件环境 ...这些步骤是实现稳定可靠的高可用性集群的基础,对于确保业务连续性和数据安全性至关重要。接下来的章节将深入探讨具体的安装配置过程和技术细节。