APP下载

Linux系统下web服务双机热备系统设计与实现

2014-04-07顾跃举

黑龙江教育·理论与实践 2014年6期
关键词:备份文件热备双机

顾跃举

(武警辽宁省总队,辽宁沈阳110034)

Linux系统下web服务双机热备系统设计与实现

顾跃举

(武警辽宁省总队,辽宁沈阳110034)

充分利用linux系统所独有的功能强大的网络命令工具,编写基于tomcat+db2的网站更新文件和数据库文件自动导出与导入脚本程序,配合系统定时器模拟心跳,实现基础的双机热备功能。防止因硬件故障造成网站系统永久性的瘫痪,解决小企业无力购买价格昂贵的双机热备软件的难题。

linux;双机热备;脚本程序

双机热备一般指两台高可用服务器的热备份,简称双机热备,双机高可用按工作中的切换方式分为:主-备方式(Active-Standby方式)和双主机方式(Active-Active方式),主-备方式即指的是一台服务器处于某种业务的激活状态(即Active状态),另一台服务器处于该业务的备用状态(即Standby状态)。而双主机方式即指两种不同业务分别在两台服务器上互为主备状态(即Active-Standby和Standby-Active状态)。微软将此功能加入到了windows2000server之后所有的服务器版本之中,命名为网络负载均衡群集服务(nlb)。群集从切换方式来看为双主机模式。即两台主机同时均可以接受访问,根据访问强度自动分配负载,且互为备份。其最大支持8个负载均衡节点。有效解决了高可用系统热备需求。但也有其局限性,即服务器所连接的交换机必须配置使能组播功能,即使多个mac地址(也就是多块网卡)共享一个ip地址映射,而一些低端交换机却无法提供此服务,这就对软件应用造成了瓶颈。而linux系统据了解目前尚未出现系统自带的简单易用的双机热备软件,仍需第三方软件来支持,如较为知名的rose软件,不仅配置较为复杂,且系统硬件升级仍须交付软件重新授权使用费用,这是一般小公司所不希望开销的费用。本文以linux系统所自带的网络与系统命令工具为基础,编写了简单易用的双机热备脚本程序,以解决上述难题。

一、双机热备系统需求分析

我单位门户网站由java语言开发,现部署在tomcat应用服务环境下,后台数据库部署在db2数据库管理系统中。由于此门户网站既提供web服务,又提供本单位的oa自动化办公服务,其重要性、安全性与稳定性要求非常高。为防止因停电、服务器硬盘老化坏损或其他无法预见因素带来无法恢复的灾难性的影响,本文尝试以两台服务器为基础,通过编写双机热备脚本代码程序,实现双机热备功能,工作方式为主-备方式。

二、双机热备系统设计

由于门户网站服务器主要提供web与数据库服务,其他服务暂不予考虑。所以只要实现双机上的web文件与数据库自动同步与高可用即可。以此为目的,设计基本思路为在主服务器上编写数据库导出脚本程序、网站新增文件备份脚本程序。依托linux系统的计划任务crontab工具,实现每日增量文件自动备份至ftp服务主目录下的某特定文件夹,并设定网络用户的完全访问权限,以供备份服务器访问;在从服务器上编写数据库导入脚本程序、网站新增文件拷贝脚本程序。以计划任务工具来模拟心跳,具体自动备份更新的频率可以设为每周、每日或每时。从服务器以主服务器所提供的网络访问用户登录ftp目录,通过与本地文件的创建时间比对,增量拷贝所需更新文件,导入db2数据库文件,重新启动tomcat与db2应用服务程序,完成数据的更新过程。

(一)主服务器程序编写

首先在主服务器上创建远程ftp访问用户,设定远程访问主目录,创建系统备份文件夹,而后编写web文件与数据库文件自动备份脚本程序代码,配置计划任务,完成系统的数据备份工作。具体实现过程如下:

[root@localhost]service vsftpd start#开启linux的ftp服务

[root@localhost]useradd–d/home/backupuser–m backupuser#创建远程访问用户并配置用户登录目录

[root@localhost]passwdbackupuser#设置用户登录密码

[root@localhost]cd/home/backupuser

[root@localhost]mkdir backup#创建系统备份文件夹

[root@localhost]cd backup

[root@localhost]mkdirdatabak#创建数据库备份文件夹

[root@localhost]cd..

[root@localhost]mkdirnewsbak#创建新闻备份文件夹

[root@localhost]cd/usr/local

[root@localhost]vibackup.sh#编写备份脚本程序#!/bin/sh

Date=’date+%y%m%d’#设定以日期命名的文件名变量

find/usr/local/tomcat/webapps/ROOT/news-name" ${Date}*"-exec cp{}/home/backupuser/backup/newsbak #查找文件名并拷贝至备份文件夹中

su-db2inst1#切换至数据库管理员用户

cd/home/backupuser/backup/databak#进入数据库备份文件夹

db2move OA export#导出数据库数据到此文件夹

[root@localhost]crontab-e 012***/usr/local/backup.sh–r#每日12点整执行备份程序至此,主服务器备份过程配置完成。

(二)从服务器程序编写

基本过程与主服务器配置雷同,首先要建立文件拷贝的目录,通过wget网络命令比对文件创建时间完成文件增量更新,导入数据库,最后重启系统服务完成系统更新操作。具体实现过程如下:

[root@localhost]vi/usr/local/restore.sh#编写系统更新脚本程序

cd/usr/local/tomcat/webapps/ROOT/news

wget–nc–nH–r–np–c ftp://backupuser:backupuser@192.168.1.2/backup/*#拷贝比本目录下更新的文件

su db2inst1

cddatabak

db2move OA import#完成数据库导入

db2stop force

db2start#数据库重启

exit

./usr/local/tomcat/bin/shutdown.sh

./usr/local/tomcat/bin/startup.sh#重启tomcat网页服务[root@localhost]crontab-e

1012***/usr/local/restore.sh–r#每日12点10分执行更新程序

至此,从服务器更新过程配置完成。

三、系统延伸设计

主服务器每日12点开始自动将增量数据备份至备份文件夹,从服务器每日12点10分开始自动将增量数据更新至从服务器。实现双机热备的主从工作模式。那么如何能够让系统自动检测故障出现时间,让从服务器及时替换主服务器进行工作呢?同样,我们可以利用计划任务模拟心跳,进行对主服务器的ping操作。如果不能连通,则修改本机ip地址为主服务器ip地址,重启网络服务,实现无人值守的自动灾难恢复。具体实现过程如下:

[root@localhost]vi/usr/local/ping.sh#创建与主服务器的连通性测试脚本程序if[“$?”–ne“0”];#如果输出结果不等于0则视为不通

then ifconfig eth0 192.168.1.1#修改本机网卡ip地址为主服务器地址

service netword restart#重起网络服务

fi

同样,再利用计划任务设置每10分钟进行一次连通性测试,以保证web服务的不间断运行。

[root@localhost]crontab-e 10****/usr/local/ping. sh–r#每10分中执行连通性测试程序或者,也可以将系统的更新程序添加到连通性测试程序后面,以保证替换的系统能够保持最新的系统数据。

如果单位资金条件允许,也可以购买网络存储设备,就可以将网站与数据库资源单独存储在网络存储的磁盘空间中,这时如果当主服务器出现中断,可以随时将网站与数据库资源原原本本的移植到从服务器中,将数据损失风险归零,且能够保障网络服务的不间断运行。

[1]刘晓洁,黄永佳.基于Linux的双机热备系统的实现技术[J].计算机应用研究,2007,24(4).

[2]张立航,陈大勇.基于Linux的双机热备系统设计[J].计算机安全,2011,(10).

[3]张永立,胡杰,张根宝.Linux集群心跳检测方法的研究与实现[J].化工自动化及仪表,2010,37(6).

编辑∕高伟

顾跃举(1982-),男,辽宁辽阳人,现为武警辽宁省总队助理工程师,主要研究方向:为计算机系统应用与维护。

猜你喜欢

备份文件热备双机
热备动车组配置方案优化模型
东海区实时海洋观测数据库双机热备系统解决方案
继电保护装置意外掉电的保护措施研究
双机、双桨轴系下水前的安装工艺
双机牵引ZDJ9道岔不同步问题的处理
Loader轴在双机桁架机械手上的应用
热备冗余技术在焦化设备上的应用
巧用WinRAR轻松分类备份文件