Amanda-Users

Is it a bad idea to share the /holdingdisk/ area among several concurrent dump sets?

2003-12-02 18:13:21
Subject: Is it a bad idea to share the /holdingdisk/ area among several concurrent dump sets?
From: Mark_Conty AT cargill DOT com
To: amanda-users AT amanda DOT org
Date: Tue, 2 Dec 2003 17:09:47 -0600
Hi --

[I'm _finally_ getting this posted!  I've been trying for days to submit 
it through Yahoo, but it failed every time.  Thanks for telling me about 
the Yahoo interface being broken and reminding me about the mailing 
list, Jon L!! :-]

I did a search through the FAQ-O-Matic and through the Yahoo egroup for 
'share holding' and didn't find anything specific in response to this 
question, so I think it's safe to ask:

        Is it a bad idea to have a central /holdingdisk/ area in use by
        multiple concurrent dump sets?

But before you answer that, maybe I should ask this:

        Is it a bad idea to run multiple concurrent dump sets in the first 
place?

(While searching the egroup archive for an answer to this, I came across 
comments from some of the Amanda veterans that led me to believe that I 
should be using a _single_ backup set, instead of running multiple 
concurrent ones.  Am I reading that correctly?  If so, then the original 
question is moot...)

I've attached one of my configuration files (amanda4.conf.txt) with all 
its include files, the chg-scsi.conf(.txt) file, and its disklist 
(disklist4.txt).  (I had to rename all the files to end with ".txt" so 
that they show up as text files.  *sigh*)  This particular dump set 
configuration is different than the other three I run concurrently.  For 
each of those, a full dump is about 20gb, but this one is for some much 
larger filesystems.  I've done a one-time full backup, and now I'm 
trying to set it up to only do incrementals now, but even doing that, I 
think it's going to take 2-3 35gb tapes to hold each night's incremental 
dumps.

But isn't working anyway.  It gets to a certain point and then 
_everything_ stops.  I don't see any incrementing for the various 
filehandles (checked via 'lsof') -- not taper's tape device filehandle 
nor any of the sendbackup->dumper pipes.

(If I do need to consolidate the four dump sets into one, I wonder what 
it'll take to make this one play nicely with the other three...)


Separate question:  I started to look at 2.4.4p1, but I ran into an 
issue right off the bat.  With 2.4.4, 'configure' reported "fcntl 
locking works... yes", but with 2.4.4p1, I get this:

        checking whether posix fcntl locking works... no
        checking whether flock locking works... no
        checking whether lockf locking works... no
        checking whether lnlock locking works... no
        configure: WARNING: *** No working file locking capability found!
        configure: WARNING: *** Be VERY VERY careful.

(I get the same results whether I build with ANSI C or with GCC.)

I don't see any mention in the NEWS or ChangeLog files of any changes in 
this area.  I do have some degree of parallelism in my configuration, 
but I can't tell if there've been any situations up to now where file 
locking has been needed and used, so I'm reluctant to go any further 
with 2.4.4p1.  Has anyone else run into this?

Thanks!
-- 
Mark Conty
Cargill, Inc.
# Configuration file for chg-scsi tape changer program.
#
number_configs  4

#emubarcode     0
autoinv         1
havebarcode     1

debuglevel      9:0
eject           0
sleep           1
changerdev      /dev/picker
labelfile       /opt/amanda/etc/labelfile
usagecount      /opt/amanda/etc/totaltime

# Drive-specific configurations:
#
config          0
drivenum        0
dev             /dev/rmt/c4t1d0NOCOMPn  # aka /dev/rmt/1mn
startuse        0                       # chg-scsi uses 0-based numbering
enduse          9
statfile        /opt/amanda/etc/daily1/tape-slot
tapestatus      /opt/amanda/etc/daily1/tape-status
cleanfile       /opt/amanda/etc/daily1/tape-clean

config          1
drivenum        1
dev             /dev/rmt/c4t2d0NOCOMPn  # aka /dev/rmt/2mn
startuse        10
enduse          19
statfile        /opt/amanda/etc/daily2/tape-slot
tapestatus      /opt/amanda/etc/daily2/tape-status
cleanfile       /opt/amanda/etc/daily2/tape-clean

config          2
drivenum        2
dev             /dev/rmt/c5t3d0NOCOMPn  # aka /dev/rmt/3mn
startuse        20
enduse          29
statfile        /opt/amanda/etc/daily3/tape-slot
tapestatus      /opt/amanda/etc/daily3/tape-status
cleanfile       /opt/amanda/etc/daily3/tape-clean

config          3
drivenum        3
dev             /dev/rmt/c5t4d0NOCOMPn  # aka /dev/rmt/4mn
startuse        30
enduse          47
statfile        /opt/amanda/etc/daily4/tape-slot
tapestatus      /opt/amanda/etc/daily4/tape-status
cleanfile       /opt/amanda/etc/daily4/tape-clean
# dumptypes
#
# These are referred to by the disklist file.  The dumptype specifies
# certain parameters for dumping including:
#   auth        - authentication scheme to use between server and client.
#                 Valid values are "bsd" and "krb4".  Default: [auth bsd]
#   comment     - just a comment string
#   comprate    - set default compression rate.  Should be followed by one or
#                 two numbers, optionally separated by a comma.  The 1st is
#                 the full compression rate; the 2nd is the incremental rate.
#                 If the second is omitted, it is assumed equal to the first.
#                 The numbers represent the amount of the original file the
#                 compressed file is expected to take up.
#                 Default: [comprate 0.50, 0.50]
#   compress    - specify compression of the backed up data.  Valid values are:
#                 "none"        - don't compress the dump output.
#                 "client best" - compress on the client using the best (and
#                                 probably slowest) algorithm.
#                 "client fast" - compress on the client using fast algorithm.
#                 "server best" - compress on the tape host using the best (and
#                                 probably slowest) algorithm.
#                 "server fast" - compress on the tape host using a fast
#                                 algorithm.  This may be useful when a fast
#                                 tape host is backing up slow clients.
#                 Default: [compress client fast]
#   dumpcycle   - set the number of days in the dump cycle, ie, set how often a
#                 full dump should be performed.  Default: from DUMPCYCLE above
#   exclude     - specify files and directories to be excluded from the dump.
#                 Useful with gnutar only; silently ignored by dump and samba.
#                 Valid values are:
#                 "pattern"       - a shell glob pattern defining which files
#                                   to exclude.
#                                   gnutar gets --exclude="pattern"
#                 list "filename" - a file (on the client!) containing patterns
#                                   re's (1 per line) defining which files to
#                                   exclude.
#                                   gnutar gets --exclude-from="filename"
#                 Note that the `full pathname' of a file within its
#                 filesystem starts with `./', because of the way amanda runs
#                 gnutar: `tar -C $mountpoint -cf - --lots-of-options .' (note
#                 the final dot!)  Thus, if you're backing up `/usr' with a
#                 diskfile entry like ``host /usr gnutar-root', but you don't
#                 want to backup /usr/tmp, your exclude list should contain
#                 the pattern `./tmp', as this is relative to the `/usr' above.
#                 Please refer to the man-page of gnutar for more information.
#                 If a relative pathname is specified as the exclude list,
#                 it is searched from within the directory that is
#                 going to be backed up.
#                 Default: include all files
#   holdingdisk - should the holding disk be used for this dump.  Useful for
#                 dumping the holding disk itself.  Default: [holdingdisk yes]
#   ignore      - do not back this filesystem up.  Useful for sharing a single
#                 disklist in several configurations.
#   index       - keep an index of the files backed up.  Default: [index no]
#   kencrypt    - encrypt the data stream between the client and server.
#                 Default: [kencrypt no]
#   maxdumps    - max number of concurrent dumps to run on the client.
#                 Default: [maxdumps 1]
#   priority    - priority level of the dump.  Valid levels are "low", "medium"
#                 or "high".  These are really only used when Amanda has no
#                 tape to write to because of some error.  In that "degraded
#                 mode", as many incrementals as will fit on the holding disk
#                 are done, higher priority first, to insure the important
#                 disks are at least dumped.  Default: [priority medium]
#   program     - specify the dump system to use.  Valid values are "DUMP" and
#                 "GNUTAR".  Default: [program "DUMP"].
#   record      - record the dump in /etc/dumpdates.  Default: [record yes]
#   skip-full   - skip the disk when a level 0 is due, to allow full backups
#                 outside Amanda, eg when the machine is in single-user mode.
#   skip-incr   - skip the disk when the level 0 is NOT due.  This is used in
#                 archive configurations, where only full dumps are done and
#                 the tapes saved.
#   starttime   - delay the start of the dump?  Default: no delay
#   strategy    - set the dump strategy.  Valid strategies are currently:
#                 "standard" - the standard one.
#                 "nofull"   - do level 1 dumps every time.  This can be used,
#                              for example, for small root filesystems that
#                              only change slightly relative to a site-wide
#                              prototype.  Amanda then backs up just the
#                              changes.
#                 "noinc"    - do level 0 dumps every time.
#                              Unfortunately, this is not currently
#                              implemented.  Use `dumpcycle 0'
#                              instead.
#                 "skip"     - skip all dumps.  Useful for sharing a single
#                              disklist in several configurations.
#                 "incronly" - do only incremental dumps. This is similar
#                              to strategy 'nofull', but will increase
#                              the dump level as usual. Full dumps will
#                              only be performed when an 'amadmin force' 
#                              has been issued 
#                 Default: [strategy standard]
#
# 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
    strategy incronly
}

define dumptype skip {
    comment "Always skip this filesystem"
    strategy skip
}

define dumptype ignore {
    comment "Ignore this filesystem"
    ignore
}

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

define dumptype test-tar {
    global
    program "GNUTAR"
    comment "Ignores all but dot files -- for quicker testing"
    compress none
    record no
    index no
    exclude "./[a-zA-Z0-9]*"
    priority high
}

define dumptype nocomp-root-tar {
    global
    program "GNUTAR"
    comment "root partitions dumped with tar"
    compress none
    index
    exclude list ".exclude.backups"
    priority low
}

define dumptype nocomp-root-tar-nofull {
    nocomp-root-tar
    comment "root partitions dumped with tar, no compression, no full"
    strategy nofull
}

define dumptype nocomp-root-tar-nohold {
    nocomp-root-tar
    comment "root partitions dumped with tar, no holdingdisk"
    holdingdisk no
}

define dumptype nocomp-user-tar {
    nocomp-root-tar
    comment "user partitions dumped with tar"
    priority medium
}

define dumptype nocomp-user-tar-nofull {
    nocomp-user-tar
    comment "root partitions dumped with tar, no compression, no full"
    strategy nofull
}

define dumptype nocomp-user-tar-nohold {
    nocomp-user-tar
    comment "user partitions dumped with tar, no holdingdisk"
    holdingdisk no
}

define dumptype nocomp-high-tar {
    nocomp-root-tar
    comment "partitions dumped with tar"
    priority high
}

define dumptype nocomp-high-tar-nofull {
    nocomp-high-tar
    comment "root partitions dumped with tar, no compression, no full"
    strategy nofull
}

define dumptype nocomp-high-tar-nohold {
    nocomp-high-tar
    comment "partitions dumped with tar, no holdingdisk"
    holdingdisk no
}

define dumptype comp-root-tar {
    nocomp-root-tar
    comment "Root partitions with compression"
    compress client fast
}

define dumptype comp-user-tar {
    nocomp-user-tar
    compress client fast
}

define dumptype comp-high-tar {
    nocomp-high-tar
    compress client fast
}

define dumptype holding-disk {
    global
    comment "The master-host holding disk itself"
    holdingdisk no # do not use the holding disk
    priority medium
}

define dumptype comp-user {
    global
    comment "Non-root partitions on reasonably fast machines"
    compress client fast
    priority medium
}

define dumptype nocomp-user {
    comp-user
    comment "Non-root partitions on slow machines"
    compress none
}

define dumptype nocomp-user-nohold {
    nocomp-user
    comment "Non-root partitions on slow machines, no holdingdisk"
    holdingdisk no
}

define dumptype comp-nofull {
    global
    comment "Root partitions with compression, no full backups"
    compress client fast
    strategy nofull
    priority low
}

define dumptype comp-root {
    global
    comment "Root partitions with compression"
    compress client fast
    priority low
}

define dumptype nocomp-nofull {
    comp-nofull
    comment "Root partitions without compression, no full backups"
    compress none
}

define dumptype nocomp-root {
    comp-root
    comment "Root partitions without compression"
    compress none
}

define dumptype nocomp-nofull-nohold {
    nocomp-nofull
    comment "Root partitions without compression, no holdingdisk, no full 
backups"
    holdingdisk no
}

define dumptype nocomp-root-nohold {
    nocomp-root
    comment "Root partitions without compression, no holdingdisk"
    holdingdisk no
}

define dumptype comp-high {
    global
    comment "very important partitions on fast machines"
    compress client best
    priority high
}

define dumptype nocomp-high {
    comp-high
    comment "very important partitions on slow machines"
    compress none
}

define dumptype nocomp-high-nohold {
    nocomp-high
    comment "very important partitions without compression, no holdingdisk"
    holdingdisk no
}

#define dumptype nocomp-test {
#    global
#    comment "test dump without compression, no /etc/dumpdates recording"
#    compress none
#    record no
#    priority medium
#}
#
#define dumptype comp-test {
#    nocomp-test
#    comment "test dump with compression, no /etc/dumpdates recording"
#    compress client fast
#}
holdingdisk holdingdisk {
        comment         "Amanda holding disk -- 12GB"
        directory       "/var/opt/amanda/holding"
        chunksize       2GB
}

reserve 10
autoflush yes
# 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.
# Notes: - netusage above defines the attributes that are used when the
#          disklist entry doesn't specify otherwise.
#        - the values below are only samples.
#        - specifying an interface does not force the traffic to pass
#          through that interface.  Your OS routing tables do that.  This
#          is just a mechanism to stop Amanda trashing your network.
# 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 500 kbps
}
# amanda.conf.main - Master Amanda configuration file.
#
# This file should be referenced with the 'includefile' directive in
# all subordinate "amanda.conf" files.

#org            "AGH"
mailto          "amanda"
dumpuser        "amanda"

# Copied this param to each backup set's "amanda.conf" file.
#inparallel     4

####dumporder   "TTTt"          # Might as well use the default.
                                # It couldn't be worse!  :-)

#netusage       4000 Kbps
netusage        8000 Kbps

#bumpsize       20 Mb
#bumpdays       1
#bumpmult       4

etimeout        3600            # 1h estimate timeout per f/s; default is 300s.
dtimeout        7200            # 2h amdump timeout per dump; default is 1800s.
ctimeout        900             # 15m amcheck timeout per host; default is 30s.

tpchanger       "chg-scsi"
changerdev      "/dev/picker"
changerfile     "/opt/amanda/etc/chg-scsi.conf"

amrecover_do_fsf        yes
amrecover_check_label   yes
amrecover_changer       "/dev/picker"

tapetype        DLT7000         # described in "tapetypes.conf"

includefile     "/opt/amanda/etc/dumptypes.conf"
includefile     "/opt/amanda/etc/tapetypes.conf"
includefile     "/opt/amanda/etc/interface.conf"
# tapetypes

define tapetype DLT7000 {
        comment "Quantum DLT-7000"
        length 36 gb
        filemark 8 kb
        speed 5000 kps
}

define tapetype DLT4000 {
        comment "Quantum DLT-4000"
        length 36 gb
        filemark 8 kb
        speed 1536 kps
}

define tapetype DDS2 {
        comment "HP1533A DAT (DDS2)"
        length 3600 mb
        filemark 100 kb
        speed 600 kps
}

define tapetype DDS1 {
        comment "HP35480A DAT (DDS1, with compression)"
        length 3600 mb
        filemark 100 kb
        speed 500 kps
}

define tapetype DDS1-nocomp {
        comment "HP35470A DAT (DDS1, no compression)"
        length 1900 mb
        filemark 100 kb
        speed 500 kps
}
# Configuration file 4 of 4 for daily Amanda backups.

includefile     "/opt/amanda/etc/Main.conf"
includefile     "/opt/amanda/etc/holdingdisk.conf"

org             "AGH - daily4"
tapebufs        40              # 32k buffers

inparallel      4

runtapes        4               # number of tapes to be used in each run
dumpcycle       1 week          # the number of days in the normal dump cycle
runspercycle    6               # the number of amdump runs in dumpcycle days
tapecycle       18 tapes        # the number of tapes in rotation

# Uncomment this line when using the various overflow tapes, such as AGH32A.
#
#labelstr       "^AGH(0(3[1-9]|4[0-8])|(3[1-9]|4[0-8])[A-Z])$"

labelstr        "^AGH0(3[1-9]|4[0-8])$"

logdir          "/var/opt/amanda/daily4"
infofile        "/var/opt/amanda/daily4/curinfo"
indexdir        "/var/opt/amanda/daily4/index"

tapedev         "3"             # relative to config in chg-scsi.conf
appdev1         /var/opt/backup/sybdumps        nocomp-root-tar-nofull

appdev2         /var/opt/sybase                 nocomp-root-tar-nofull
appdev2         /var/opt/sybase/sybdumps        nocomp-root-tar-nofull

dbcsite         /var/opt/backup/sybdumps/db0    nocomp-root-tar-nofull
dbcsite         /var/opt/backup/sybdumps/db1    nocomp-root-tar-nofull
dbcsite         /var/opt/sybase/data1           nocomp-root-tar-nofull
dbcsite         /var/opt/sybase/data2           nocomp-root-tar-nofull
dbcsite         /var/opt/sybase/data3           nocomp-root-tar-nofull
dbcsite         /var/opt/sybase/dataconv        nocomp-root-tar-nofull
dbcsite         /var/opt/sybase/dbae1           nocomp-root-tar-nofull
dbcsite         /var/opt/sybase/dcomm_sites     nocomp-root-tar-nofull

dv1csite        /var/opt/sybase/sybdumps        nocomp-root-tar-nofull
dv2csite        /var/opt/sybase/sybdumps        nocomp-root-tar-nofull
s1dev3          /var/opt/backup/sybdumps        nocomp-root-tar-nofull
s1dev3          /var/opt/sybase                 nocomp-root-tar-nofull

it1csite        /var/opt/sybase/sybdumps        nocomp-root-tar-nofull
it2csite        /var/opt/sybase/sybdumps        nocomp-root-tar-nofull
s1int1          /var/opt/backup/sybdumps        nocomp-root-tar-nofull
s1int1          /var/opt/sybase                 nocomp-root-tar-nofull
s1int3          /var/opt/backup/sybdumps        nocomp-root-tar-nofull
s1int3          /var/opt/sybase                 nocomp-root-tar-nofull

pt1csite        /var/opt/sybase/db1             nocomp-root-tar-nofull

rmgmt           /home/pvcs/builds               nocomp-root-tar-nofull

s2sme           /deploy                         nocomp-root-tar-nofull
s2sme           /deploy/lynx/archive            nocomp-root-tar-nofull
s2sme           /deploy/lynx/packages           nocomp-root-tar-nofull
s2sme           /staging                        nocomp-root-tar-nofull

s3sme           /var/opt/data                   nocomp-root-tar-nofull
s3sme           /var/opt/ignite                 nocomp-root-tar-nofull

w401lynx        /var/opt/data                   nocomp-root-tar-nofull
w401lynx        /var/opt/ignite                 nocomp-root-tar-nofull
w402lynx        /var/opt/sardata                nocomp-root-tar-nofull
<Prev in Thread] Current Thread [Next in Thread>