Linux上的heartbeat双机热备服务架设
【一】 安装前环境设定
两台主机硬件环境(不必完全一致):
CPU: Xeon 3G *2 (EM64T)
MEM: 2G
NIC: Intel 1G *2
eth0: 对外IP
eth1: 对内IP(HA专用)
两台主机的eth1使用双机对联线直接连接。
分区方式:
Filesystem 容量 挂载点
/dev/sda2 9.7G /
/dev/sda6 45G /Datas
/dev/sda1 99M /boot
none2.0G /dev/shm
/dev/sda3 9.7G /opt
另外每台主机应预留500M的raw空间或者更多来作为共用空间被HA使用。
操作系统:
RedHat Enterprise 4 Update2 (2.6.9-22 EL)
预安装软件:
@ X Window System
@ GNOME Desktop Environment
@ KDE Desktop Environment
@ Editors
@ Engineering and Scientific
@ Graphical Internet
@ Text-based Internet
@ Authoring and Publishing
@ Server Configuration Tools
@ Development Tools
@ Kernel Development
@ X Software Development
@ GNOME Software Development
@ KDE Software Development
@ Administration Tools
@ System Tools
【二】安装前网络环境设定:
node1: 主机名:servers201 ( HA01 )
eth0: 192.168.10.201 //对外IP地址
eth1: 10.0.0.201 //HA心跳使用地址
node2: 主机名:servers202 ( HA02 )
eth0: 192.168.10.202 //对外IP地址
eth1: 10.0.0.202 //HA心跳使用地址
特别注意要检查以下几个文件:
/etc/hosts
/etc/host.conf
/etc/resolv.conf
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/nsswitch.conf
#vi /etc/hosts
node1的hosts内容如下:
127.0.0.1 localhost.localdomain localhost
192.168.10.201 servers201 HA01
10.0.0.201 HA01
10.0.0.202 HA02
192.168.10.202 server202
node2的hosts内容如下:
127.0.0.1 localhost.localdomain localhost
192.168.10.202 servers202 HA02
10.0.0.202 HA02
10.0.0.201 HA01
192.168.10.201 server201
#cat /etc/host.conf
order hosts,bind
#cat /etc/resolv.conf
nameserver 61.139.2.69 //DNS地址
#cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=servers201 //主机名
GATEWAY="192.168.10.1" //网关
GATEWAY="eth0" //网关使用网卡
ONBOOT=YES //启动时加载
FORWARD_IPV4="yes" //只允许IPV4
#cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.10.201
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
TYPE=Ethernet
IPV6INIT=no
#cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
IPADDR=10.0.0.201
NETMASK=255.255.255.0
TYPE=Ethernet
[node1] 与 [node2] 在上面的配置中,除了
/etc/hosts
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
要各自修改外,其他一致。
配置完成后,试试在各自主机上ping对方的主机名,应该可以ping通:
/root#ping HA02
PING HA02 (10.0.0.202) 56(84) bytes of data.
64 bytes from HA02 (10.0.0.202): icmp_seq=0 ttl=64 time=0.198 ms
64 bytes from HA02 (10.0.0.202): icmp_seq=1 ttl=64 time=0.266 ms
64 bytes from HA02 (10.0.0.202): icmp_seq=2 ttl=64 time=0.148 ms
--- HA02 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.148/0.204/0.266/0.048 ms, pipe 2
【三】安装HA 与HA依赖包
rpm -Uvh libnet-1.1.2.1-1.rh.el.um.1.i386.rpm //可以不装
rpm -Uvh heartbeat-pils-2.0.4-1.el4.i386.rpm
rpm -Uvh heartbeat-stonith-2.0.4-1.el4.i386.rpm
rpm -Uvh heartbeat-2.0.4-1.el4.i386.rpm
rpm -Uvh ipvsadm-1.24-5.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
各主机这部分应完全相同。
server201 IPaddr::192.168.10.200 ipvsadm httpd
指定 server201调用ipvsadm启动http服务,系统附加一个虚拟IP 192.168.10.200 给eth0:0
这里如果server201宕机后,server202可以自动启动http服务,并新分配IP 192.168.10.200给server202的eth0:0
配置心跳的配置文件:ha.cf
#vi /etc/ha.d/ha.cf
logfile /var/log/ha_log/ha-log.log ## ha的日志文件记录位置。如没有该目录,则需要手动添加
bcast eth1 ##使用eth1做心跳监测
keepalive 2 ##设定心跳(监测)时间时间为2秒
warntime 10
deadtime 30
initdead 120
hopfudge 1
udpport 694 ##使用udp端口694 进行心跳监测
auto_failback on
node server201 ##节点1,必须要与 uname -n 指令得到的结果一致。
node server202 ##节点2
ping 192.168.10.1 ##通过ping 网关来监测心跳是否正常。
respawn hacluster /usr/lib64/heartbeat/ipfail
apiauth ipfail gid=root uid=root
debugfile /Datas/logs/ha_log/ha-debug.log
设置ipvsadm的巡回监测
ipvsadm -A -t 192.168.10.200:80 -s rr
ipvsadm -a -t 192.168.10.200:80 -r 192.168.10.201:80 -m
ipvsadm -a -t 192.168.10.200:80 -r 192.168.10.202:80 -m
执行后进行监测:
#ipvsadm --list
如果返回结果与下相同,则设置正确。
IP Virtual Server version 1.2.0 (size=4096)
Prot LocalAddress
ort Scheduler Flags
-> RemoteAddress
ort Forward Weight ActiveConn InActConn
TCP 192.168.10.200:http rr
-> server202:http Local 1 0 0
-> server201:http Masq 1 0 0
【五】 HA服务的启动、关闭以及测试
启动HA: service heartbeat start
关闭HA; service heartbeat stop
系统在启动时已经自动把heartbeat 加载了。
使用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 -d 10.0.0.201 -j ACCEPT
意思是udp 694端口对 对方的心跳网卡地址 10.0.0.201 开放。
#service iptables restart
重新加载iptables。
服务器的双机热备好像和交换机无关吧。
两台服务器之中要装热备软件,在windows下比如有rose HA。
一台做为主机,一台做为备份机。两机共用一个磁盘阵列。
两台服务器之间加心跳线,就是反掐的的网线,在热备软件中设置就可以了。
hydtk
2004-09-03, 11:18
我也想知道,楼上的能说清楚一些吗!
缘来
2004-09-03, 11:42
服务器每台安装两块网卡,一块接网络,一块接心跳线。
每台服务器的SCSI卡都通过电缆接磁盘阵列。
基本如下:主服务器----磁盘阵列----备份服务器。
连接基本是这样。
然后在热备软件中做设置,虚拟出一个IP地址。
再在两台服务器中分别安装数据库软件,不过路径都指向磁盘阵列。
这样主服务器在运行的时候,如果当掉了,备份服务器就可以通过心跳线侦测到,自动接管数据库服务,这就是双机热备份。
还有一种是双机互备援。就是两台同时工作。
flywd
2004-09-03, 14:46
双机热备和交换机无关,是服务器和存储技术。
两台服务器装RAID卡和双网卡,通过RAID卡连接到一台共用的磁盘阵列去;使用一个网卡组成两个服务器的私网,再加一个RS232的串口线做冗余的心跳。
在WINDOWS系统下常的是ROSE HA ,设置共享IP地址、共享卷、要备份的网络服务、别名、USER什么的。当一台服务器当机时网络服务可以切换到另一台,对于客户来说是透明的。
安装ORICAL数据库服务的双机热备比较复杂,还需要对ORICAL的一些结构有些了解。双机的管理员名字和口令必需一样的,俺第一次做ROSE HA的时候就因为双机的口令不一样,怎么也搞不定,晕死了!
kymcoo
2004-09-03, 16:46
一块接网络,一块接心跳线
---心跳线是指什么? 怎个接法?
使用一个网卡组成两个服务器的私网,再加一个RS232的串口线做冗余的心跳
---私网? 是指同一交换机上的工作站都不能访问么?
---怎么做心跳?
yyykkk1996
2004-09-03, 22:33
集群系统实现方案详解
有一种常见的方法可以大幅提高服务器的安全性,这就是集群。
1、 集群的基本概念
Cluster集群技术可如下定义:一组相互独立的服务器在网络中表现为单一的系统,并以单一系统的模式加以管理。此单一系统为客户工作站提供高可靠性的服务。
大多数模式下,集群中所有的计算机拥有一个共同的名称,集群内任一系统上运行的服务可被所有的网络客户所使用。Cluster必须可以协调管理各分离的组件的错误和失败,并可透明地向Cluster中加入组件。
一个Cluster包含多台(至少二台)拥有共享数据存储空间的服务器。任何一台服务器运行一个应用时,应用数据被存储在共享的数据空间内。每台服务器的操作系统和应用程序文件存储在其各自的本地储存空间上。
Cluster内各节点服务器通过一内部局域网相互通讯。当一台节点服务器发生故障时,这台服务器上所运行的应用程序将在另一节点服务器上被自动接管。当一个应用服务发生故障时,应用服务将被重新启动或被另一台服务器接管。当以上任一故障发生时,客户将能很快连接到新的应用服务上。
2、 集群的硬件配置
镜像服务器双机
集群中镜像服务器双机系统是硬件配置最简单和价格最低廉的解决方案,通常镜像服务的硬件配置需要两台服务器,在每台服务器有独立操作系统硬盘和数据存贮硬盘,每台服务器有与客户端相连的网卡,另有一对镜像卡或完成镜像功能的网卡。
镜像服务器具有配置简单,使用方便,价格低廉诸多优点,但由于镜像服务器需要采用网络方式镜像数据,通过镜像软件实现数据的同步,因此需要占用网络服务器的CPU及内存资源,镜像服务器的性能比单一服务器的性能要低一些。
有一些镜像服务器集群系统采用内存镜像的技术,这个技术的优点是所有的应用程序和网络操作系统在两台服务器上镜像同步,当主机出现故障时,备份机可以在几乎没有感觉的情况下接管所有应用程序。因为两个服务器的内存完全一致,但当系统应用程序带有缺陷从而导致系统宕机时,两台服务器会同步宕机。这也是内存镜像卡或网卡实现数据同步,在大数据量读写过程中两台服务器在某些状态下会产生数据不同步,因此镜像服务器适合那些预算较少、对集群系统要求不高的用户。
硬件配置范例:
・ 网络服务器 两台
・ 服务器操作系统硬盘 两块
・ 服务器数据存贮硬盘 视用户需要确定
・ 服务器镜像卡(部分软件可使用标准网卡) 两块
・ 网络服务网卡 两块
双机与磁盘阵列柜
与镜像服务器双机系统相比,双机与磁盘阵列柜互联结构多出了第三方生产的磁盘阵列柜,目前,豪威公司、精业公司等许多公司都生产有磁盘阵列柜,在磁盘阵列柜中安装有磁盘阵列控制卡,阵列柜可以直接将柜中的硬盘配置成为逻辑盘阵。磁盘阵列柜通过SCSI电缆与服务器上普通SCSI卡相连,系统管理员需直接在磁盘柜上配置磁盘阵列。
双机与磁盘阵列柜互联结构不采用内存镜像技术,因此需要有一定的切换时间(通常为60――180秒),它可以有郊的避免由于应用程序自身的缺陷导致系统全部宕机,同时由于所有的数据全部存贮在中置的磁盘阵列柜中,当工作机出现故障时,备份机接替工作机,从磁盘阵列中读取数据,所以不会产生数据不同步的问题,由于这种方案不需要网络镜像同步,因此这种集群方案服务器的性能要比镜像服务器结构高出很多。 双机与磁盘阵列柜互联结构的缺点是在系统当中存在单点错的缺陷,所谓单点错是指当系统中某个部件或某个应用程序出现故障时,导致所有系统全部宕机。在这个系统中磁盘阵列柜是会导致单点错,当磁盘阵列柜出现逻辑或物理故障时,所有存贮的数据会全部丢失,因此,在选配这种方案时,需要选用一个品质与售后服务较好的产品。
硬件配置范例:
・ 网络服务器 两台
・ 服务器操作系统硬盘 两块
・ 第三方生产的磁盘阵列柜 一台
・ 磁盘柜专用SCSI电线 两根
・ 磁盘阵列柜数据存贮硬盘 视用户需求确定
・ 网络服务网卡 两块
除此之外,一些厂商还有更优秀的技术的解决方案,比如HP。
HP双机双控容错系统
HP NetServer为双机双控容错系统提供了高品质和高可靠的硬件基础。。
HP双机双控容错系统结合了HP服务器产品的安全可靠性与Cluster技术的优点,相互配合二者的优势。
硬件配置范例:
・ HP L系统的网络服务器 两台
・ 服务器操作系统硬盘 两块
・ HP硬盘存贮柜(SS/6,RS/8,RS/12) 一台
・ 磁盘柜专用SCSI集群适配电缆 两根
・ 磁盘柜数据存贮硬盘 视用户需求确定
・ HP集群专用阵列卡 两块
・ 网络服务网卡 两块
HP光纤通道双机双控集群系统
光纤通道是一种连接标准,可以作为SCSI的一种替代解决方案,光纤技术具有高带宽、抗电磁干扰、传输距离远、质量高、扩展能力强等特性,目前在FC-AL仲裁环路上可接入126个设备。
光纤设备提供了多种增强的连接技术,大大方便了用户使用。服务器系统可以通过光缆远程连接,最大可跨越10公里的距离。它允许镜像配置,这样可以改善系统的容错能力。服务器系统的规模将更加灵活多变。SCSI每条通道最多可连接15个设备,而光纤仲裁环路最多可以连接126个设备。
光纤集群系统组成:
HP光纤集群系统硬件设备包括有两台HP服务器(需支持光纤卡,目前有LC2000、LH3000、LH4、LH6000、LT6000、LXr8000、LXR8500)及光纤适配卡,可以使用RS/12FC光纤磁盘阵列柜,需另加一对或两对网卡用于心跳检测和与客户端连接。在配置过程中还需另外选配光纤卡到光纤存贮设备的光纤电缆。
硬件配置:
・ HPL系统的网络服务器 两台
・ 服务器操作系统硬盘 两块
・ HP光纤阵列存贮柜(RS/12FC) 一台
・ 光纤磁盘柜专用光纤电缆 两根
・ 光纤磁盘柜数据存贮硬盘 视用户需求确定
・ HP光纤适配卡 两块
・ 网络服务网卡 两块
3、集群的软件配置
基于NT平台的集群软件
microsoft的MSCS,也有许多第三方的专业软件公司开发的集群软件,如豪威的DATAWARE,VINCA公司的STANDBY SERVER,NSI公司的DOUBLE-TAKE。
MS WolfPack的特点
MS WolfPack是MS Cluster server的别称,是微软针对Cluster技术研制开发的双机软件。它集成在NT SERVER上,支持由二台机器组成的双机系统,提供一种高可用且易管理的应用环境。
主要特点:
・ 自动检测和修复服务器或应用程序的错误
・ 可实现对服务器中应用程序的切换
・ 可通过TCP/IP连接各种客户端,如MS-DOS、WINDOWS 3.X/9X/NT,Apple Macintosh、UNIX等
・ 生产主机无需人工干涉即可自动恢复数据并接管任务
・ 易管理性:
・ 可自动审核服务器和应用程序的工作状态
・ 可建立高可用性的应用程序、文件共享、打印请求等
・ 可灵活设置应用程序和数据的恢复策略
・ 简单操作即可进行应用程序的离线,重新再线,服务器间的迁移。
目前,WINDOWS 2000 Advanced Server与WINDOWS 2000 DataCenter Server都集成有更先进集群技术。
其它的网络操作系统平台上也有许多集群软件,比如:
基于novell平台的集群软件有Novell HA Server、Novell SFT III
基于sco UNIX平台的集群软件有Sentinel集群软件
基于Linux平台的集群软件有TurboCluster
关于在2000下做热备,首先操作系统必须是ADVANCE的!!
以DELL POWEREDAGE 6450为例:
两台6450服务器,一台DELL POWERVANLT 201S磁盘阵列柜。
两台服务器配置:1个9G SCSI 硬盘,1块DELL PERC 2/DC CARD,硬盘接在SCSI
CARD 上,一块集成的INTEL 8255X-BASED PCI ETHERNET NETWORK CARD ,一块INTEL
PRO 100 + NETWORK CARD 。
磁盘阵列柜配置:6块16G SCSI 硬盘
两根DELL 心跳网线
一台HUB
一、 配置服务器
1、 将两台服务器A和B连起来。两块INTEL 8255X-BASED PCI ETHERNET用心跳线连
接起来,两块INTEL PRO 100 +用两根网线接到HUB上。
2、 两台服务器都打开,在两台服务器A和B上分别安装 WINDOWS 2000 ADVANCED
SERVER。
3、 将服务器A配置为域控制器如取域名为(SERVER.COM)。
4、 配置两块网卡的 IP地址。如INTEL 8255X-BASED PCI ETHERNET设为10.1.1.10
INTEL PRO 100 + 设为111.111.111.10
5、 将服务器B加入到服务器A的域中,其方法有两种:
A. 在安装WINDOWS 2000时,计算机会提示是否加入到一个已存在的域中,
选择加入,输入服务器A的域 ,选择自定义安装,配置IP地址
INTEL 8255X-BASED PCI ETHERNET设为10.1.1.20,INTEL PRO 100 +
设为111.111.111.20,即可加入,这时服务器是不会提示已加入了域中,它会继续安装
下去,这一点与NT 4.0 是不同的。
注意:必须确认两台服务器已经连接好了,协议必须配置好。
B. 如果在安装时选择不加入一个已存在的域,那么可以在进入WINDOWS 2000
后用手工可以加入。具体方法:右击我的电脑,点击属性,选择网络标识,点击属性,
输入要加入的域,按照向导,即可完成。
6、 注意:两台服务器的两块同类型网卡必须配置在同一个域中。
7、 重新启动服务器A和B,按 CTRL+M进入DELL PREC 2/DC 中配置PREC CARD
A. 将CLUSTER MODE 设置为ENABLE,方法:OBJECTS---ADAPTER--- CLUSTRE
MODE
B. 将PERC 2/DC的 BIOS设置为 DISABLE(实际上选ENABLE)
C. 将PERC 2/DC卡的 INITIATOR ID设置为服务器 A为 6,服务器B为7。
D. 退出PREC 卡设置,将服务器A和B关闭。
二、 配置POWERVANLT 201S磁盘阵列柜
1、 PV201S有两块ES EM卡,将其拔出,卡上各有一跳线JP8,将JP8短接。
2、 将PV201S用SCSI线与服务器A的PREC 2/DC 相连。进入PREC 2/DC的BIOS配置磁
盘阵列柜(PV201S)的RAID(通常RAID5),然后选择INITIALIZE设置。
3、 退出。
注意:此时服务器B是关闭的。
三、 配置CLUSTRE
1、 保持服务器B为关闭状态。
2、 打开服务器A,进入WINDOWS 2000,升级WINDOWS 2000 PERC 2/DC DRIVER,其
步骤如下:
PERC驱动程序必须在两个节点进行升级. 下面的过程是描述更新驱动程序的过程:
# 更新PERC驱动程序
1. 点击开始菜单 -> 程序 -> 管理工具 -> 计算机管理。
2. 在[系统工具]下选择[设备器管理]。
3. 在右边的面板中点击SCSI and RAID 控制器.
4. 右键点击 AMI MEAGRAID或Dell PERC 2/DC RAID控制器, 并且选择[属
性]。
5. 点击[驱动程序]页,然后点击[更新驱动程序]。
6. 在更新驱动程序向导页面中,点击[下一步]。
7. 在列表中选择[显示已知设备驱动程序的列表,从中选择特定的驱动程
序],然后点击[下一步]。
8. 点击[从磁盘安装]。
9. 插入包含有新驱动程序的软盘到软盘驱动器中,然后点击[确定]。
10. 在左边的面板中选择DELL,然后在右边的面板中选择PERC 2/DC RAID 控
制器。
11. 点击[下一步]。
12. 如果有驱动程序警告窗体,请点击[是]。
13. 点击[下一步]。
14. 然后在驱动程序安装完成向导后,点击[完成]。
15. 选择[重新启动计算机]后,点击[是]重启计算机。
3、 进入WINDOWS 2000后,开始配置CLUSTER,其步骤如下:
1. 点击开始菜单 -> 程序 -> 管理工具 -> 计算机管理。
2. 点击[磁盘管理],在右边面板中查看当前使用的磁盘。
3. 自动显示签名和升级磁盘向导,否则右键点击灰色[磁盘0]并且点击[签
名]。
4. 点击[下一步]。
5. 选择所有磁盘,点击[下一步]。
6. 如果磁盘不需要进行升级,则取消选择所有选择的磁盘,点击[下一步]。
7. 点击[完成]。
8. 磁盘读写时必须作为基本状态。如果他们是动态,则右键点击每个磁盘,
然后选择[还原到基本磁盘]。
9. 右键点击第一个磁盘(磁盘0)并且选择[创建磁盘]。
10. 点击[下一步]。
11. 核对[主分区]是否被选择,然后点击[下一步]。
12. 核对是否为最大磁盘空间可以使用,然后点击[下一步]。
13. 分配第一个磁盘的盘符为Z,然后点击[下一步]。
14. 核对NTFS格