[转]amanda 简介

标签: | 发表时间:2013-06-19 11:11 | 作者:zeo112140
出处:http://blog.csdn.net/zeo112140

    安装mysql数据库是会发现三个用户 mysql 、postmyql 、amanda,其中amanda是什么呢?


  Amanda 是最早出现的开源备份 软件。它的名字来自Maryland大学。Amanda的意思是高级Maryland 硬盘归档器.。   Amanda通过 操作系统上 一些自带的备份工具,例如tar(Unix/linux)、zip(Windows)来实现备份的计划,自动化和跟踪等功能。采用Amanda可以恢复原 来备份过的任何版本的数据。 这种依靠原始备份工具的方式有利有弊。Amanda生成的数据格式在每个操作系统上都可以使用,这是它最大的优势。不过这些 备份工具也有很多的限制(例如 路径长度等),这是Amanda最大的劣势。   Amanda是一款功能强大的产品,它有很多企业级别的功能,例如,可以全自动识别何时进行全 备份而无需用户设定。而且Amanda是唯一一款具有SQL Server、Exchange、 SharePoint、Oracle全部代理的软件,也是唯一一款具有MySQL和Ingress代理的备份软件。   现在Amanda是Zmanda公司的产品,它全面负责Amanda软件的开发工作。在接管之 后的很短的时间内,Zmanda就解决了Amanda许多存在多年的问题。从那时起,这家公司开始负责Amanda的功能性包括数据库代理方面的开发。 (这样并不会影响那些原来使用NetWorker产品的用户)。   用户可以选择使用免费版Amanda,帮助主要是来自Amanda论坛的其他用户。当然也可以选择购买Zmanda的商业支持。

Amanda简介


Amanda (Advanced Maryland Automatic Network Disk Archiver,马里兰高级自动网络磁盘存档工具) 是由马里兰大学的James da Silva在1991年所开发的。它是一个复杂的网络备份系统,能够把LAN中的所有计算机备份到一台服务器的磁带驱动器、磁盘或光盘上。
Amanda本身并不是备份程序,它其实只是管理其他备份软件的封装软件。它使用系统上的dump和restore命令作为底层的备份软件,同时也能够使用tar命令,针对于windows计算机,Amanda还能够使用smbtar命令来实现备份。
Amanda支持类型广泛的磁带驱动器,并且能够使用磁带驱动器中的硬件压缩功能,或者也可以在数据通过网络之前使用客户机的compress以及gzip命令来压缩备份。其次,Amanda能够使用临时保存磁盘作为备份存档的中间存储媒介,以优化磁带的写入性能并保证在磁带出错时也能备份数据。
Amanda是当前最流行的免费备份解决方案,目前Amanda最新的稳定版本是2.5.2p2。通过 http://www.amanda.org站点可以免费获得。
Amanda工作方式
Amanda 综合使用完全备份和增量备份来保存所负责的全部数据,使用最小的、有可能是每日的备份集。一台 Amanda 服务器可以备份任意数量执行 Amanda 的客户机或是将连上 Amanda 服务器的计算机上的数据备份到一台磁带机上。一个常见的问题是,数据写入磁带机的时间将超过取行数据的时间,而 Amanda 解决了这个问题。它使用一个 “holding disk” 来同时备份几个文件系统。 Amanda 建立 “archive sets” 的一组磁带,用来备份在 Amanda 的配置文件中所列出的完整的文件系统。
Amanda 的整体策略是:在每次周期中完成一次数据的完全备份,并且确保在两次完全转储之间备份所有更改的数据。传统的做法是先执行完全备份,然后在此期间执行增量备份。而Amanda 的工作方式不同的是,每次运行Amanda 都对部分数据进行完全备份,确切地说,就是在一个完整的备份周期内备份全部数据所需备份的其中一部分。例如,如果周期为 7 天,且一个周期内进行7次备份,则每天必须备份 1/7 的数据,以便在 7 天之内完成一次完全备份。除了这个“部分”完全备份外,Amanda 还对自最近一次完全备份后更改的数据进行增量备份。Amanda这种特有的备份策略,可以减少每次备份的数据量。
Amanda安装与配置
3.1 安装Amanda
在安装GTES11时,如果使用典型或者完全安装,默认会安装amanda以及相关的软件包,进入系统后,可以在系统终端系统里使用如下命令来查看:
# rpm -qa|grep amanda
amanda-server-2.5.0p2-4
amanda-devel-2.5.0p2-4
amanda-2.5.0p2-4
amanda-client-2.5.0p2-4
如果没有安装amanda以及相关的软件包,那么可以将GTES11的第二张和第三张光盘/GTES目录下的amanda-2.5.0p2-4.i386.rpm、amanda-server-2.5.0p2-4.i386.rpm、amanda-client-2.5.0p2-4.i386.rpm、amanda-devel-2.5.0p2-4.i386.rpm文件拷贝到指定的目录下,使用“rpm -ivh amanda*”来安装。
3.2 配置Amanda
Amanda系统包含如下组件:
1、客户端程序,是amandad 其中最重要的。此后台程序在备份运行时和 Amanda 服务器进行通信。在/usr/lib/amanda目录下,还有其它的一些客户端程序: 
amandad 处理客户机和中央服务器之间的所有通信;运行所有其它的客户端程序;
selfcheck 验证本地Amanda 配置;
sendsize 估计备份大小; 
sendbackup 执行备份操作;
这些程序是 Amanda 客户端系统的一部分。但是并不能通过手工去执行他们,是由客户端包的其他辅助程序来调用这些程序。
2、执行各阶段实际备份操作的服务器程序。amdump 程序启动 Amanda ,并且常常使用 cron 定期运行。它控制一些其他程序,包括: 
planner 决定备份哪些内容;
driver 设备接口;
dumper 与客户端 amandad 进程进行通信;
taper 把数据写入媒介;
amreport 准备 Amanda 运行的报告;
3、执行相关任务的管理工具,包括:
amcheck 验证 Amanda 配置的有效性以及此工具是否准备运行;
amlabel 在磁带上写入Amanda卷标,用于避免覆盖错磁带;
amcleanup 在中断或系统崩溃后进行清理;
amflush 强制把临时保存区的数据写入备份媒介;
amadmin 查出要恢复的正确磁带,并执行各种其它管理任务;
4、指定 Amanda 操作的配置文件。比如备份内容、频率、位置以及磁带设备特征等。这些文件为 amanda.conf 和 disklist,在/etc/amanda下每个子目录对应于一个 Amanda “配置”,默认为“DailySet1”,它是一套独特的设置和选项,由目录名来引用。
5、amrestore工具可用来恢复 Amanda 备份中的数据。此外,amrecover工具支持交互式的文件恢复。它依赖于后台amindexd和amidxtaped程序进行工作。
一、客户端配置
1、启动客户端服务
在客户端编辑/etc/xinetd.d/amanda文件,将其中的“disable=yes”改为“disable=no”,如下:
service amanda
{
socket_type = dgram
protocol = udp
wait = yes
user = amanda
group = disk
server = /usr/lib/amanda/amandad
disable = no
}
保存退出,重启xinetd服务。
# service xinetd restart
停止 xinetd: [确定]
启动 xinetd: [确定]
2、授予备份此客户端的Amanda服务器和用户
编辑amanda用户主目录(/var/lib/amanda)下的“.amandahosts”文件,将服务器的主机名以及用于备份的用户名(默认为amanda),该文件的格式和“.rhost”类似,例如,Amanda服务器的主机名为turbolinux,用户是amanda,则在.amandahosts文件插入如下:
turbolinux amanda
turbolinux root
同时,也需要把服务器和root用户的对应关系加在里面,否则在恢复数据的时候将不能访问服务器。在这里设置完Amanda服务器的主机名后,同时也要在/etc/hosts文件里面指定Amanda服务器IP和主机名的对应关系,否则Amanda客户端将不能访问服务端。
二、服务端配置
1、amanda.conf
Amanda配置文档默认路径在/etc/amanda/DailySet1,在前面提到过,Amanda一个目录对应一个配置,Amanda的所有备份策略和执行命令,均通过“DailySet1”这个目录下的几个配置文档来定义。
在amanda.conf里面通常需要设置的有如下部分:
org "turbolinux"
设置使用amanda的单位或者机构的名称
mailto "
[email protected]
"
指定将报告发送的邮件地址
dumpuser amanda
指定使用Amanda备份的用户,默认为amanda用户
dumpcycle 7days
设置备份周期的长度,单位也可以是weeks,在这里设置7days和1weeks的效果是一样的。
runspercycle 7
设置每个备份周期内amanda运行的次数
tapecycle 1 tapes
设定完成一个完整的备份周期最少所需要磁带,这个需要根据备份数据量的大小来设定
ctimeout 30
设置检测客户端超时时间,单位为秒
runtapes 1
amdump每次运行使用磁带最大数
tapedev "/dev/nst0"
指定使用磁带机的设备名称,“/dev/nst0”表示不倒带设备。
tpchanger " chg-manual"
更换下一个磁带的脚本。在disk-to-tape方式中它与tapedev只能使用其中一个,建议将该项注释掉。
tapetype HP-DAT
指定磁带类型,下面将讲到如何去定义磁带类型。
labelstr "^DailySet1-[0-9][0-9]*$" 
设定磁带卷标格式,使用正则表达式去匹配卷标名称,磁带在使用之前,必须使用 amlabel 指定卷标,下面将会讲到amlabel的用法。
logdir "/var/log/amanda" 
指定日志文件存放的目录,默认存放在amanda配置目录下
indexdir "/var/adm/index"
指定存放备份集索引数据目录,默认为amanda配置目录下的index目录
在配置文件中包含了许多预定义的磁带类型,所以一般都不需要自己手工去定义磁带类型,关于定义磁带类型的格式以及参数见如下:
define tapetype HP-DAT {
   comment "DAT tape drives" 对于磁带类型的描述
   length 1930 mbytes 磁带的容量
   filemark 111 kbytes 文件标志大小
   speed 468 kbytes 磁带驱动器速度
   }
上面的内容表示对HP-DAT这台磁带类型的定义,磁带类型的参数尤其重要,所以不要乱修改里面的参数。
holdingdisk hd1 { 
   directory "/dumps/amanda" 临时磁盘存放的路径
   use 5 Gb 临时磁盘总共可以使用的大小
   }
上面是对临时存储磁盘的定义,同时可以定义多个临时磁盘,在分配临时磁盘的大小有两种设定方法,一种是指定临时磁盘可以使用的大小,当值为0是则使用所有剩余空间;另一种是在临时磁盘这个文件系统上始终保留一定的空间,其余的则全部分配给临时磁盘使用。
在amanda.conf文件,最后需要配置的就是定义转储类型,转储类型里面主要定义备份时使用的程序,压缩的类型等。如下:
define dumptype root-tar {
   global 调用前面定义的global类型
   program "GNUTAR" 使用GNU tar作为备份程序,默认是DUMP 
   comment "root partitions dumped with tar" 描述该类型的信息
   compress none 不采用压缩
   exclude list "/etc/amanda/exclude.gtar" 排除备份文件的列表
   }
在每个转储类型的定义中,都可以调用前面定义好的类型。如果需要对备份的数据进行压缩,有两种方式可以实现,一种是在客户端压缩,那么可在compress项设置为“compress client fast”或“compress client best”,另一种是在服务器进行压缩,则设置为“compress server fast”或“compress server best”。
2、disklist
接下来需要修改的是disklist文件,该文件存放在配置目录下,disklist用于指定实际要备份的数据,里面的格式是:
client partition/mountpoint dumptype
client :需要备份的客户度计算机,可以是IP或者主机名;
partition/mountpoint: 指定要备份的内容,可以是设备名或挂载点。
dumptype:指定备份数据时使用的转储类型,这是在amanda.conf文件里面所定义的。
例如:现在需要备份IP为192.168.1.100的客户端下面的/data目录,并使用“root-tar”的转储类型,那么只需要在disklist文件里插入如下即可。
192.168.1.100 /data root-tar
3、创建tapelist和磁带标签
tapelist文件用来记录当前可用的磁带列表,默认该文件不存在,创建该文件以及修改文件的权限的方法如下:
# > /etc/amanda/DailySet1/tapelist
   # chown amanda.disk /etc/amanda/DailySet1/tapelist
注:凡是手工创建或指定给amanda的文件以及目录,包括前面所指定的临时磁盘存放的目录以及日志存放的目录等,其所属用户和组必须是amanda和disk,否则Amanda在备份的时候没有操作权限。
切换至amanda用户,执行amlabel命令设置卷标
# su – amanda
   $ /usr/sbin/amlabel DailySet1 DailySet1-01
所设置的卷标一定要符合“labelstr”所指定的正则表达式,否则会报错。设置好可用卷标的磁带,会自动添加到tapelist列表里。
三、配置实例
Amanda目前也可以基于磁盘来做备份,即disk-to-disk方式,也是一个相对比较复杂的方式,下面是一个基于磁盘备份以及恢复的详细过程。
1、客户端配置
在.amandahosts文件中指定备份服务器与用户以及在/etc/hosts文件设置IP与主机名的对应关系,同时在xinetd中启动amanda服务,具体操作见前面的说明。
# vi /var/lib/amanda/.amandahosts
   holmes86 amanda
   holmes86 root
   # vi /etc/hosts
   192.168.1.99 holmes86
此后的配置步骤都是在服务端进行。
2、创建虚拟磁带的文件系统
所谓基于磁盘的备份方式,就是在服务器上使用磁盘来作为一个虚拟的磁带机。所以需要准备一块容量较大的分区或磁盘,创建好文件系统后挂载在指定的目录下。
# mount /dev/hda6 /amanda
3、定义虚拟磁带类型
编辑amanda.conf文件,定义一个新的磁带类型,而磁带的大小可以根据自己的需要来设置。一块磁盘可以平均划分多个磁带,考虑到磁盘的性能,建议在使用中始终保留10%的空间。比如一块100G的磁盘,就按90G空间去划分磁带,如果在90G的空间里创建3个虚拟磁带,那每个磁带能够使用的大小就是30G。下面定义了每个虚拟磁带的大小为200M:
define tapetype HARD-DISK {
   comment "disk-to-disk"
   length 200 mbytes
   }
4、修改amanda.conf文件
在amanda.conf配置文件中,其它需要修改的参数是:
dumpcycle 2 days
   runspercycle 2
   tapecycle 2
   tapetype HARD-DISK
   labelstr "^DailySet1-[0-9][0-9]*$"
   tpchanger "chg-disk"
   changerfile "/etc/amanda/DailySet1/changer"
   tapedev "file:/amanda/DailySet1"
   define dumptype root-tar {
   global
   program "GNUTAR"
   comment "root partitions dumped with tar"
   compress none
   index yes
   priority low
   }
其中tapedev中指定的“/amanda/DailySet1”,“DailySet1”是配置文件名,该目录名必须与配置文件名一致。同时一定要在定义转储类型的部分加上“index yes“,否则在恢复的时候将不能找到可恢复的索引信息。
5、创建虚拟磁带
虚拟磁带的目录结构如下:
slot_root_dir -|
   |- info
   |- data -> slot1/
   |- slot1/
   |- slot2/
   |- ...
   |- slotn/
slot_root_dir是tapedev所指定的路径,而slotn中的n的值应和tapecycle的值一致。如下:
  # mkdir /amanda/DailySet1
  # cd /amanda/DailySet1/
  # mkdir slot1 slot2
  # touch info
  # ln -s slot1 data
  # chown -R amanda.disk /amanda
6、修改disklist文件
编辑disklist文件,增加需要备份的项,如下:
192.168.1.100 /data comp-root-tar
7、创建disklist文件
# > /etc/amanda/DailySet1/tapelist
# chown amanda.disk /etc/amanda/DailySet1/tapelist
8、制作虚拟磁盘卷标
与使用磁带机一样,使用前也需要为虚拟磁盘创建卷标,如下:
# su - amanda
$ /usr/sbin/amlabel DailySet1 DailySet1-01 slot 1
$ /usr/sbin/amlabel DailySet1 DailySet1-02 slot 2
9、检查配置
Amanda自带了一个检测配置文件的工具,用于检测整个Amanda服务端与客户端的配置情况。如下:
$ /usr/sbin/amcheck DailySet1
Amanda Tape Server Host Check
-----------------------------
Holding disk /amanda: 419077 KB disk space available, using 316677 KB
slot 1: read label `DailySet1-01', date `X'
NOTE: skipping tape-writable test
Tape DailySet1-01 label ok
Server check took 0.151 seconds
Amanda Backup Client Hosts Check
--------------------------------
Client check: 1 host checked in 0.100 seconds, 0 problems found
(brought to you by Amanda 2.5.0p2)
10、备份
在前面的Amanda组件中提到过,备份数据使用的程序是amdump,通常情况下放在cron里去自动执行,amdump在备份时不会提示任何的信息,可以通过查看日志文件来检查备份是否成功。
$ /usr/sbin/amdump DailySet1
11、恢复
Amanda提供了交互式的amrecover工具来从Amanda的备份中恢复文件,它需要备份集设置了索引,也就是使用了“index yes”的设置,同时在服务端需要启动amandaidx与amidxtape进程,这两个进程也是由xinetd来管理的。在客户端恢复数据的时候必须使用root用户来运行。恢复前首先要切换到需要恢复的当前目录下,Amrecover工具的使用方法如下:
# amrecover DarilySet1 -s serverhost -t serverhost
上面命令中的-s 参数表示指定存放备份集索引的服务器,-t则用于指定磁带机所在的服务器。连接成功后将会停在一个交互式的对话框下,下面是一个详细的恢复过程。
#cd /data
# amrecover DailySet1 -s holmes86 -t holmes86
AMRECOVER Version 2.5.0p2. Contacting server on holmes86 ...
220 holmes86 AMANDA index server (2.5.0p2) ready.
200 Access OK
Setting restore date to today (2007-08-05)
200 Working date set to 2007-08-05.
Scanning /amanda...
DailySet1: skipping cruft directory, perhaps you should delete it.
200 Config set to DailySet1.
200 Dump host set to holmes86.
Trying disk /data ...
$CWD '/data' is on disk '/data' mounted at '/data'.
200 Disk set to /data.
/data
amrecover> ls 浏览备份的数据
2007-08-05 sbin/
2007-08-05 lost+found/
2007-08-05 boot/
2007-08-05 bin/
2007-08-05 .
amrecover> add bin 增加一个恢复的列表
Added dir /bin at date 2007-08-05
amrecover> extract 执行恢复
Extracting files using tape drive null: on host holmes86.
The following tapes are needed: DailySet1-02
Restoring files into directory /data
Continue [?/Y/n]? y
Extracting files using tape drive null: on host holmes86.
Load tape DailySet1-02 now
Continue [?/Y/n/s/t]? y
./bin/
./bin/alsacard
............
./bin/zsh
amrecover> quit
200 Good bye.
问题总结
在正常进行第一次备份后,再进行第二次备份时,提示要插入新的磁带,而实际上磁带并没有使用完,amcheck时发现有如下信息:
cannot overwrite active tape DailySet1-01
造成这个问题的原因是,
dumpcycle(天为单位)的值小于tapecycle的值,一般来说dumpcycle的值至少比tepacycle大,修改这两者的值就可以了。

作者:zeo112140 发表于2013-6-19 11:11:45 原文链接
阅读:6 评论:0 查看评论

相关 [amanda 简介] 推荐:

[转]amanda 简介

- - 小鸥的博客
    安装mysql数据库是会发现三个用户 mysql 、postmyql 、amanda,其中amanda是什么呢.   Amanda 是最早出现的开源备份 软件. 它的名字来自Maryland大学. Amanda的意思是高级Maryland 硬盘归档器..   Amanda通过 操作系统上 一些自带的备份工具,例如tar(Unix/linux)、zip(Windows)来实现备份的计划,自动化和跟踪等功能.

Amanda Marsalis摄影作品

- 林十四 - PADMAG视觉杂志
Amanda Marsalis,美国女摄影师,出生于旧金山,其作品大多光线强烈,色调温暖,官方网站:http://www.amandamarsalis.com.

Flask-Babel 简介

- yinseny - python.cn(jobs, news)
本文有一个格式好看一点,并且有语法高亮的版本放在 readthedocs,欢迎浏览. 本文是原创,不是翻译,不过本文其实是谈翻译的. 话说用 wordpress 的 WYSIWYG 编辑器写这样的文章真痛苦啊,格式一不小心就乱了,本文是用 rst 写成,编译为 html,然后贴到这边来的. 最近用 Flask 给公司做了个小 web 应用,做的时候用英文了,现在要求翻译成中文.

AsciiDoc简介

- dayu - 桃源
AsciiDoc 是一种简单的基于纯文本的文档生成工具, 与它类似的还有 reStructuredText, Markdown. 说是生成文档, 其实它可以将纯文本文件转换成各种类型, 比如:. Man Page (示例). Graphviz 图形 (示例). 使用AsciiDoc进行文档编写最著名的恐怕是Git官方的 Git User’s Manual (我表示对于初学者很难看懂), 这篇博客也是通过AsciiDoc生成, 文后会附上本文的原始代码以便参考..

ABAP简介

- - 博客园_首页
中文名称:高级企业应用编程语言. 英文全称:Advanced Business Application Programming. 德语全称:Allgemeiner Berichtsaufbereitungsprozessor(通用报表预处理器). 概述:一种高级编程语言,起源于20世纪80年代,由德国软件公司SAP开发,主要用作SAP的编程,现行版本为ABAP/4,同时支持面向过程和面向对象.

json简介

- - ITeye博客
    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成. 它基于ECMA262语言规范(1999-12第三版)中JavaScript编程语言的一个子集. JSON采用与编程语言无关的文本格式,但是也使用了类C语言(包括C, C++, C#, Java, JavaScript, Perl, Python等)的习惯,这些特性使JSON成为理想的数据交换格式.

[转]HBase简介

- - 小鸥的博客
   Hbase是一个分布式开源数据库,基于Hadoop分布式文件系统,模仿并提供了基于Google文件系统的Bigtable数据库的所有功能. 其目标是处理非常庞大的表,可以用普通的计算机处理超过10亿行数据,并且有数百万列元素组成的数据表. Hbase可以直接使用本地文件系统或者Hadoop作为数据存储方式,不过为了提高数据可靠性和系统的健壮性,发挥Hbase处理大数据量等功能,需要使用Hadoop作为文件系统.

Learning to Rank 简介

- - 博客园_首页
  去年实习时,因为项目需要,接触了一下Learning to Rank(以下简称L2R),感觉很有意思,也有很大的应用价值. L2R将机器学习的技术很好的应用到了排序中,并提出了一些新的理论和算法,不仅有效地解决了排序的问题,其中一些算法(比如LambdaRank)的思想非常新颖,可以在其他领域中进行借鉴.

CSRF简介

- - 互联网 - ITeye博客
转自: http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html.   CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF.

storm简介

- - 搜索技术博客-淘宝
伴随着信息科技日新月异的发展,信息呈现出爆发式的膨胀,人们获取信息的途径也更加多样、更加便捷,同时对于信息的时效性要求也越来越高. 举个搜索场景中的例子,当一个卖家发布了一条宝贝信息时,他希望的当然是这个宝贝马上就可以被卖家搜索出来、点击、购买啦,相反,如果这个宝贝要等到第二天或者更久才可以被搜出来,估计这个大哥就要骂娘了.