什么是双机热备份?
热备份就是指不重启机器,直接在windows32位环境下对系统进行备份,因此,热备份仅用于用GHOST一类软件对启动分区或系统分区进行备份的情况,老版本的GHOST(80以前)都必须在DOS环境下才能对系统分区进行备份,而自GHOST90开始才支持热备份,无需重启机器,在windows环境下即可对系统分区进行备份,而数据备份一般指只是对普通文件(文档,视频,音乐文件等)进行备份,当然也就不需要重启,这两个并不是相对的概念,可以这么说,数据备份涉及的是备份的范围(全部文件OR部分文件),而热备份涉及的是备份的方式(需不需要重启)。 一双机热备这一概念包括了广义与狭义两种意义。 从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服务。当一台服务器出现故障时,可以由另一台服务器承担服务任务,从而在不需要人工干预的情况下,自动保证系统能持续提供服务。 双机热备由备用的服务器解决了在主服务器故障时服务不中断的问题。但在实际应用中,可能会出现多台服务器的情况,即服务器集群。集群软件的异同) 双机热备一般情况下需要有共享的存储设备。但某些情况下也可以使用两台独立的服务器。(相关文章: 双机热备的实现模式 ) 实现双机热备,需要通过专业的集群软件或双机软件。(相关文章:双机与集群软件的选择) 从狭义上讲,双机热备特指基于active/standby方式的服务器热备。服务器数据包括数据库数据同时往两台或多台服务器写,或者使用一个共享的存储设备。在同一时间内只有一台服务器运行。当其中运行着的一台服务器出现故障无法启动时,另一台备份服务器会通过软件诊测(一般是通过心跳诊断)将standby机器激活,保证应用在短时间内完全恢复正常使用。(相关文章: 双机热备、双机互备与双机双工的区别 )二为什么要做双机热备份 决定是否使用双机热备,正确的方法是要分析一下系统的重要性以及对服务中断的容忍程度,以此决定是否使用双机热备。即,你的用户能容忍多长时间恢复服务,如果服务不能恢复会造成多大的影响。 在考虑双机热备时,需要注意,一般意义上的双机热备都会有一个切换过程,这个切换过程可能是一分钟左右。在切换过程中,服务是有可能短时间中断的。但是,当切换完成后,服务将正常恢复。因此,双机热备不是无缝、不中断的,但它能够保证在出现系统故障时,能够很快恢复正常的服务,业务不致受到影响。而如果没有双机热备,则一旦出现服务器故障,可能会出现几个小时的服务中断,对业务的影响就可能会很严重。 另有一点需要强调,即服务器的故障与交换机、存储设备的故障不同,其概念要高得多。原因在于服务器是比交换机、存储设备复杂得多的设备,同时也是既包括硬件、也包括操作系统、应用软件系统的复杂系统。不仅设备故障可能引起服务中断,而且软件方面的问题也可能导致服务器不能正常工作。 还应指出的是,一些其他的防护措施如磁盘阵列(RAID)、数据备份虽然是非常重要的,但却不能代替双机热备的作用。三 双机热备份与数据备份的关系 一些用户在规划双机热备或双机备份时,会有这样的问题:我已经有了RAID,以及磁带备份,还有需要做双机吗?或者,如果我做了双机备份,还有必要做磁带备份吗? 应该说RAID和数据备份都是很重要的。但是,RAID技术只能解决硬盘的问题,备份只能解决系统出现问题后的恢复。而一旦服务器本身出现问题,不论是设备的硬件问题还是软件系统的问题,都会造成服务的中断。因此,RAID及数据备份技术不能解决避免服务中断的问题。对于需要持续可靠地提供应用服务的系统,双机还是非常重要的。只要想一想,如果你的服务器坏了,你要用多少时间将其恢复到能正常工作,你的用户能容忍多长的恢复时间就能理解双机的重要性了。 从另外一个方面,RAID以及磁带备份也是非常需要的。对于RAID而言,可以以很低的成本大大提高系统的可靠性,而且其复杂程度远远低于双机。因为毕竟硬盘是系统中机械操作最频繁、易损率最高的部件,如果采用RAID,就可以使出现故障的系统很容易修复,也减少服务器停机进行切换的次数。 数据备份更是必不可少的措施。因为不论RAID还是双机,都是一种实时的备份。任何软件错误、病毒影响、误操作等等,都会同步地在多份数据中发生影响。因此,一定要进行数据的备份(不论采取什么介质,都建议用户至少要有一份脱机的备份),以便能在数据损坏、丢失时进行恢复。
双机热备份技术是一种软硬件结合的较高容错应用方案。该方案是由两台服务器系统和一个外接共享磁盘阵列柜( 也可没有,而是在各自的服务器中采取RAID 卡) 及相应的双机热备份软件组成在这个容错方案中,操作系统和应用程序安装在两台服务器的本地系统盘上,整个网络系统的数据是通过磁盘阵列集中管理和数据备份的。数据集中管理是通过双机热备份系统,将所有站点的数据直接从中央存储设备读取和存储,并由专业人员进行管理,极大地保护了数据的安全性和保密性。用户的数据存放在外接共享磁盘阵列中,在一台服务器出现故障时,备机主动替代主机工作,保证网络服务不间断。
双机热备份系统采用“心跳”方法保证主系统与备用系统的联系。所谓“心跳”,指的是主从系统之间相互按照一定的时间间隔发送通讯信号,表明各自系统当前的运行状态。一旦“心跳”信号表明主机系统发生故障,或者备用系统无法收到主机系统的“心跳”信号,则系统的高可用性管理软件认为主机系统发生故障,主机停止工作,并将系统资源转移到备用系统上,备用系统将替代主机发挥作用,以保证网络服务运行不间断。
双机热备份方案中,根据两台服务器的工作方式可以有三种不同的工作模式,即: 双机热备模式、双机互备模式和双机双工模式。下面分别予以简单介绍。
双机热备模式即通常所说的active/standby 方式,active 服务器处于工作状态;而standby 服务器处于监控准备状态,服务器数据包括数据库数据同时往两台或多台服务器写入( 通常各服务器采用RAID 磁盘阵列卡) ,保证数据的即时同步。当active 服务器出现故障的时候,通过软件诊测或手工方式将standby 机器激活,保证应用在短时间内完全恢复正常使用。典型应用在证券资金服务器或行情服务器。这是采用较多的一种模式,但由于另外一台服务器长期处于后备的状态,从计算资源方面考量,就存在一定的浪费。
双机互备模式,是两个相对独立的应用在两台机器同时运行,但彼此均设为备机,当某一台服务器出现故障时,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而保证了应用的持续性,但对服务器的性能要求比较高。配置相对要好。
双机双工模式: 是cluster(群集)的一种形式,两台服务器均为活动,同时运行相同的应用,保证整体的性能,也实现了负载均衡和互为备份,需要利用磁盘柜存储技术(最好采用San 方式)。WEB 服务器或mail服务器等用此种方式比较多。
做 raid 1 即可。
RAID 1又被称为磁盘镜像,每一个磁盘都具有一个对应的镜像盘。对任何一个磁盘的数据写入都会被复制镜像盘中;系统可以从一组镜像盘中的任何一个磁盘读取数据。显然,磁盘镜像肯定会提高系统成本。因为我们所能使用的空间只是所有磁盘容量总和的一半。
RAID 1下,任何一块硬盘的故障都不会影响到系统的正常运行,而且只要能够保证任何一对镜像盘中至少有一块磁盘可以使用,RAID 1甚至可以在一半数量的硬盘出现问题时不间断的工作。当一块硬盘失效时,系统会忽略该硬盘,转而使用剩余的镜像盘读写数据。
通常,我们把出现硬盘故障的RAID系统称为在降级模式下运行。虽然这时保存的数据仍然可以继续使用,但是RAID系统将不再可靠。如果剩余的镜像盘也出现问题,那么整个系统就会崩溃。因此,我们应当及时的更换损坏的硬盘,避免出现新的问题。
更换新盘之后,原有好盘中的数据必须被复制到新盘中。这一操作被称为同步镜像。同步镜像一般都需要很长时间,尤其是当损害的硬盘的容量很大时更是如此。在同步镜像的进行过程中,外界对数据的访问不会受到影响,但是由于复制数据需要占用一部分的带宽,所以可能会使整个系统的性能有所下降。
使用两个磁盘控制器不仅可以改善性能,还可以进一步的提高数据的安全性和可用性。我们已经知道,RAID 1最多允许一半数量的硬盘出现故障,所以按照我们上图中的设置方式(原盘和镜像盘分别连接不同的磁盘控制),即使一个磁盘控制器出现问题,系统仍然可以使用另外一个磁盘控制器继续工作。这样,就可以把一些由于意外操作所带来的损害降低到最低程度。
比如你要存一组数据为:A、B、C、D、E
则在你的两块硬盘里都有一组数据:A、B、C、D、E
关于RAID1的做法,一般服务器都是带有RAID卡的,若没有,你也可以用软件做raid。
简单介绍一下带raid卡的硬件raid方法:
1) 首先当系统在自检的过程中出现一下提示时,同时按下"Ctrl+A"键
2) 进入了阵列卡的配置程序,然后选择"Container configuration utility"。
3) 进入 "Container configuration utility",此时,你将要选择"Initialize Drivers"选项去对新的或是需要重新创建容器的硬盘进行初始化。(注意: 初始话硬盘将删去当前硬盘上的所有数据)
4) 窗口便出现RAID卡的通道和连接到该通道上的硬盘,您可以使用"Insert"键选中需要被初始化的硬盘。请注意窗口下面的帮助提示。
5) 当您选择完成并按"Enter"键之后,系统键出现一下警告。如果您确认,选择"Y"即可。
6) 硬盘初始化后就可以根据您的需要创建相应级别(RAID1,RAID0等)的容器了。在主菜单中(Main Menu)选中"Create container"并回车。
7) 用"insert"键选中需要用于创建Container的硬盘到右边的列表中去。按下"Enter"。
8) 在弹出来的下窗口中用回车选择RAID级别,输入Container的卷标和大小。其它均保持默认不变。然后选择"Done"即可。
9) 这是系统会出现如下提示,即当这个"Container"没有被成功完成"Scrub"之前,这个"Container"是没有"冗余"功能。
10) 此时,您可以通过"Manage containers"选项选中相应的容器,检查这个"Container"的"Status"为"Scrub"。当它变为"Ok"。这个新创建的Container便具有了冗余功能(如果这个Container是支持冗余的 Scrub 将是个需要较长时间的过程, 在Scrub的过程,您可以退出该管理界面, 重新启动或安装操作系统 在这段时间内Container还不在冗余的状态下)
11) Containers创建完成。使用"ESC"键推出并重新启动计算机即可。
Linux上的heartbeat双机热备服务架设
一 安装前环境设定
两台主机硬件环境(不必完全一致):
CPU: Xeon 3G 2 (EM64T)
MEM: 2G
NIC: Intel 1G 2
eth0: 对外IP
eth1: 对内IP(HA专用)
两台主机的eth1使用双机对联线直接连接。
分区方式:
Filesystem 容量 挂载点
/dev/sda2 97G /
/dev/sda6 45G /Datas
/dev/sda1 99M /boot
none20G /dev/shm
/dev/sda3 97G /opt
另外每台主机应预留500M的raw空间或者更多来作为共用空间被HA使用。
操作系统:
RedHat Enterprise 4 Update2 (269-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: 19216810201 //对外IP地址
eth1: 1000201 //HA心跳使用地址
node2: 主机名:servers202 ( HA02 )
eth0: 19216810202 //对外IP地址
eth1: 1000202 //HA心跳使用地址
特别注意要检查以下几个文件:
/etc/hosts
/etc/hostconf
/etc/resolvconf
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/nsswitchconf
#vi /etc/hosts
node1的hosts内容如下:
127001 localhostlocaldomain localhost
19216810201 servers201 HA01
1000201 HA01
1000202 HA02
19216810202 server202
node2的hosts内容如下:
127001 localhostlocaldomain localhost
19216810202 servers202 HA02
1000202 HA02
1000201 HA01
19216810201 server201
#cat /etc/hostconf
order hosts,bind
#cat /etc/resolvconf
nameserver 61139269 //DNS地址
#cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=servers201 //主机名
GATEWAY="192168101" //网关
GATEWAY="eth0" //网关使用网卡
ONBOOT=YES //启动时加载
FORWARD_IPV4="yes" //只允许IPV4
#cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=19216810201
NETMASK=2552552550
GATEWAY=192168101
TYPE=Ethernet
IPV6INIT=no
#cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
IPADDR=1000201
NETMASK=2552552550
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 (1000202) 56(84) bytes of data
64 bytes from HA02 (1000202): icmp_seq=0 ttl=64 time=0198 ms
64 bytes from HA02 (1000202): icmp_seq=1 ttl=64 time=0266 ms
64 bytes from HA02 (1000202): icmp_seq=2 ttl=64 time=0148 ms
--- HA02 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0148/0204/0266/0048 ms, pipe 2
三安装HA 与HA依赖包
rpm -Uvh libnet-1121-1rhelum1i386rpm //可以不装
rpm -Uvh heartbeat-pils-204-1el4i386rpm
rpm -Uvh heartbeat-stonith-204-1el4i386rpm
rpm -Uvh heartbeat-204-1el4i386rpm
rpm -Uvh ipvsadm-124-5i386rpm
四 配置 HA的各配置文件
配置心跳的加密方式:authkeys
#vi /etc/had/authkeys
如果使用双机对联线(双绞线),可以配置如下:
#vi /etc/hcd/authkeys
auth 1
1 crc
存盘退出,然后
#chmod 600 authkeys
配置心跳的监控:haresources
#vi /etc/had/haresources
各主机这部分应完全相同。
server201 IPaddr::19216810200 ipvsadm httpd
指定 server201调用ipvsadm启动http服务,系统附加一个虚拟IP 19216810200 给eth0:0
这里如果server201宕机后,server202可以自动启动http服务,并新分配IP 19216810200给server202的eth0:0
配置心跳的配置文件:hacf
#vi /etc/had/hacf
logfile /var/log/ha_log/ha-loglog ## 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 192168101 ##通过ping 网关来监测心跳是否正常。
respawn hacluster /usr/lib64/heartbeat/ipfail
apiauth ipfail gid=root uid=root
debugfile /Datas/logs/ha_log/ha-debuglog
设置ipvsadm的巡回监测
ipvsadm -A -t 19216810200:80 -s rr
ipvsadm -a -t 19216810200:80 -r 19216810201:80 -m
ipvsadm -a -t 19216810200:80 -r 19216810202:80 -m
执行后进行监测:
#ipvsadm --list
如果返回结果与下相同,则设置正确。
IP Virtual Server version 120 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 19216810200: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 1000201 -j ACCEPT
意思是udp 694端口对 对方的心跳网卡地址 1000201 开放。
#service iptables restart
重新加载iptables。
0条评论