搭建网络数据备份系统

2016-11-26 06:42
网络安全和信息化 2016年8期
关键词:数据备份日志备份

引言:在信息化推进的过程中,各种业务系统和应用遍地开花,产生大量业务的数据。与此同时,虚拟化技术的应用推广,把各个业务系统的应用和数据分离到独立的服务器上,以方便管理升级维护,充分利用硬件资源。这必然导致网络中心的数据备份工作增加许多。那么,要如何应对越来越多的数据备份工作呢?本文将就这一问题深入探讨一番。

数据备份现状

在信息系统安全等级保护工作中,围绕计算机系统所采取的许多安全保护措施,都是为了保证系统数据在应用、存储、传输和处理等过程中的安全性,以实现数据的机密性、完整性、可控性和不可否认性,同时可以进行数据备份和恢复。本文主要关注其中的数据备份工作。

数据安全威胁

数据安全威胁主要来自以下几种形式:

1.数据存储设备故障。这是最普通的情况,随着数据存储设备性能的提高与改进,这种故障会进一步减少。

2.数据存储介质毁坏。这里包括机械性毁损和电磁性毁损,包括人为因素造成的损坏、意外事件造成的损坏和介质寿命因素造成的损坏等。通过使用冗余设备,这种故障能得到有效抑制。3.各种天灾造成的损坏。包括地震、海啸和山崩等地质灾害,以及风灾、水灾、雪灾、火灾、低温和高温等灾害造成的数据系统损坏。

4.衍生灾害。天灾人祸都可能引发衍生性灾害,可能造成电力系统,天、地通信系统等损坏,进而导致数据系统损坏。

5.人为无意因素造成对数据误操作引发的数据损失,甚至是数据灾难。

6.人为有意因素造成的数据损坏。例如黑客、病毒和恶意程序攻击等有意因素,都会对数据造成破坏。

为此,为了保障数据安全,我们必须根据数据的重要性和本单位的实际情况,采取相应的数据备份策略和备份技术来保障数据的安全可用。

数据备份策略

差异备份策略在避免了完全备份和增量备份两种策略缺陷的同时,又具有它们的所有优点。

数据备份技术

数据备份技术主要有双机热备、数据冷备份、数据异地备份等。

我们单位目前主要采取的数据备份策略是异地磁盘每周全份、每天增备,而数据备份方式主要有:

1.采购有授权备份节点数限制的备份软件对重要的几台服务器数据进行备份。

2.通过创建快照或者克隆对虚拟机进行备份。

3.通过FTP方式进行网络备份。

4.通过移动硬盘的方式进行离线备份。

现有的手工备份工作繁琐,查漏麻烦,购买商业软件的授权节点数又面临资金问题。随着需要备份的数据越来越多,是继续购买授权节点数还是继续手工备份呢?

我们在此过程中,一直在考虑其他性价比高的解决方案。比如,是否可以通过开源软件进行备份,并把它集成进我们最近构建的开源网络运维统一平台,实现与其他网络管理工作在同一个平台管理,避免在多个平台进行管理或是手工操作而导致的管理不便。

Rsync远程同步工具简介

Rsync是类UNIX系统下的数据镜像备份工具——Remote sync(远程同步)。它是一个远程数据同步工具,可通过LAN 或互联网快速同步多台主机间的文件。

Rsync本来是用以取代 rcp的一个工具,它当前由 rsync.samba.org 维护。Rsync 使用所谓的”Rsync演算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。

1.Rsync特性

(1)镜像:可以镜像保存整个目录树和文件系统,可以很容易做到保持原来文件的权限、时间、软硬链接等等。

(2)快速:第一次同步时,Rsync 会复制全部内容,但在下一次只传输修改过的文件。

(3)省带宽:Rsync在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。

(4)安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接,支持匿名传输,以方便进行网站镜象。

(5)特权:安装和执行Rsync 无需特别的权限。

2.Rsync同步算法

Rsync之所以同步文件的速度相当快,是因为“Rsync同步算法”能在很短的时间内计算出需要备份的数据,关于Rsync的同步算法描述如下:

假定A与B是在1号和2号两台计算机之间同步相似的文件,其中1号对文件A拥有访问权,2号对文件B拥有访问权。并且假定主机1号与2号之间的网络带宽很小。那么Rsync算法将通过下面的五个步骤来完成:

(1) 2号将文件B分割成一组不重叠的固定大小为S字节的数据块,最后一块可能会比S小;

(2) 2号对每一个分割好的数据块执行两种校验:一种是32位的滚动弱校验,另一种是128位的MD4强校验;

(3) 2号将这些校验结果发给1号;

(4) 1号通过搜索文件A的所有大小为S的数据块(偏移量可以任选,不一定非要是S的倍数),来寻找与文件B的某一块有着相同的弱校验码和强校验码的数据块。这项工作可以借助滚动校验的特性很快完成;

(5) 1号发给2号一串指令来生成文件A在2号上的备份。这里的每一条指令要么是对文件B经拥有某一个数据块而不需重传的证明,要么是一个数据块,这个数据块肯定是没有与文件B的任何一个数据块匹配上的。

必须同时在备份源服务器A和备份目标服务器B上都安装Rsync,其中服务器A上是以服务器模式运行Rsync,而服务器B上则以客户端方式运行Rsync。这样在服务器A上运行Rsync守护进程,在备份服务器B上定时运行客户程序来备份源服务器A上需要备份的内容。

统一网络数据备份系统建设方案

根据学校的数据备份的实际需求和开源工具的比较,我们选择比较成熟的Rsync软件,在实现数据同步的同时,把同步日志发送到以Cacti为基础搭建的统一网管平台的Syslog模块里进行统一管理,并结合统一网管平台的Threshold模块实现异常报警,构建统一网络数据备份系统,具体建设方案如下:在Linux下 用 Rsync+Syslog,再 用cwRsync+NTsyslog。

1.基本备份功能

基本备份功能通过免费软件Rsync实现,Linux和Windows操作系统均有相应的Rsync软件。

(1)安装Rsync软件

Centos下安装Rsync的命令为yum install rsync。

Window s下 安装 cw Rsync则 是下载经典免费版本cwRsyncServer-v4.1.0,按默认方式安装即可。

(2)配置服务器端

Centos下配置Rsync的命令为vim /etc/rsyncd.conf,Windows下的配置文件路径则为“C:Program Files (x86)ICW sync.conf”。

下面以Windows下的配置文件为例,Centos下类之:

##全局参数开始##

use chroot = false #如果“use chroot”指定为true,那么Rsync在传输文件前,首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护,但是缺点是需要root权限,并且不能备份指向外部的符号连接所指向的目录文件,默认情况下chroot的值为true。

strict modes = false #该选项指定是否监测密码文件的权限,如果该选项值为true,那么密码文件只能被rsync服务器运行身份的用户访问,其他任何用户不能访问该文件,默认值为true。

hostsallow =192.168.1.100 #指该选项指定哪些IP的客户允许连接该模块。客户模式定义可以是以下形式:单个IP地址,例如:192.167.0.1;整个网段,例如 :192.168.0.0/24,也可以是192.168.0.0 /255.255.255.0。

多个IP或网段需要用空格隔开,“*”则表示所有,默认是允许所有主机连接。

hosts deny = * #指定不允许连接Rsync服务器的机器,可以使用hosts allow的定义方式来进行定义。默认是没有hosts deny定义。

log file = rsyncd.log#指定Rsync的日志文件,而不把日志发送给syslog

#为了集中管理日志,上行需注释掉,以便log不存在本地而是发到syslog

pid file = rsyncd.pid#指定Rsync的pid文件

port = 873 # 指定服务运行端口,默认是873

uid = 0 #不指定用户id,不加这一行将无法使用任何账户

gid = 0 #不指定用户组id

max connections = 10#指定该模块的最大并发连接数量以保护服务器,超过限制的连接请求被告知随后再试。默认值是0,也就是没有限制。

##全局参数结束##

#以下为模块参数,我们可以通过根据自己的需要,来指定多个模块

read only = false #该选项设定是否允许客户上载文件,如果为true那么所有的上载请求都会失败,如果为false并且服务器目录读写权限允许那么上载是允许的,默认值为true。

transfer logging = yes#使Rsync服务器使用ftp格式的文件来记录下载和上载操作在自己单独的日志中

lock file = rsyncd.lock #指定支持max connections参数的锁文件

#auth users = servicescada #认证用户名

#secrets file = rsync.password #认证用户的用户名和密码存储位置

##模块test参数结束

2.定期执行功能

定期执行功能,通过操作系统的计划任务实现。

(1)Centos下 通 过crontab命令加入操作系统的计划任务

此计划任务为每天凌晨1:00以root用户和指定的/etc/rsyncd.password文件内保存的密码登录192.168.1.1,把 192.168.1.1的test模块里的文件夹同步到本地的/home/backup/192.168.1.1/目录,同步参数为azu(其中-a, --archive归 档模式,表示以递归方式传输文件,并保持所有文件属 性,等 于 -rlptgoD;-z,--compress对备份的文件在传输时进行压缩处理;-u, --update仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件,不覆盖更新的文件)。

我们亦可以通过写shell脚本来实现丰富功能,比如实现每7天全备、每天差备,调用系统的mailx软件在同步异常或恢复时发送邮件通知。

(2)Windows下通过系统控制面板里的计划任务来实现。

建立bat文件内容如下:

然后在控制面板的计划任务里面添加相应的任务即可。Windows下亦可以通过bat脚本调用vb script来实现以上Centos里用shell来实现的丰富功能。

3.服务监控功能

服务器在安装好Rsync软件后,可能在后续的系统更新或是安装其他软件时破坏了Rsync服务而导致无法同步。那么我们能不能像监控网页、数据库服务一样来对此服务进行实时监控呢?

我们可以选择Windows下的hostmonitor、whats up等服务监控软件进行监控,而笔者此处是选择了已经集成在网络运维统一平台里的Nagios模块对此服务进行实时监控,并在服务异常时调用Threshold发送邮件报警。

4.收集日志功能

我们在前面的Rsync配置文件rsync.conf中提到需要注释log file = rsyncd.log,以便Rsync软件把日志作为系统日志syslog处理。

在UNIX类操作系统上,syslog广泛应用于系统日志。syslog日志消息既可以记录在本地文件中,也可以通过网络发送到接收syslog的服务器。接收syslog的服务器可以对多个设备的syslog消息进行统一的存储,或者解析其中的内容做相应的处理。常见的应用场景是网络管理工具、安全管理系统、日志审计系统。

修改备份源服务器的/etc/syslog.conf文 件,在有关配置行的操作动作部分用一个“@”字符+日志服务器IP。如*.*@192.168.1.200

在Windows操作系统下没有自带syslog客户端软件,但可以通过安装NTSyslog软件来实现把系统日志转发到指定的日志服务器。

笔者的日志服务器为用Cacti搭建的网络运维统一平台里的服务器,通过其中的Syslog模块来查看相应的服务器、防火墙、交换机、IPS等日志,此处特别针对Rsync的日志做了二次开发,以方便在Syslog模块下查看。

5.实时同步功能

与传统的cp、tar备份方式相比,Rsync具有安全性高、备份迅速、支持增量备份等优点,通过Rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等。

随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出了更高的要求,Rsync在高端业务系统中也逐渐暴露出了很多不足。

首先,Rsync同步数据时,需要扫描所有文件后进行比对,进行差量传输。如果文件数量达到了百万甚至千万量级,扫描所有文件将是非常耗时的,而且正在发生变化的往往是其中很少的一部分,这是非常低效的方式。

其次,Rsync不能实时的去监测、同步数据,虽然它可以通过Linux守护进程的方式进行触发同步,但是两次触发动作一定会有时间差,这样就会导致服务端和客户端数据可能出现不一致,而无法在应用故障时完全的恢复数据。基于以上原因,Rsync+Inotify组合出现了!

Inotify是一种强大的、细粒度的、异步的文件系统事件监控机制,Linux内核从2.6.13起,加入了Inotify支持,通过Inotify可以监控文件系统中添加、删除,修改、移动等各种细微事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而Inotify-tools就是这样的一个第三方软件。

Rsync可以实现触发式的文件同步,但是通过crontab守护进程方式进行触发,同步数据和实际数据会有差异,而Inotify可以监控文件系统的各种变化,当文件有任何变动时,就触发Rsync同步,这样刚好解决了同步数据的实时性问题。

所以,如果业务系统对数据同步的实时性要求很高,要求实现正式服务器一旦出现故障,则备份服务器可以马上上线这样的类似容灾系统的功能的话,我们可以通过先克隆虚拟机到异地,再在正式服务器上安装Inotify(Windows下也支持管道符,可以通过Inotifywait再结合自己写脚本来实现)。

结束语

通过采用多个免费工具的整合,实现统一网络数据备份系统,把日志和服务监控集成进网络运维统一平台进行管理。下一步工作是把数据备份作业的配置和最近一次运行的状态通过图形化来查看管理,以提高日常工作效率。

猜你喜欢
数据备份日志备份
“备份”25年:邓清明圆梦
泉州高速公路收费系统远程数据备份研究
VSAT卫星通信备份技术研究
一名老党员的工作日志
海洋数据备份平台的设计和实现
程控交换机的数据备份与恢复技术分析
扶贫日志
创建vSphere 备份任务
No.4 IDC:2019年上半年数据备份与恢复市场同比增长10.0%
雅皮的心情日志