磁盘备份与Amanda在Debian Lenny
介绍
Amanda是一种用于备份文件系统的开源客户端/服务器解决方案。 备份由备份服务器触发,备份定义位于服务器上,但排除列表位于客户机上。 阿曼达还没有达到像IBM TSM / TDP或Legato Networker这样的备份解决方案的水平,但它是迄今为止发现的最好的开源解决方案。
景观
bckserver.mydomain.com
(Debian lenny):托管amanda服务器的备份服务器。
bckclient.mydomain.com
(Debian lenny):备份客户端是一个具有MySQL 5.0版数据库(无复制)的Web服务器。 mysql备份是使用zrm版本2.2完成的。 我没有为zrm创建一个howto,因为该产品很容易使用,而zmanda 快速设置指南和用户手册真的很容易遵循。 我对zrm最大的遗憾是:它不备份到amanda磁带。
作为图书馆的ISCSI SAN。 备份到虚拟磁带(磁盘)
AMANDA
3.1备份服务器
3.1.1安装
由于用户root安装amanda-server软件包和... amanda-client软件包,否则您将无法从bckclient中进行还原。
# apt-get update
# apt-get install amanda-server amanda-client xinetd gawk gnuplot readline-common openssh-server
在出现提示时接受所需的其他包。
3.1.2(如果适用)在Inetd配置文件中注释Amanda条目
软件包配置inetd和xinetd。 在这个howto我们只使用xinetd。
编辑/etc/inetd.conf
并评论与amanda相关的行:
#:OTHER: Other services
#amandaidx stream tcp nowait backup /usr/sbin/tcpd /usr/lib/amanda/amindexd amindexd -auth=bsdtcp amdump amindexd amidxtaped
#amidxtape stream tcp nowait backup /usr/sbin/tcpd /usr/lib/amanda/amidxtaped amidxtaped -auth=bsdtcp amdump amindexd amidxtaped
#amanda dgram udp wait backup /usr/sbin/tcpd /usr/lib/amanda/amandad -auth=bsd amdump amindexd amidxtaped
3.1.3修改Amanda守护进程使用auth bsdtcp
有关详细信息,请查阅维基 。
在/etc/xinetd.d/
中编辑amanda
, amidxtape
和amandaidx
文件以匹配以下内容:
# cat /etc/xinetd.d/amanda| grep -v "^#"
service amanda
{
socket_type = stream
protocol = tcp
wait = no
user = backup
group = backup
groups = yes
server = /usr/lib/amanda/amandad
server_args = -auth=bsdtcp amdump amindexd amidxtaped
disable = no
}
# cat /etc/xinetd.d/amidxtape | grep -v "^#"
service amidxtape
{
socket_type = stream
protocol = tcp
wait = no
user = backup
group = backup
groups = yes
server = /usr/lib/amanda/amidxtaped
server_args = -auth=bsdtcp amdump amindexd amidxtaped
disable = no
}
# cat /etc/xinetd.d/amandaidx | grep -v "^#"
service amandaidx
{
socket_type = stream
protocol = tcp
wait = no
user = backup
group = backup
groups = yes
server = /usr/lib/amanda/amindexd
server_args = -auth=bsdtcp amdump amindexd amidxtaped
disable = no
}
启用更改:
# /etc/init.d/xinetd restart
3.1.4备份配置
我们将定义每日备份,配置将被称为DailySet1
。
在安装时默认配置的备份用户是:
用户名: 备份
用户组: 备份
home dir: / var / backups
# su backup -c "mkdir /etc/amanda/DailySet1"
我们为DailySet1
创建一个最小配置文件amanda.conf
:
vi /etc/amanda/DailySet1/amanda.conf
org "DailySet1" # your organization name for reports
mailto "backup_admin@mydomain.com" # space separated list of operators at your site
dumpuser "backup" # the user to run dumps under
logdir "/etc/amanda/DailySet1/logs" # log directory
infofile "/etc/amanda/DailySet1/curinfo" # database filename
indexdir "/etc/amanda/DailySet1/index" # index directory
tapelist "/etc/amanda/DailySet1/tapelist" # list of used tapes
tapecycle 9 tapes
tapetype DISK
tpchanger "chg-disk"
changerfile "/etc/amanda/DailySet1/changer" # needed by amlabel
tapedev "file:/space/vtapes/DailySet1/slots"
define tapetype DISK {
comment "Backup to HD"
length 5 gbytes
}
# comment holding disk section if needed
holdingdisk hd1 {
directory "/dumps/"
}
# to be used by any other dumptype
define dumptype global {
comment "Global definitions"
index yes
record yes
auth "bsdtcp"
}
define dumptype daily {
global
comment "daily dumptype"
compress client fast
program "GNUTAR"
strategy standard
priority high
exclude list "/etc/amanda/DailySet1/global-debian-exclude.list"
}
快速说明:
- 我们计划使用9个5千兆字节的磁带。 我们在9次备份后回收磁带。
- 我们计划在bckclient上备份一些例外(ref排除列表部分3.2.6)。
有关语法的详细信息,请查看amanda.conf手册页。
为amanda.conf
中指定的DailySet1
创建数据库存储库
。
# su backup -c "mkdir /etc/amanda/DailySet1/logs"
# su backup -c "mkdir /etc/amanda/DailySet1/index"
# touch /etc/amanda/DailySet1/tapelist
# su backup -c "mkdir /etc/amanda/DailySet1/curinfo"
3.1.5(可选)配置保持盘
持有磁盘用作缓存来存储所有Amanda客户端的备份数据( 参考 )。
如果您不打算使用保留磁盘,请查看amanda.conf文件。
# comment holding disk section if needed #holdingdisk hd1 { # directory "/dumps/" #}
并跳过本节。
如果您打算使用保持盘:
# su backup -c "mkdir /dumps"
# chmod 750 /dumps
我在这里使用本地磁盘。 本文档不包括细节。
# cat /etc/fstab | grep LABEL
LABEL=holdingdisk /dumps ext3 defaults 0 LABEL=backup /space xfs _netdev 0 0
3.1.6配置虚拟磁带
# mkdir -p /space/
我在这里使用我的ISCSI SAN磁盘。 查看此ISCSI howto的详细信息。
# mkdir -p /space/vtapes/DailySet1/slots
# chown backup:backup -R /space/
# chmod 750 /space/vtapes
# su - backup
$ cd /space/vtapes/DailySet1/slots
创建磁带:
$ for ((i=1; $i<=9; i++)); do mkdir slot$i;done
初始化磁带机:
$ ln -s slot1 data
测试虚拟磁带:
$ ammt -f file:/space/vtapes/DailySet1/slots status
file:/space/vtapes/DailySet1/slots status: ONLINE
标记磁带:
$ for ((i=1; $i<=9;i++)); do amlabel DailySet1 DailySet1-0$i slot $i; done
注意:如果您打算使用超过9个磁带(例如25个),请执行第二个amlabel命令:
$ for ((i=10; $i<=25;i++)); do amlabel DailySet1 DailySet1-$i slot $i; done
将虚拟磁带更换器重置回第一个socket。
$ amtape DailySet1 reset
amtape: changer is reset, slot 1 is loaded.
$ ls -l data
lrwxrwxrwx 1 backup backup 35 jun 7 02:27 data -> /space/vtapes/DailySet1/slots/slot1
3.1.7备份定义:磁盘清单
在本节中,您将为每个备份客户端指定要备份的磁盘。
在备份客户端:
作为用户root问题挂载
在备份客户端列出挂载的磁盘:
# mount
/ dev / mapper / debian-root on / type xfs
/ dev / sda1 on / boot type ext2(rw)
/ dev / sdb1 on /var/www/www.mysite.com type ext3
在备份服务器上:
$ vi /etc/amanda/DailySet1/disklist
bckclient.mydomain.com /var/www/www.mysite.com/ daily bckclient.mydomain.com / daily bckclient.mydomain.com /boot/ daily
语法 :client.fqdn path dumptype(ref amanda.conf)
注意:由于我们使用完全限定的域名,您的名称解析( / etc / hosts
或DNS和反向DNS)必须正确设置和测试。 如果您不确定使用IP地址。
3.1.8授权:amandahost
此文件用于授权客户端或服务器连接:
$ vi /etc/amandahosts
bckserver.mydomain.com root amindexd amidxtaped
bckserver.mydomain.com backup amdump
bckclient.mydomain.com root amindexd amidxtaped
行:“bckclient.mydomain.com root amindexd amidxtaped”允许来自bckclient的用户root
执行恢复。
“bckserver.mydomain.com backup amdump”行允许用户从bckserver进行备份,以在bckserver上运行备份。
有关文件语法和身份验证的详细信息。
注意:由于我们使用完全限定的域名,您的名称解析( / etc / hosts
或DNS 和反向DNS)必须正确设置和测试。 如果您不确定使用IP地址。
# ln -s /var/backups/.amandahosts /etc/amandahosts
# chmod 400 etc/amandahosts
# ls -l /etc/amandahosts
-r-------- 1 backup backup 157 mai 27 02:12 /etc/amandahosts
# ls -l /var/backups/.amandahosts
lrwxrwxrwx 1 root root 16 mai 17 00:41 /var/backups/.amandahosts -> /etc/amandahosts