高级马里兰自动化网络碟盘备份器(Advanced Maryland Automatic Network Disk Archiver)

传统地,备份都会被编排在周末进行完整的转储,然后在周间作渐进式的备份。这个策略有数个缺点:

  1. 周末的备份需时比周间的长很多。
  2. 周间采用的磁带用量很少,但由于周日的备份很大,你必须有巨大的磁带。这等于在周间浪费了磁带。
  3. 整全地撤消星期五的某个目录必须应用星期日、一、二、三、及四的磁带。

Amanda 改变这个模式。Amanda 的主要目标是平衡每晚的磁带用量。为了这个目的,它改动在哪些日子某些备份「项目」(稍后再讨论)会被完整转储,好让每晚所备份的数据量大致相等。意思就是:

  1. 每晚的备份时间大约相同。
  2. 磁带用量是均匀的,所以较细小的读带机亦适用,不必浪费磁带。
  3. 要整全地撤消星期五的目录也许只须一卷磁带,最坏是应用一个「转储周期」内的磁带(也是稍后讨论)。

在这份文章内,你会经常看见「磁带」被提及。请知道它不一定指磁带。Amanda 支持以硬盘备份(通过文件驱动程序),甚至乎采用 RAIT:当中可以是多卷磁带、多个硬盘、或者是两者的组合。

重要词汇

无论探讨任何题目,最好是拥有其同的用词。下列是一些须要被理解的重要词汇。

Level 0

一组文件的完整转储或备份。意思就是每一个文件都被存储供日后取用。

Level 1

一组文件的首个渐进式备份。意思就是只有自上一次 Level 0 备份后被更改的文件才会被存储供日后取用。

Level n

自上一次 Level n-1 备份后进行的渐进式文件备份。 注:「Level」有时很难去理解,因此这里有个例子

碟盘列表项目 Disklist Entry(DLE)

Amanda 把要备份的项目放在一个 disklist 档内,因此每个项目成为一个「碟盘列表项目」。

转储周期 dumpcycle
每个 DLE 获 Level 0 备份的最长间隔。(多数是 1 星期)
每期执行量 runspercycle
Amanda 在每个转储周期内的执行次数。(假设转储周期是 1 星期,这多数是 7 来代表每个晚上,或 5 来代表每个周间晚上)
磁带周期 tapecycle
Amanda 要采用多少卷磁带后才把它们「遁环再用」。(这个最理想是 2*runspercycle+1。这样你便会拥有两套整全的备份,及一卷应急用的额外磁带)

Amanda 是个排序程序

很多时有人会问:「Amanda 会否支持我的 ACME 2000 超级专业读带器?」。答案是:「你的操作系统是否支持它?」

这是由于 Amanda 并不会直接与读带器沟通。它依赖操作系统的 ddtar 及各款的 dump 工具程序来做完成这项工作。Amanda 只是按照参数来计算需要备份的数据,并且作出适切的排序。事情是如何安排的?先前的词汇定义应该给了一点提示,但我们会在这部份更详尽地解释。

Amanda 排序备份主要环绕上述三个变量:dumpcyclerunspercycletapecycle。Amanda(尽它所能地)确保每个 DLE 在一个 dumpcycle至少获一次 Level 0 备份。这里说「至少」一次,因为 Amanda 可能会让某个项目「提早」获 Level 0 备份(记得 Amanda 的首要目标 —— 平衡磁带用量吗?)来平衡数据的尺寸。runspercycle 这个变量让 Amanda 知道它在一个 dumpcycle 内有多少个机会把一切安置好。tapcycle 是个保险来确保你不会盖过那些还不应被覆盖的数据。

CentOS 上的 Amanda

后久之前,有人决定 Amanda 的客户端不须进行任何设置。假如你有数百台机器,这是很好的,但缺点就是某些选项必须被编译进客户端的执行档内。这些包括你的读带机及目录服务器的地址/名称。对于包装 Amanda 执行档的人来说(即差不多所有 Linux 发行版本),这构成一个有趣的问题:你们在编译时不可能知道设置,因此必须作出假设。最严重的问题就是采用 localhost 作为服务器的名称。(要知道为何这是个问题,请参阅十大名单)。因此我们推荐你针对自己的环境重建 Amanda 的 RPM。

/!\ 新发行的 Amanda(2.5.1 或以上)打破了这个传统,让客户端可以采用一个配置文件。有关这个文件的详情请参阅 http://wiki.zmanda.com/index.php/Amanda-client.conf

对于 CentOS 3 及 4 来说,更改缺省值涉及编辑 .spec 档。由 CentOS 5 开绐,上游以经修改了 .spec 来舒缓这个问题。详细来说,%defconfig、%tapeserver 及 %indexserver 这些变量现在可以通过 define 来设置(例如:rpmbuild --rebuild --define "defconfig Dailies" --define "tapeserver fqdn.com" amanda-2.5.0p2-4.i386.rpm

如果你不希望在你的 CentOS 3 或 4 系统上重建 2.4.5 或更新版本的 Amanda,你可以这样为你的环境重建现有的组件(以 CentOS 4 为例):

  1. 下载 amanda-2.4.4p3-1.src.rpm 这个文件。
  2. 安装源代码 RPM:rpm -i amanda-2.4.4p3-1.src.rpm。这样会把内容解缩到你的 rpm 目录(请参阅 Yum 与 RPM 关于如何设置你的编译系统)

  3. 编辑 SPECS/amanda.spec 这个文件来填入适当的服务器,与及其它你想做的改动。我们亦推荐你更改 Release: 这个标签(利用缩写或其它方串)来表示你曾作出修改。
  4. 重建组件:rpmbuild -ba SPECS/amanda.spec
  5. 享用你刚刚自定的 RPM

连结

最新发布

最新的稳定发布版本已收录在 http://www.zmanda.com/download-amanda.php

Translation of revision 19

zh/HowTos/AmandaBackups (last edited 2010-09-29 05:19:44 by TimothyLee)