rsync备份 [基于rsync的备份方案研究与实现]

  摘要:rsync是一个小巧、速度快、省带宽,可以按增量的方式同步目录和文件系统的工具。首先介绍rsync的思想与算法,然后详细讨论研究了基于rsync的备份方案和实施步骤,最后简要描述了该方案在我校部分应用服务器数据备份中的实现情况。
  关键词:数据备份;同步;rsync;NTP
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)05-0984-04
  Research and Implementation of File Backup Method Based on Rsync
  ZHAO Yun, CHEN A-lin
  (Information Technology Center, Chongqing Normal University, Chongqing 40047, China)
  Abstract: This Paper introduces rsync’s central theme and algorithm. Explores the backup solution based on rsync and it’s operational pro? cedure in details.Describes the implementation of the backup solution in my university.
  Key words: data backup; synchronize; rsync; NTP
  数据备份是信息管理员的重要职责之一,同时也是保证信息安全的一个非常重要的手段。服务器是应用中最主要的组成部分,数据以文件的形式存放在服务器中。对服务器的数据备份,最简单的方法是定期通过手动复制,将重要数据拷贝到其他地方保存,此方法在服务器少,备份的数据少的情况下比较适用。另外我们也可以搭建FTP备份服务器,通过运行事先写好的备份脚本,将需要同步的数据定时自动复制到FTP备份服务器指定目录。该方法可以减轻网络管理员的负担,但是其不能实现增量备份,在备份数据较大时,增加了网络带宽的占用,降低了其工作效率。我们还可以使用商业软件进行数据备份,该方式使用简单、工作效率高,也能实现增量备份,同时数据恢复简单,但是商业软件价格昂贵,少则上万,多则十几万,且大多按备份点数收费,对于重要级别相对较低的数据,使用该方法进行备份,性价比明显偏低。rsync是一个开源软件,它能够克服上面几种备份方式的缺点。本文就是在研究rsync的基础上,详细讨论了基于rsync的备份方案和实施步骤,最后简单描述了该方案在我校部分应用服务器数据备份中的实现情况。
   1 rsync
  1.1什么是rsync
  rsync[1]是remote synchronize的缩写,中文意思是远程同步。它是Unix系统下的一个开源的,以增量的方式快速、方便地使一个文件系统与另一个文件系统保持同步更新的数据备份工具。它有以下一些特点[2]:(1)能更新整个目录和树和文件系统;(2)能选择性地保持符号链链、硬链接、文件属于、权限、设备以及时间等;(3)对于安装来说,无任何特殊权限要求,且安装简单;(4)对于多个文件来说,内部流水线减少文件等待的延时,优化了流程,传输效率高;(5)能够灵活选择nfs、smb、ssh等协议进行数据传输,可以通过直接的socket连接;(6)支持匿名rsync同步文件,是理想的网站镜像工具。
  1.2 rsync备份服务器体系结构
  rsync是一个客户-服务器架构的备份工具。rsync服务器端和客户端都使用同一个程序[3]。需要同步的两台服务器都需要安装rsync软件,作为服务器端的rsync需要启动rsync守护(daemon)进程,等待客户端rsync连接。可以选择nfs、smb、ssh等协议进行连接,连接后可以按照推或者拉的方式进行文件系统的备份或者回滚。图1是rsync的备份服务器体系结构。
  
  图1 rsync备份服务器体系结构
  1.3 rsync的同步思想与算法
  rsync使用“rsync演算法”来使本地和远程两个主机之间的文件达到同步,其核心思想就是将文件分成固定大小的许多数据块块,通过扫描、对比,将有更新的数据块传送,覆盖原来的数据块,而不是将整份文件进行传送,提高了备份效率并降低了网络带宽的占用。其核心算法如表1所示。
  表1 rsync核心算法
  
   2基于rsync的备份方案
  不管是Unix,、Redhat Linux、FreeBSD还是Solaris或者Mac操作系统,其平台下都有对应的rsync工具,Windows系统也不例外,其对应的工具名叫CwRsync。而且最重要的是不同平台之间的rsync工具可以互相访问,即不同平台的数据都可以备份到统一的一台计算机上。
  2.1基于rsync的备份体系结构
  根据rsync的特点以及rsync备份服务器体系结构,并考虑到实际情况,设计了一个基于rsync的备份体系结构,如图2所示。
  
  图2基于rsync的备份体系结构
  并不是所有的服务器都与公网连通,为了保证备份数据时间的准确性和一致性,我们用统一授时服务器为各服务器授时,确保各服务器的时间准确。各应用服务器通过交换机与rsync主备份服务器相连,利用rsync工具实现数据的远程备份与恢复。rsync辅备份服务器又为rsync主备份服务器提供备份。考虑到统一的备份服务器的磁盘容量有限,这里可使用IPSAM或者光纤存储为rsync主/辅备份服务器提供足够的磁盘空间以保存尽可能多的应用服务器需要备份的数据。
  2.2基于rsync的备份实施步骤
  2.2.1步骤一前期准备工作
  1)搭建统一授时服务器
  Network Time Protocol(NTP)是用来使计算机时间同步的一种协议,它可以使用计算机对其服务器或时钟源做同步化,它可以提供高精准度的时间校正。Linux系统下,NTP Server就是根据NTP协议开发的一个统一授时服务器工具。详细的安装配置可参考文献[4]。统一授时服务器必须与公网相连,设计脚本根据权威标准时间定期更新自身的时间,时间间隔视需要而定。
  2)为rsync主/辅备份服务器挂载外部存储
  为rsync主/辅备份服务器挂载外部存储,以满足备份足够多的数据。可以选择IPSAM或者光纤存储。使用光纤存储,rsync主/辅备份服务器必须支持且安装HBA卡。每种不同外部存储设备的配置、挂载,具体操作可能有些区别,需参考不同设备厂家的操作手册实现。如果没有外部存储设备,可省略该步骤。
  2.2.2步骤二设计备份恢复策略
  1)计划备份数据
  制定一份需要备份的应用服务器清单,然后对应每一个应用服务器弄清楚需要备份的文件,并估计其大小,这有利于我们估计备份所需的时间。
  2)计划备份时间
  针对不同应用服务器以及不同的备份数据制定备份时间,并计划好备份的时间点数和备份的时间间隔。通常,应用服务器在白天的访问量大,用户操作频繁,此时不宜作备份。而在凌晨,应用服务器的访问量相对较低,系统和网络都处于空闲状态,因此选择在此时做备份是最佳的时机。
  3)制定数据恢复方案
  制定为数据恢复而进行的日常的一些维护工作,比如维护应用服务器数据目录,备份数据目录,以及它们之间的映射关系,维护rsync配置文件等。同时需要拟定应急数据恢复的操作步骤并文档化。
  2.2.3步骤三备份实施
  1)在rsync主备份服务器建立备份目录
  根据计划的备份数据,在rsync主备份服务器为每一个应用服务器建立对应的文件夹,文件夹的命名最好应用服务器命名,以便区分不同服务器的备份数据。如果统一各应用服务器要备份多种不同类型的数据,那最好在对应的文件夹下再建立相应的目录以便区分。这些备份的目录以及需要备份的数据目录以及他们之间的对应关系都需要存档保存,以便维护和恢复需要。
  2)在各个服务器上配置任务,定时自动与NTP服务器的时间进行校正同步,保证服务器的时间准确。
  3)安装rsync软件
  不同的平台下载对应的rsync工具进行安装。Unix、Linux平台下使用的rsync工具可在http://rsync.省略/ftp进行下载。下载后,定位到该下载的文件夹,先后执行configure、make、make install命令实现安装。Windows系统下载CwRsync进行安装。
  4)配置rsync
  前面提到rsync既是服务器端也是客户端程序。rsync的守护进程占用资源较少,建议让各应用服务器运行rsync守护进程,而让rsync主备份服务器作为客户端去连接各应用服务器按拉的方式进行数据备份。这有利于在rsync主备份服务器将备份命令设计成统一的脚本,并实现定时自动备份不同的应用服务器数据。下面是以RedHat Linux为例介绍服务器端和客户端rsync配置,其他平台类似。
  ①服务器端的配置
  首先进行认证配置,保证rsync连接的安全。在/etc目录下创建用户密码认证文件,文件名自己任意取,文件后缀名为.pas。为了安全,将该文件的权限设置为root用户读和写。而文件内容的格式――用户名:密码。这里的用户名和密码是随意取的,客户端rsync连接该服务器端时需要此用户名和密码进行验证。
  然后进行rsync的配置。如果在/etc目录下没有rsyncd.conf文件,则创建rsyncd.conf文件,并使其只能由root用户读和写,主要设置备份的目录、认证用户、认证文件等。具体配置内容如表2所示。
  表2 rsyncd.conf配置内容
  
  如果同一应用服务器有几种不同类型的数据需要备份,则在上面的配置文件内容下方增加需要备份的模块,然后按上面的模 板重新增加相应的配置内容。
  ②客户端配置
  在rsync主备份服务器的/etc目录下,为待备份的应用服务器建立密码文件,并更改其权限为root用户读和写,其内容的格式――密码。这里只有密码,与服务器端的认证文件中的密码相同。
  5)使用rsync�daemon命令启动守护进程。考虑到应用服务器可能重新启动,需要在/etc/rc.d/rc.local中添加该命令,使服务器启动时自动加载rsync守护进程。
  6)在rsync主备份服务器上运行命令执行备份
  这里建议的一种备份命令格式如下:
  rsync -zrtopg服务器端认证文件中的用户名@服务器端IP地址::备份模块名/ /存放备份数据的目录--password-file=/etc/rsync主备份服务器中的密码文件名
  rsync功能强大,其命令格式有6种,参数更有几十个之多,详细使用可参考文献[5]。为了达到自动定时备份的效果,这里可以将备份命令保存为shell脚本,并使用crontab系统调度任务来安排rsync的备份时间。还可以在rsync主备份服务器上写脚本,并使用crontab来自动备份多个时间点的数据。这需要根据rsync本身的自动备份时间间隔和实际需要而定。crontab的介绍和使用可在文献[6]中找到。
  7)按上述步骤将rsync主备份服务器中备份的应用服务器数据同步到rsync辅备份服务器中。同时需要同步rsync主备份服务器中的rsync配置和备份命令,以防rsync主备份服务器崩溃,起到冷备的作用。
   3基于rsync的备份实现情况
  目前,按照上述方案,根据需要,对我们学校的校园网服务器的首页文件和访问日志、虚拟机服务器上的学校二级网站文件和访问日志、垃圾邮件网关日志、Mrtg服务器的流量数据等进行了自动备份,每天凌晨做一次备份。运行了近半年的时间,从其运行日志来看,并未发现任何错误,也并没有影响其他应用服务器的正常工作。期间虚拟机服务器上的一个二级网站被挂马,我们通过备份数据恢复原网站文件,二级网站正常正确运行,其一天的数据差别也在可接受范围之内。
   4结束语
  rsync是一个小巧、速度快、省带宽,可以按增量的方式同步目录和文件系统的工具。本文尽可能详细地讨论研究了基于rsync的备份方案和实施步骤,以期为众多的信息管理员在备份数据过程中提供一种思路和参考。
  参考文献:
  [1] Tidgell A.Efficient Algorithms for Sorting and Synchronization[D].Canberra,Australia:Australian National University,1999.
  [2] Rsync[EB/OL].http://baike.省略/view/1183189.htm
  [3]董秀蕾.Linux系统中数据自动备份的实现方法[J].中国教育信息化:高教职教,2009(19).
  [4]汪华,李波,杨远恒.在网络中搭建基于NTP服务的时间同步系统[J].贵州气象,2010, 34(5).
  [5] Davison W.Rsync Man Page[EB/OL].(2011-09-23).http://rsync.省略/ftp/rsync/rsync.html.
  [6] Crontab[EB/OL].http://baike.省略/view/1229061.htm.

推荐访问:备份 方案 研究 rsync