Contents
高级马里兰自动化网络碟盘备份器(Advanced Maryland Automatic Network Disk Archiver)
传统地,备份都会被编排在周末进行完整的转储,然后在周间作渐进式的备份。这个策略有数个缺点:
- 周末的备份需时比周间的长很多。
- 周间采用的磁带用量很少,但由于周日的备份很大,你必须有巨大的磁带。这等于在周间浪费了磁带。
- 整全地撤消星期五的某个目录必须应用星期日、一、二、三、及四的磁带。
Amanda 改变这个模式。Amanda 的主要目标是平衡每晚的磁带用量。为了这个目的,它改动在哪些日子某些备份「项目」(稍后再讨论)会被完整转储,好让每晚所备份的数据量大致相等。意思就是:
- 每晚的备份时间大约相同。
- 磁带用量是均匀的,所以较细小的读带机亦适用,不必浪费磁带。
- 要整全地撤消星期五的目录也许只须一卷磁带,最坏是应用一个「转储周期」内的磁带(也是稍后讨论)。
在这份文章内,你会经常看见「磁带」被提及。请知道它不一定指磁带。Amanda 支持以硬盘备份(通过文件驱动程序),甚至乎采用 RAIT:当中可以是多卷磁带、多个硬盘、或者是两者的组合。
1. 重要词汇
无论探讨任何题目,最好是拥有其同的用词。下列是一些须要被理解的重要词汇。
- 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。这样你便会拥有两套整全的备份,及一卷应急用的额外磁带)
2. Amanda 是个排序程序
很多时有人会问:「Amanda 会否支持我的 ACME 2000 超级专业读带器?」。答案是:「你的操作系统是否支持它?」
这是由于 Amanda 并不会直接与读带器沟通。它依赖操作系统的 dd、tar 及各款的 dump 工具程序来做完成这项工作。Amanda 只是按照参数来计算需要备份的数据,并且作出适切的排序。事情是如何安排的?先前的词汇定义应该给了一点提示,但我们会在这部份更详尽地解释。
Amanda 排序备份主要环绕上述三个变量:dumpcycle、runspercycle 及 tapecycle。Amanda(尽它所能地)确保每个 DLE 在一个 dumpcycle 内至少获一次 Level 0 备份。这里说「至少」一次,因为 Amanda 可能会让某个项目「提早」获 Level 0 备份(记得 Amanda 的首要目标 —— 平衡磁带用量吗?)来平衡数据的尺寸。runspercycle 这个变量让 Amanda 知道它在一个 dumpcycle 内有多少个机会把一切安置好。tapcycle 是个保险来确保你不会盖过那些还不应被覆盖的数据。
3. 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 为例):
- 下载 amanda-2.4.4p3-1.src.rpm 这个文件。
安装源代码 RPM:rpm -i amanda-2.4.4p3-1.src.rpm。这样会把内容解缩到你的 rpm 目录(请参阅 Yum 与 RPM 关于如何设置你的编译系统)
- 编辑 SPECS/amanda.spec 这个文件来填入适当的服务器,与及其它你想做的改动。我们亦推荐你更改 Release: 这个标签(利用缩写或其它方串)来表示你曾作出修改。
- 重建组件:rpmbuild -ba SPECS/amanda.spec
- 享用你刚刚自定的 RPM
4. 连结
5. 最新发布
最新的稳定发布版本已收录在 http://www.zmanda.com/download-amanda.php。
Translation of revision 19