实现的双机热备
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何实现的双机热备
————————————————————————————————作者:————————————————————————————————日期:
2
如何实现的双机热备
2009-01-05 12:19:58
一.介绍
作为服务器,需要提供一定的24X7的安全保证,这样可以防止关键节点的宕机引起系统的全面崩溃。春笛公司在长期的邮件系统方案实施过程
中,利用OpenSource开源软件,结合金笛邮件系统,成功地为多家单位实施了大容量邮件系统的高可靠双机热备方案。
基于linux的 HA软件可靠稳定,比使用商业版本的HA软件降低成本约9成左右。
在这里我们用 lvs 和 DRBD 实现了一个真实环境下的双机热容错集群。
这里的关键技术是如何实现ip代换, mon/heartbeat检测, 文件同步。
同样这一方法稍加改动就可以实现oracle热备份、ldap热备份等。
二.方案描述
将真实服务地址绑定到一个虚拟网卡(eth0:1)上通过检测程序
(heartbeat)来将主机或是备份主机的虚拟网卡(eth0:1)激活。从而实现热备份。使用网络硬盘RAID来同步文件。检测程序通过内网进行监控。
金笛高可用邮件系统架构(双机系统)
F
2 工作模式
a) 正常状态:
正常工作状态
b) 备份激活:
node1失效,node2激活状态
c) 主机就绪:
node1故障排除,恢复状态
d) 切换回正常模式:
需要手动停止备份服务器的服务,系统会自动切换回正常模式三.软硬件需求
两台双网卡主机完全安装 redhat6.2
主机IP 10.0.0.126 备份主机IP 10.0.0.250
实际服务即浮动IP 202.93.204.68
邮件系统:
金笛邮件系统Jindi-Mail2.0 ()
HA软件:
ftp:///pub/ha/piranha-docs-0.4.17-2.i386.rpm
ftp:///pub/ha/piranha-gui-0.4.17-2.i386.rpm
ftp:///pub/ha/piranha-0.4.17-2.i386.rpm
ftp:///pub/ha/ipvsadm-1.11-4.i386.rpm
plang.tuwien.ac.at/reisner/drbd/download/drbd-0.5 .8.1.tar.gz
安装软件:
rpm –Uvh ipvsadm* piranha*两台主机都要装
金笛邮件系统安装
DRBD 安装
Tar zvxf tar -zvxf drbd-0.5.8.1.tar.gz
cd drbd
make
make install
有如下相关文件
/usr/sbin/drbdsetup
/lib/modules/2.2.18pre11-va2.1/block/drbd.o
/etc/ha.d/resource.d
/etc/rc.d/init.d/drbd
/sbin/insmod drbd进行测试
应返回”Using /lib/modules/2.2.18pre11-va2.1/block/drbd.o” 四.设置
编辑/etc/lvs.cf文件
#Example of /etc/lvs.cf
#还需要smtpd popd这两个启动脚本
service = fos # 采用fos模式
primary = 10.0.0.126 # 主ip地址(qmail)
backup = 10.0.0.250 # 备份主机ip地址(Backup)
backup_active = 1 # 激活备份
heartbeat = 1 # 激活Heartbeat
heartbeat_port = 1050 # Heartbeat端口
keepalive = 2 # heartbeat间隔单位秒
deadtime = 10 # 判定死机间隔
rsh_command = ssh # 文件同步方案选ssh
#failovermail服务
failover pop {
active = 1 # 激活监听服务
address = 202.93.204.68 eth0:1 #
port = 110 #pop 端口
send = "n" #pop 连接特征串
expect = "+OK" #pop 反馈特征串
timeout = 10
start_cmd = "/etc/rc.d/init.d/popd start" #pop 启动命令
stop_cmd = "/etc/rc.d/init.d/popd stop" #pop关闭命令
}
failover smtp {
active = 1 #激活监听服务
address = 202.93.204.68 eth0:1 #
port = 25 #smtp端口
send = "n" #smtp 连接特征串
expect ="220" #smtp 反馈特征串
timeout = 10
start_cmd = "/etc/rc.d/init.d/smtpd start" # smtp启动命令
stop_cmd = "/etc/rc.d/init.d/smtpd stop" # smtp关闭命令
}
failover mirror {
active = 1
timeout = 10
start_cmd = "/etc/ha.d/resource.d/datadisk start" # DRBD启动命令
stop_cmd = "/etc/ha.d/resource.d/datadisk stop" # DRBD 关闭命令}
同步LVS文件
scp /etc/lvs.cf 10.0.0.112:/etc/lvs.cf
编辑/etc/fstab加入(两台都要加)
/dev/nb0 /var/qmail ext2 noauto 0 0 #FOS RAID
如下
/dev/sda1 /boot ext2 defaults 1 1
/dev/sda2 / ext2 defaults 1 1
/dev/nb0 /var/qmail ext2 noauto 0 0 #FOS RAID
/dev/sda4 swap swap defaults 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner 0 0
none /proc proc defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0
编辑/etc/drbd.conf
resource drbd0 {
protocol=B
fsck-cmd=fsck.ext2 -p -y
on thost1 {
device=/dev/nb0
disk=/dev/hda7
address=10.0.0.126
port=7789
}
on thost2 {
device=/dev/nb0
disk=/dev/hda7
address=10.0.0.250