PDA

View Full Version : newbie ? - tapeless operation -> amlabel error



j.g.
May 29th, 2007, 09:31 AM
Hi All!

I'm new to Amanda and am trying to configure it for tapeless operation using the instructions in the following link: http://amanda.sourceforge.net/fom-serve/cache/191.html. I'm down to the labeling in step #5 'Use amlabel to label the tapes'; however, when I run the amlabel command, I get the following error:
amanda@melbourne:/usr/src/amanda-2.5.2/sbin$ amlabel DailySet3 DailySet301 slot 1
amlabel: could not load slot "1": could not read result from "/usr/src/amanda/etc/amanda/DailySet3/chg.disk"

I'm running VERSION 2.5.2 on Linux.

My 'amanda.conf' file:

org "DailySet3" # your organization name for reports
mailto "amanda" # space separated list of operators at your site
dumpuser "amanda" # the user to run dumps under

inparallel 4 # maximum dumpers that will run in parallel (max 63)
# this maximum can be increased at compile-time,
# modifying MAX_DUMPERS in server-src/driverio.h
dumporder "sssS" # specify the priority order of each dumper
# s -> smallest size
# S -> biggest size
# t -> smallest time
# T -> biggest time
# b -> smallest bandwitdh
# B -> biggest bandwitdh
# try "BTBTBTBTBTBT" if you are not holding
# disk constrained

taperalgo first # The algorithm used to choose which dump image to send
# to the taper.
# Possible values:
# [first|firstfit|largest|largestfit|smallest|last]
# Default: first.
# first First in - first out.
# firstfit The first dump image that will fit
# on the current tape.
# largest The largest dump image.
# largestfit The largest dump image that will fit
# on the current tape.
# smallest The smallest dump image.
# last Last in - first out.

displayunit "k" # Possible values: "k|m|g|t"
# Default: k.
# The unit used to print many numbers.
# k=kilo, m=mega, g=giga, t=tera

netusage 90 mbps # maximum net bandwidth for Amanda, in KB per sec

dumpcycle 7 # the number of days in the normal dump cycle
#runspercycle 7 # the number of amdump runs in dumpcycle days
# (4 weeks * 5 amdump runs per week -- just weekdays)
tapecycle 7 tapes # the number of tapes in rotation
# 4 weeks (dumpcycle) times 5 tapes per week (just
# the weekdays) plus a few to handle errors that
# need amflush and so we do not overwrite the full
# backups performed at the beginning of the previous
# cycle

bumpsize 20 Mb # minimum savings (threshold) to bump level 1 -> 2
bumppercent 20 # minimum savings (threshold) to bump level 1 -> 2
bumpdays 1 # minimum days at each level
bumpmult 4 # threshold = bumpsize * bumpmult^(level-1)

etimeout 600 # number of seconds per filesystem for estimates.
dtimeout 1800 # number of idle seconds before a dump is aborted.
ctimeout 30 # maximum number of seconds that amcheck waits
# for each client host

tapebufs 20 # A positive integer telling taper how many
# 32k buffers to allocate. The default is 20 (640k).

usetimestamps yes

runtapes 1 # number of tapes to be used in a single run of amdump
tpchanger "/usr/src/amanda/etc/amanda/DailySet3/chg.disk" # the tape-changer glue script
#tapedev "/dev/nst0" # the no-rewind tape device to be used
rawtapedev "/dev/null" # the raw device to be used (ftape only)
#changerfile "/usr/src/amanda/etc/amanda/DailySet3/changer"
#changerfile "/usr/src/amanda/etc/amanda/DailySet3/changer-status"
changerfile "/usr/src/amanda/etc/amanda/DailySet3/chg.disk"
#changerdev "/dev/sg3"

# Use with caution.
## label_new_tapes "DailySet1-%%%"

maxdumpsize -1 # Maximum number of bytes the planner will schedule
# for a run (default: runtapes * tape_length).
tapetype HARD-DISK # what kind of tape it is (see tapetypes below)
labelstr "^DailySet3[0-9][0-9]*$" # label constraint regex: all tapes must match

amrecover_do_fsf yes # amrecover will call amrestore with the
# -f flag for faster positioning of the tape.
amrecover_check_label yes # amrecover will call amrestore with the
# -l flag to check the label.
amrecover_changer "/dev/null" # amrecover will use the changer if you restore
# from this device.
# It could be a string like 'changer' and
# amrecover will use your changer if you
# set your tape with 'settape changer'

# Specify holding disks.
holdingdisk hd1 {
comment "main holding disk"
directory "/backup" # where the holding disk is
use -1000 Mb # how much space can we use on it
# a non-positive value means:
# use all space but that value
chunksize 1Gb # size of chunk if you want big dump to be
# dumped on multiple files on holding disks
# N Kb/Mb/Gb split images in chunks of size N
# The maximum value should be
# (MAX_FILE_SIZE - 1Mb)
# 0 same as INT_MAX bytes
}
#holdingdisk hd2 {
# directory "/dumps2/amanda"
# use 1000 Mb
# }
#holdingdisk hd3 {
# directory "/mnt/disk4"
# use 1000 Mb
# }


# If amanda cannot find a tape on which to store backups, it will run
# as many backups as it can to the holding disks.

# reserve 30 # percent
# This means save at least 30% of the holding disk space for degraded
# mode backups.

autoflush no #
# if autoflush is set to yes, then amdump will schedule all dump on
# holding disks to be flush to tape during the run.

# The format for a ColumnSpec is a ',' seperated list of triples.
# Each triple consists of
# + the name of the column (as in ColumnNameStrings)
# + prefix before the column
# + the width of the column, if set to -1 it will be recalculated
# to the maximum length of a line to print.
# Example:
# "Disk=1:17,HostName=1:10,OutKB=1:7"
# or
# "Disk=1:-1,HostName=1:10,OutKB=1:7"
#
# You need only specify those colums that should be changed from
# the default. If nothing is specified in the configfile, the
# above compiled in values will be in effect, resulting in an
# output as it was all the time.
# The names of the colums are:
# HostName, Disk, Level, OrigKB, OutKB, Compress, DumpTime, DumpRate,
# TapeTime and TapeRate.
# ElB, 1999-02-24.
# columnspec "Disk=1:18,HostName=0:10,OutKB=1:7"


# Amanda needs a few Mb of diskspace for the log and debug files,
# as well as a database. This stuff can grow large, so the conf directory
# isn't usually appropriate. Some sites use /usr/local/var and some /usr/adm.
# Create an amanda directory under there. You need a separate infofile and
# logdir for each configuration, so create subdirectories for each conf and
# put the files there. Specify the locations below.

# Note that, although the keyword below is infofile, it is only so for
# historic reasons, since now it is supposed to be a directory (unless
# you have selected some database format other than the `text' default)
infofile "/usr/src/amanda/etc/amanda/DailySet3/curinfo" # database DIRECTORY
logdir "/usr/src/amanda/etc/amanda/DailySet3" # log directory
indexdir "/usr/src/amanda/etc/amanda/DailySet3/index" # index directory
#tapelist "/usr/src/amanda/etc/amanda/DailySet3/tapelist" # list of used tapes
# tapelist is stored, by default, in the directory that contains amanda.conf

# tapetypes

# Define the type of tape you use here, and use it in "tapetype"
# above. Some typical types of tapes are included here. The tapetype
# tells amanda how many MB will fit on the tape, how big the filemarks
# are, and how fast the tape device is.

# If you want amanda to print postscript paper tape labels
# add a line after the comment in the tapetype of the form
# lbl-templ "/path/to/postscript/template/label.ps"

# dumpuser "operator" # the user to run dumps under
# printer "mypostscript" # printer to print paper label on

# here is an example of my definition for an EXB-8500

# define tapetype EXB-8500 {
# ...
# lbl-templ "/usr/src/amanda/etc/amanda/config/lbl.exabyte.ps"
# }

define tapetype HARD-DISK {
comment "Hard disk instead of tape"
length 4000 mbytes #Simulates end of tape on hard disk (a 4 GB disk here)
}

define tapetype VXA_V6 {
comment "just produced by tapetype program"
length 9830 mbytes
filemark 1933 kbytes
speed 2007 kps
}

# dumptypes
# Note that you may specify previously defined dumptypes as a shorthand way of
# defining parameters.

define dumptype global {
comment "Global definitions"
# This is quite useful for setting global parameters, so you don't have
# to type them everywhere. All dumptype definitions in this sample file
# do include these definitions, either directly or indirectly.
# There's nothing special about the name `global'; if you create any
# dumptype that does not contain the word `global' or the name of any
# other dumptype that contains it, these definitions won't apply.
# Note that these definitions may be overridden in other
# dumptypes, if the redefinitions appear *after* the `global'
# dumptype name.
# You may want to use this for globally enabling or disabling
# indexing, recording, etc. Some examples:
# index yes
# record no
# split_diskbuffer "/raid/amanda"
# fallback_splitsize 64m
}

define dumptype hard-disk-dump {
global
comment "Back up to hard disk intead of tape - using dump"
holdingdisk no
index yes
priority high
}

define dumptype hard-disk-tar {
hard-disk-dump
comment "Back up to hard disk instead of tape - using tar"
program "GNUTAR"
}

define dumptype always-full {
global
comment "Full dump of this filesystem always"
compress none
priority high
dumpcycle 0
}

# Dumptypes for gnutar
define dumptype root-tar {
global
program "GNUTAR"
comment "root partitions dumped with tar"
compress none
index
# exclude list "/usr/local/lib/amanda/exclude.gtar"
priority low
}

# network interfaces
#
# These are referred to by the disklist file. They define the attributes
# of the network interface that the remote machine is accessed through.
# Attributes are:
# use - bandwidth above which amanda won't start
# backups using this interface. Note that if
# a single backup will take more than that,
# amanda won't try to make it run slower!

define interface local {
comment "a local disk"
use 1000 kbps
}

define interface le0 {
comment "10 Mbps ethernet"
use 400 kbps
}

# You may include other amanda configuration files, so you can share
# dumptypes, tapetypes and interface definitions among several
# configurations.

#includefile "/usr/local/amanda/amanda.conf.main"



And my 'chg.disk' file:

# config file for the chg-multi tape changer program.
# Used when tpchanger "chg-multi" is specified in amanda.conf.

# chg-multi supports several configurations, with or without an actual
# changer. Please see docs/TAPE.CHANGERS for a description
#
# chg-multi should actually work directly with any changer that allows
# access to the slots via Unix devices that look to software like
# regular tape drives. (that is, you don't need a changer driver...).

# Configuration variables:
#
# 'multieject': use an 'mt offline' command to change to the next
# tape, or multiple such commands for skipping several tapes at a
# time.
#
# 'needeject': this option is incompatible with 'multieject'. This is
# needed for changers accessed through several virtual tape
# devices, when the changer needs the current tape to be ejected
# before changing to another device.
#
# 'gravity': set this to 1 if the changer/stacker is unable to loop
# back to the first tape after unloading the last one, or if you
# don't want amanda to go through the tape stack looking for the
# exact tape it wants instead of using the first acceptable one.
#
# slot X: The configuration file should list as many 'slot X'
# statements as the number of slots supported by the changer or the
# number of separate tape drives used.

# For changers that need an 'mt offline' to load the next tape
multieject 0

# Is this a gravity stacker that can't go backwards or cycle ? If
# yes, set gravity to 1.
gravity 0

# Does this tape-changer need an explicit eject command before loading
# a new tape? If you are using multiple drives as a tape changer, you
# don't want to do this, but if you are using an auto-changer that
# allows access to the slots through Unix tape devices, it might block
# the mount of a new slot until the old is explicitly ejected. In
# that case, set needeject to 1.
needeject 0

# On some machines there is a delay between when the eject command
# finishes and the next tape is ready to be accessed. Set ejectdelay
# to the number of seconds to wait after an eject command. This will
# almost certainly be needed if multieject is set, probably not if
# needeject is used.
ejectdelay 0

# Names a status file where the current ``changer'' state is stored.
statefile /usr/src/amanda/etc/amanda/DailySet3/changer-status

# What are the slot numbers used in the tape rack?
firstslot 1
lastslot 4

# Enumerate the device files that go with the particular tape changer
# slots. Don't forget to specify the no-rewind version of the device.
slot 1 /dev/amandadumps/tape01
slot 2 /dev/amandadumps/tape02
slot 3 /dev/amandadumps/tape03
slot 4 /dev/amandadumps/tape04

I'm hoping that some experienced set of eyes will be able to point me in the right direction; I've spent a lot of time on this and am spinning my wheels, so your help is greatly appreciated! Thanks in advance for your time and expertise!

Thanks much,
jg

Andrew Rakowski
May 29th, 2007, 04:42 PM
Hi jg,

I'm not an expert on this by any means, but I believe that the file "chg.disk" that you have defined as the "changerfile" would imply that you should also be using the amanda.conf entry:

tpchanger "chg-multi" # the multi-tape drive tape-changer glue script

rather than specifying that same file again (you are using it as both the glue script name and the changerfile name). The changer script "chg-multi" "uses" the changerfile to find files based on slots, etc. On my (working) configuration I use:

....
[amandabackup]$ egrep tpchanger\|changer amanda.conf | grep -v ^#
tpchanger "chg-multi" # the multi-tape drive tape-changer glue script
changerfile "/etc/amanda/XXXXset1/changer.conf" # Defines changer for chg-multi scripts
amrecover_changer "" # amrecover will use the changer if you restore from this device.
[amandabackup]$
....

See if that helps get you going...

-Andrew