From: Bdale Garbee Date: Tue, 2 Nov 2010 02:41:50 +0000 (-0600) Subject: Merge commit 'upstream/3.2.0' X-Git-Tag: debian/3.2.0-1~3 X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=42ff24f2a525d5965e1841b2ebe3ee0f4b918ac6;hp=-c;p=debian%2Famanda Merge commit 'upstream/3.2.0' Conflicts: changer-src/chg-mcutil.sh --- 42ff24f2a525d5965e1841b2ebe3ee0f4b918ac6 diff --combined client-src/selfcheck.c index bbfcd67,5f6cb07..a68f39e --- a/client-src/selfcheck.c +++ b/client-src/selfcheck.c @@@ -306,7 -306,7 +306,7 @@@ main if (am_has_feature(g_options->features, fe_req_xml)) { char *errmsg = NULL; - dle_t *dles, *dle; + dle_t *dles, *dle, *dle_next; dles = amxml_parse_node_FILE(stdin, &errmsg); if (errmsg) { @@@ -329,6 -329,10 +329,10 @@@ run_client_scripts(EXECUTE_ON_POST_HOST_AMCHECK, g_options, dle, stdout); } + for (dle = dles; dle != NULL; dle = dle_next) { + dle_next = dle->next; + free_dle(dle); + } } check_overall(); @@@ -1120,8 -1124,8 +1124,8 @@@ check_overall(void check_file(COMPRESS_PATH, X_OK); if (need_dump || need_xfsdump ) { - if (check_file_exist("/etc/dumpdates")) { - check_file("/etc/dumpdates", + if (check_file_exist("/var/lib/dumpdates")) { + check_file("/var/lib/dumpdates", #ifdef USE_RUNDUMP F_OK #else @@@ -1131,15 -1135,15 +1135,15 @@@ } else { #ifndef USE_RUNDUMP if (access("/etc", R_OK|W_OK) == -1) { - g_printf(_("ERROR [dump will not be able to create the /etc/dumpdates file: %s]\n"), strerror(errno)); + g_printf(_("ERROR [dump will not be able to create the /var/lib/dumpdates file: %s]\n"), strerror(errno)); } #endif } } if (need_vdump) { - if (check_file_exist("/etc/vdumpdates")) { - check_file("/etc/vdumpdates", F_OK); + if (check_file_exist("/var/lib/vdumpdates")) { + check_file("/var/lib/vdumpdates", F_OK); } } @@@ -1151,7 -1155,6 +1155,7 @@@ check_space(AMANDA_DBGDIR, (off_t)64); /* for amandad i/o */ #endif + check_space("/var/lib", (off_t)64); /* for /var/lib/dumpdates writing */ check_space("/etc", (off_t)64); /* for /etc/dumpdates writing */ } } diff --combined example/amanda.conf.in index 6d234a0,7ef107b..903b1bb --- a/example/amanda.conf.in +++ b/example/amanda.conf.in @@@ -133,17 -133,13 +133,13 @@@ tapedev "@EXAMPLE_TAPEDEV@" # tape chan # encounters, uncomment the line below. Note that this will ERASE any # non-Amanda tapes you may have, and may also ERASE any near-failing tapes. # Use with caution. - ## label_new_tapes "@DEFAULT_CONFIG@-%%%" + ## autolabel "@DEFAULT_CONFIG@-%%%" empty maxdumpsize -1 # Maximum number of bytes the planner will schedule # for a run (default: runtapes * tape_length). tapetype HP-DAT # what kind of tape it is (see tapetypes below) labelstr "^@DEFAULT_CONFIG@-[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 "changer" # 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 to 'changer' with 'setdevice changer' or via @@@ -268,8 -264,13 +264,13 @@@ indexdir "@CONFIG_DIR@/@DEFAULT_CONFIG@ # lbl-templ "@CONFIG_DIR@/config/lbl.exabyte.ps" # } + define tapetype global { + part_size 3G + part_cache_type none + } define tapetype QIC-60 { + global comment "Archive Viper" length 60 mbytes filemark 100 kbytes # don't know a better value @@@ -277,6 -278,7 +278,7 @@@ } define tapetype DEC-DLT2000 { + global comment "DEC Differential Digital Linear Tape 2000" length 15000 mbytes filemark 8 kbytes @@@ -286,6 -288,7 +288,7 @@@ # goluboff@butch.Colorado.EDU # in amanda-users (Thu Dec 26 01:55:38 MEZ 1996) define tapetype DLT { + global comment "DLT tape drives" length 20000 mbytes # 20 Gig tapes filemark 2000 kbytes # I don't know what this means @@@ -293,6 -296,7 +296,7 @@@ } define tapetype SURESTORE-1200E { + global comment "HP AutoLoader" length 3900 mbytes filemark 100 kbytes @@@ -300,6 -304,7 +304,7 @@@ } define tapetype EXB-8500 { + global comment "Exabyte EXB-8500 drive on decent machine" length 4200 mbytes filemark 48 kbytes @@@ -307,6 -312,7 +312,7 @@@ } define tapetype EXB-8200 { + global comment "Exabyte EXB-8200 drive on decent machine" length 2200 mbytes filemark 2130 kbytes @@@ -314,6 -320,7 +320,7 @@@ } define tapetype HP-DAT { + global comment "DAT tape drives" # data provided by Rob Browning length 1930 mbytes @@@ -322,6 -329,7 +329,7 @@@ } define tapetype DAT { + global comment "DAT tape drives" length 1000 mbytes # these numbers are not accurate filemark 100 kbytes # but you get the idea @@@ -329,6 -337,7 +337,7 @@@ } define tapetype MIMSY-MEGATAPE { + global comment "Megatape (Exabyte based) drive through Emulex on Vax 8600" length 2200 mbytes filemark 2130 kbytes @@@ -336,10 -345,11 +345,11 @@@ } define tapetype SEAGATE-ULTRIUM-LTO { - comment "SEAGATE ULTRIUM 06242 LTO, compression off" - length 99584 mbytes - filemark 0 kbytes - speed 11288 kps + global + comment "SEAGATE ULTRIUM 06242 LTO, compression off" + length 99584 mbytes + filemark 0 kbytes + speed 11288 kps } # dumptypes @@@ -450,7 -460,7 +460,7 @@@ # program - specify the dump system to use. Valid values are "DUMP", # or "GNUTAR". Default: [program "DUMP"]. # record - record the backup in the time-stamp-database of the backup -# program (e.g. /etc/dumpdates for DUMP or +# program (e.g. /var/lib/dumpdates for DUMP or # @GNUTAR_LISTED_INCREMENTAL_DIRX@ for GNUTAR.). # Default: [record yes] # skip-full - skip the disk when a level 0 is due, to allow full backups @@@ -475,25 -485,6 +485,6 @@@ # only be performed when an 'amadmin force' # has been issued # Default: [strategy standard] - # tape_splitsize - (optional) split dump file into pieces of a specified size. - # This allows dumps to be spread across multiple tapes, and can - # potentially make more efficient use of tape space. Note that - # if this value is too large (more than half the size of the - # average dump being split), substantial tape space can be - # wasted. If too small, large dumps will be split into - # innumerable tiny dumpfiles, adding to restoration complexity. - # A good rule of thumb, usually, is 1/10 of the size of your - # tape. Default: [disabled] - # split_diskbuffer - (optional) When dumping a split dump in PORT-WRITE - # mode (usually meaning "no holding disk"), buffer the split - # chunks to a file in the directory specified by this option. - # Default: [none] - # fallback_splitsize - (optional) When dumping a split dump in PORT-WRITE - # mode, if no split_diskbuffer is specified (or if we somehow - # fail to use our split_diskbuffer), we must buffer split - # chunks in memory. This specifies the maximum size split - # chunks can be in this scenario, and thus the maximum amount - # of memory consumed for in-memory splitting. Default: [10m] # # Note that you may specify previously defined dumptypes as a shorthand way of # defining parameters. @@@ -544,7 -535,6 +535,6 @@@ define dumptype user-tar define dumptype user-tar-span { root-tar - tape_splitsize 3 Gb comment "tape-spanning user partitions dumped with tar" priority medium } @@@ -587,7 -577,6 +577,6 @@@ define dumptype comp-user define dumptype comp-user-span { global - tape_splitsize 5 Gb comment "Tape-spanning non-root partitions on reasonably fast machines" compress client fast priority medium @@@ -633,7 -622,7 +622,7 @@@ define dumptype nocomp-high define dumptype nocomp-test { global - comment "test dump without compression, no /etc/dumpdates recording" + comment "test dump without compression, no /var/lib/dumpdates recording" compress none record no priority medium @@@ -641,7 -630,7 +630,7 @@@ define dumptype comp-test { nocomp-test - comment "test dump with compression, no /etc/dumpdates recording" + comment "test dump with compression, no /var/lib/dumpdates recording" compress client fast } diff --combined example/template.d/dumptypes index b19189f,d73639a..62172d3 --- a/example/template.d/dumptypes +++ b/example/template.d/dumptypes @@@ -106,7 -106,7 +106,7 @@@ # program - specify the dump system to use. Valid values are "DUMP" # "STAR" and "GNUTAR". Default: [program "DUMP"]. # record - record the backup in the time-stamp-database of the backup -# program (e.g. /etc/dumpdates for DUMP or +# program (e.g. /var/lib/dumpdates for DUMP or # /var/lib/amanda/gnutar-lists for GNUTAR.). # Default: [record yes] # skip-full - skip the disk when a level 0 is due, to allow full backups @@@ -131,26 -131,6 +131,6 @@@ # only be performed when an 'amadmin force' # has been issued # Default: [strategy standard] - # tape_splitsize - (optional) split dump file into pieces of a specified size. - # This allows dumps to be spread across multiple tapes, and can - # potentially make more efficient use of tape space. Note that - # if this value is too large (more than half the size of the - # average dump being split), substantial tape space can be - # wasted. If too small, large dumps will be split into - # innumerable tiny dumpfiles, adding to restoration complexity. - # A good rule of thumb, usually, is 1/10 of the size of your - # tape. Default: [disabled] - # split_diskbuffer - (optional) When dumping a split dump in PORT-WRITE - # mode (usually meaning "no holding disk"), buffer the split - # chunks to a file in the directory specified by this option. - # Default: [none] - # fallback_splitsize - (optional) When dumping a split dump in PORT-WRITE - # mode, if no split_diskbuffer is specified (or if we somehow - # fail to use our split_diskbuffer), we must buffer split - # chunks in memory. This specifies the maximum size split - # chunks can be in this scenario, and thus the maximum amount - # of memory consumed for in-memory splitting. Default: [10m] - # # # Note that you may specify previously defined dumptypes as a shorthand way # of defining parameters. @@@ -184,7 -164,6 +164,6 @@@ define dumptype user-star define dumptype user-star-span { root-star - tape_splitsize 3 Gb comment "tape-spanning user partitions dumped with star" priority medium } @@@ -232,7 -211,6 +211,6 @@@ define dumptype user-tar define dumptype user-tar-span { root-tar - tape_splitsize 3 Gb comment "tape-spanning user partitions dumped with tar" priority medium } @@@ -277,7 -255,6 +255,6 @@@ define dumptype comp-user define dumptype comp-user-span { global - tape_splitsize 5 Gb comment "Tape-spanning non-root partitions on reasonably fast machines" compress client fast priority medium @@@ -325,7 -302,7 +302,7 @@@ define dumptype nocomp-high define dumptype nocomp-test { global - comment "test dump without compression, no /etc/dumpdates recording" + comment "test dump without compression, no /var/lib/dumpdates recording" compress none record no priority medium @@@ -333,7 -310,7 +310,7 @@@ define dumptype comp-test { nocomp-test - comment "test dump with compression, no /etc/dumpdates recording" + comment "test dump with compression, no /var/lib/dumpdates recording" compress client fast } diff --combined gnulib/regenerate/regenerate index 6f42fa0,57565d7..57565d7 mode 100644,100755..100644 --- a/gnulib/regenerate/regenerate +++ b/gnulib/regenerate/regenerate @@@ -4,7 -4,7 +4,7 @@@ # same version as was used to generate the source in the repository, # run the following in your git repository: # - # git checkout 8d2524ce78ca107074727cbd8780c26a203a107c + # git checkout 09b8fa6cb737f6e091931c494cbd56d12b3ad08d # get to the project root cd `dirname $0`/../.. @@@ -39,9 -39,10 +39,10 @@@ shopt -u nullglo ## Add your modules here, then see below if you need to patch them. ## ###################################################################### - GNULIB_MODULES="getaddrinfo lock visibility base64 physmem fsusage" - GNULIB_MODULES="$GNULIB_MODULES mkdtemp getopt full-read full-write" - GNULIB_MODULES="$GNULIB_MODULES lseek ftruncate fseeko ftello regex" + GNULIB_MODULES="getaddrinfo lock base64 physmem fsusage" + GNULIB_MODULES="$GNULIB_MODULES mkdtemp getopt-gnu full-read full-write" + GNULIB_MODULES="$GNULIB_MODULES lseek ftruncate fseeko ftello regex environ" + GNULIB_MODULES="$GNULIB_MODULES inet_pton" ###################################################################### ## End modules ## diff --combined man/amanda.conf.5 index bd2402b,b8b452e..2305f16 --- a/man/amanda.conf.5 +++ b/man/amanda.conf.5 @@@ -2,12 -2,12 +2,12 @@@ .\" Title: amanda.conf .\" Author: James da Silva .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 - .\" Date: 06/01/2010 + .\" Date: 10/18/2010 .\" Manual: File formats and conventions - .\" Source: Amanda 3.1.0 + .\" Source: Amanda 3.2.0 .\" Language: English .\" - .TH "AMANDA\&.CONF" "5" "06/01/2010" "Amanda 3\&.1\&.0" "File formats and conventions" + .TH "AMANDA\&.CONF" "5" "10/18/2010" "Amanda 3\&.2\&.0" "File formats and conventions" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@@ -46,7 -46,7 +46,7 @@@ are treated the same\&. Also, the chara \fBdevice_property\fR and \fBdevice\-property\fR - have the same meaning\&. + have the same meaning\&. This manpage uses the dashed versions, but the underscored versions will be accepted for backward compatibility .PP Identifiers are names which are defined in the configuration itself, such as dumptypes or interfaces\&. Identifiers are are case\-insensitive, but sensitive to \'\fB\-\fR\' vs\&. \'\fB_\fR\'\&. Identifiers should be quoted in the configuration file, although For historical reasons, the quotes are optional\&. .PP @@@ -67,7 -67,7 +67,7 @@@ tapetype "EXABYTE" # optiona define dumptype "dt" { # optional insensitive sensitive "dumptype\-common" # optional insensitive sensitive - strategy noincr # prohibited insensitive insensitive + strategy noinc # prohibited insensitive insensitive } .fi .SS "VALUE SUFFIXES" @@@ -322,9 -322,19 +322,19 @@@ days \fBtapecycle\fR \fIint\fR .RS 4 Default: - \fI15 tapes\fR\&. Typically tapes are used by Amanda in an ordered rotation\&. The + \fI15 tapes\fR\&. Specifies the number of "active" volumes \- volumes that Amanda will not overwrite\&. While Amanda is always willing to write to a new volume, it refuses to overwrite a volume unless at least \'\fBtapecycle\fR + \-1\' volumes have been written since\&. + .sp + It is considered good administrative practice to set the + \fBtapecycle\fR + parameter slightly lower than the actual number of tapes in use\&. This allows the administrator to more easily cope with damaged or misplaced tapes or schedule adjustments that call for slight adjustments in the rotation order\&. + .sp + Note: Amanda is commonly misconfigured with + \fBtapecycle\fR + equal to the number of tapes per + \fBdumpcycle\fR\&. In this misconfiguration, amanda may erase a full dump before a new one is completed\&. Recovery is then impossible\&. The \fBtapecycle\fR - parameter defines the size of that rotation\&. This parameter must be be larger than the number of tapes used in a dumpcycle\&. + must be at least one tape larger than the number of tapes per dumpcycle\&. .sp The number of tapes per dumpcycle is calculated by multiplying the number of \fBamdump\fR @@@ -337,31 -347,6 +347,6 @@@ runs per dump cycle) an (the number of tapes used per run)\&. Typically \fBtapecycle\fR is set to two or four times the tapes per dumpcycle\&. - .if n \{\ - .sp - .\} - .RS 4 - .it 1 an-trap - .nr an-no-space-flag 1 - .nr an-break-flag 1 - .br - .ps +1 - \fBNote\fR - .ps -1 - .br - Amanda is commonly misconfigured with \fBtapecycle\fR - equal to the number of tapes per \fBdumpcycle\fR\&. In this - misconfiguration, amanda may erase a full dump before a new one is completed, - the recovery is then impossible\&. tapecycle must be at least one tape larger - than the number of tapes per dumpcycle\&. - .sp .5v - .RE - While Amanda is always willing to use a new tape in its rotation, it refuses to reuse a tape until at least \'\fBtapecycle\fR - \-1\' number of other tapes have been used\&. - .sp - It is considered good administrative practice to set the - \fBtapecycle\fR - parameter slightly lower than the actual number of tapes in rotation\&. This allows the administrator to more easily cope with damaged or misplaced tapes or schedule adjustments that call for slight adjustments in the rotation order\&. .RE .PP \fBusetimestamps\fR \fIbool\fR @@@ -370,45 -355,48 +355,48 @@@ Default \fBYes\fR\&. This option allows Amanda to track multiple runs per calendar day\&. The only reason one might disable it is that Amanda versions before 2\&.5\&.1 can\'t read logfiles written when this option was enabled\&. .RE .PP - \fBlabel_new_tapes\fR \fIstring\fR + \fBlabel\-new\-tapes\fR \fIstring\fR .RS 4 Deprecated, use \fBautolabel\fR - option\&. + option with options + \fBvolume\-error empty\fR + to get equivalent behavior\&. .sp - Default: not set\&. When set, this directive will cause Amanda to automatically write an Amanda tape label to any blank tape she encounters\&. This option is DANGEROUS because when set, Amanda will ERASE any non\-Amanda tapes you may have, and may also ERASE any near\-failing tapes\&. Use with caution\&. - .sp - When using this directive, specify the template for new tape labels\&. The template should contain some number of contiguous \'%\' characters, which will be replaced with a generated number\&. Be sure to specify enough \'%\' characters that you do not run out of tape labels\&. Example: - \fBlabel_new_tapes "DailySet1\-%%%"\fR + Default: not set\&. When set, this directive will cause Amanda to automatically write an Amanda tape label to any blank tape she encounters\&. .RE .PP - \fBautolabel\fR \fIstring\fR [\fBany\fR] [\fBother_config\fR] [\fBnon_amanda\fR] [\fBvolume_error\fR] [\fBempty\fR] + \fBautolabel\fR \fIstring\fR [\fBany\fR] [\fBother\-config\fR] [\fBnon\-amanda\fR] [\fBvolume\-error\fR] [\fBempty\fR] .RS 4 Default: not set\&. When set, this directive will cause Amanda to automatically write an Amanda tape label to most volume she encounters\&. This option is DANGEROUS because when set, Amanda may erase near\-failing tapes or tapes accidentally loaded in the wrong slot\&. .sp When using this directive, specify the template for new tape labels\&. The template should contain some number of contiguous \'%\' characters, which will be replaced with a generated number\&. Be sure to specify enough \'%\' characters that you do not run out of tape labels\&. Example: \fBautolabel "DailySet1\-%%%" empty\fR + .sp + Note that many devices cannot distinguish an empty tape from an error condition, so it may is often necessary to include + \fBvolume\-error\fR + as an autolabel condition\&. .PP \fBany\fR .RS 4 - equivalent to \'\fBother_config non_amanda volume_error empty\fR\' + equivalent to \'\fBother\-config non\-amanda volume\-error empty\fR\' .RE .PP - \fBother_config\fR + \fBother\-config\fR .RS 4 Label volumes with a valid Amanda label that do not match our \fBlabelstr\fR\&. Danger: this may erase volumes from other Amanda configurations without warning! .RE .PP - \fBnon_amanda\fR + \fBnon\-amanda\fR .RS 4 Label volumes which do not start with data that resembles an Amanda header\&. Danger: this may erase volumes from other backup applications without warning! .RE .PP - \fBvolume_error\fR + \fBvolume\-error\fR .RS 4 Label volumes where an error occurs while trying to read the label\&. Danger: this may erase arbitrary volumes due to transient errors\&. @@@ -440,32 -428,18 +428,18 @@@ option\& \fBtapedev\fR \fIstring\fR .RS 4 Default: - \fI"null:"\fR\&. The device name, referencing the name of a "device" section in the configuration file\&. See - \fBamanda-devices\fR(7) - for more information on device names\&. - .sp - If a tape changer is configured (see the - \fBtpchanger\fR - option), this option might not be used\&. - .sp - If - \fBtapedev\fR - is - \fBnull:\fR, programs such as - \fBamdump\fR - will run normally but all images will be thrown away\&. This should only be used for debugging and testing, and probably only with the - \fBrecord\fR - option set to - \fIno\fR\&. + \fI"null:"\fR\&. This parameter can either specify a device (explicitly or by referencing a device definition \- see + \fBamanda-devices\fR(7)) or a tape changer (explicitly or by referencing a device definition \- see + \fBamanda-changers\fR(7))\&. .RE .PP - \fBdevice_property\fR \fIstring\fR \fIstring\fR + \fBdevice\-property\fR \fIstring\fR \fIstring\fR .RS 4 These options can set various device properties\&. See \fBamanda-devices\fR(7) for more information on device properties and their syntax\&. Both strings are always quoted; the first string contains the name of the property to set, and the second contains its value\&. For example, to set a fixed block size of 128k, write: .nf - device_property "BLOCK_SIZE" "128k" + device\-property "BLOCK_SIZE" "128k" .fi .RE .PP @@@ -478,10 -452,15 +452,15 @@@ keyword append the values to the list o .PP \fBtpchanger\fR \fIstring\fR .RS 4 - Default: not set\&. The name of the tape changer\&. If a tape changer is not configured, this option is not used and should be commented out of the configuration file\&. - .sp - If a tape changer is configured, choose one of the changer scripts (e\&.g\&. - \fBchg\-scsi\fR) and enter that here\&. + Default: not set\&. The tape changer to use\&. In most cases, only one of + \fBtpchanger\fR + or + \fBtapedev\fR + is specified, although for backward compatibility both may be specified if + \fBtpchanger\fR + gives the name of an old changer script\&. See + \fBamanda-changers\fR(7) + for more information on configuring changers\&. .RE .PP \fBchangerdev\fR \fIstring\fR @@@ -495,7 -474,7 +474,7 @@@ option\& \fBchangerfile\fR \fIstring\fR .RS 4 Default: - \fI"usr/adm/amanda/log/changer\-status"\fR\&. A tape changer configuration parameter\&. Usage depends on the particular changer defined with the + \fI"/usr/adm/amanda/log/changer\-status"\fR\&. A tape changer configuration parameter\&. Usage depends on the particular changer defined with the \fBtpchanger\fR option\&. .RE @@@ -508,14 -487,12 +487,12 @@@ Default If a tape changer is configured, this may be set larger than one to let Amanda write to more than one tape\&. .sp Note that this is an upper bound on the number of tapes, and Amanda may use less\&. - .sp - Also note that as of this release, Amanda does not support true tape overflow\&. When it reaches the end of one tape, the backup image Amanda was processing starts over again on the next tape\&. .RE .PP \fBmaxdumpsize\fR \fIint\fR .RS 4 Default: - \fI\fBruntapes\fR\fR\fI*\fR\fI\fBtape_length\fR\fR\&. Maximum number of bytes the planner will schedule for a run\&. + \fI\fBruntapes\fR\fR\fI*\fR\fI\fBtape\-length\fR\fR\&. Maximum number of bytes the planner will schedule for a run\&. .sp The default unit is Kbytes if it is not specified\&. .RE @@@ -556,6 -533,13 +533,13 @@@ Last in, first out\& .RE .RE .PP + \fBtaper\-parallel\-write\fR \fIint\fR + .RS 4 + .PP + Default: + \fI1\fR\&. Amanda can write simultaneously up to that number of volume at any given time\&. The changer must have as many drives\&. + .RE + .PP \fBlabelstr\fR \fIstring\fR .RS 4 Default: @@@ -608,13 -592,13 +592,13 @@@ will wait to get the dump size estimate will wait up to 40 minutes for that machine\&. A negative value will be interpreted as a total amount of time to wait per client instead of per disk\&. .RE .PP - \fBconnect_tries\fR \fIint\fR + \fBconnect\-tries\fR \fIint\fR .RS 4 Default: \fI3\fR\&. How many times the server will try a connection\&. .RE .PP - \fBreq_tries\fR \fIint\fR + \fBreq\-tries\fR \fIint\fR .RS 4 Default: \fI3\fR\&. How many times the server will resend a REQ packet if it doesn\'t get the ACK packet\&. @@@ -772,7 -756,7 +756,7 @@@ Default \fBtapelist\fR(5)\&. Amanda maintains this file with information about the active set of tapes\&. .RE .PP - \fBdevice_output_buffer_size\fR \fIint\fR + \fBdevice\-output\-buffer\-size\fR \fIint\fR .RS 4 Default: \fI1280k\fR\&. Controls the amount of memory used by Amanda to hold data as it is read from the network or disk before it is written to the output device\&. Higher values may be useful on fast tape drives and optical media\&. @@@ -784,7 -768,7 +768,7 @@@ The default unit is bytes if it is not .RS 4 Default: \fI20\fR\&. This option is deprecated; use the - \fBdevice_output_buffer_size\fR + \fBdevice\-output\-buffer\-size\fR directive instead\&. \fBtapebufs\fR works the same way, but the number specified is multiplied by the device blocksize prior to use\&. @@@ -802,21 -786,27 +786,27 @@@ Default \fBoff\fR\&. Whether an amdump run will flush the dumps from holding disk to tape\&. .RE .PP - \fBamrecover_do_fsf\fR \fIbool\fR + \fBamrecover\-do\-fsf\fR \fIbool\fR .RS 4 + Deprecated; amrecover always uses fsf, and does not invoke amrestore\&. + .sp Default: \fBon\fR\&. Amrecover will call amrestore with the \-f flag for faster positioning of the tape\&. .RE .PP - \fBamrecover_check_label\fR \fIbool\fR + \fBamrecover\-check\-label\fR \fIbool\fR .RS 4 + Deprecated; amrecover always checks the label, and does not invoke amrestore\&. + .sp Default: \fBon\fR\&. Amrecover will call amrestore with the \-l flag to check the label\&. .RE .PP - \fBamrecover_changer\fR \fIstring\fR + \fBamrecover\-changer\fR \fIstring\fR .RS 4 - Default: not set\&. Amrecover will use the changer if you use \'settape \' and that string is the same as the amrecover_changer setting\&. + Default: not set\&. Amrecover will use the changer if you use \'settape \' and that string is the same as the + \fBamrecover\-changer\fR + setting\&. .RE .PP \fBcolumnspec\fR \fIstring\fR @@@ -901,61 -891,61 +891,61 @@@ Default \fIno default\fR\&. The name of an Amanda configuration file to include within the current file\&. Useful for sharing dumptypes, tapetypes and interface definitions among several configurations\&. Relative pathnames are relative to the configuration directory\&. .RE .PP - \fBdebug_days\fR \fIint\fR + \fBdebug\-days\fR \fIint\fR .RS 4 Default: \fI3\fR\&. The number of days the debug files are kept\&. .RE .PP - \fBdebug_auth\fR \fIint\fR + \fBdebug\-auth\fR \fIint\fR .RS 4 Default: \fI0\fR\&. Debug level of the auth module .RE .PP - \fBdebug_event\fR \fIint\fR + \fBdebug\-event\fR \fIint\fR .RS 4 Default: \fI0\fR\&. Debug level of the event module .RE .PP - \fBdebug_holding\fR \fIint\fR + \fBdebug\-holding\fR \fIint\fR .RS 4 Default: \fI0\fR\&. Debug level of the holdingdisk module .RE .PP - \fBdebug_protocol\fR \fIint\fR + \fBdebug\-protocol\fR \fIint\fR .RS 4 Default: \fI0\fR\&. Debug level of the protocol module .RE .PP - \fBdebug_planner\fR \fIint\fR + \fBdebug\-planner\fR \fIint\fR .RS 4 Default: \fI0\fR\&. Debug level of the planner process .RE .PP - \fBdebug_driver\fR \fIint\fR + \fBdebug\-driver\fR \fIint\fR .RS 4 Default: \fI0\fR\&. Debug level of the driver process .RE .PP - \fBdebug_dumper\fR \fIint\fR + \fBdebug\-dumper\fR \fIint\fR .RS 4 Default: \fI0\fR\&. Debug level of the dumper process .RE .PP - \fBdebug_chunker\fR \fIint\fR + \fBdebug\-chunker\fR \fIint\fR .RS 4 Default: \fI0\fR\&. Debug level of the chunker process .RE .PP - \fBdebug_taper\fR \fIint\fR + \fBdebug\-taper\fR \fIint\fR .RS 4 Default: \fI0\fR\&. Debug level of the taper process @@@ -1036,6 -1026,21 +1026,21 @@@ Default: \-\-with\-low\-tcpportrange o Default: \-\-with\-tcpportrange or \fI1024,65535\fR\&. Unreserved tcp port that will be used (bsd, bsdudp)\&. Range is inclusive\&. .RE + .PP + \fBrecovery\-limit\fR [ \fIstring\fR | \fBsame\-host\fR ] + .RS 4 + Default: none (no limitations)\&. This parameter limits the hosts that may do remote recoveries\&. Hosts are identified by their authenticated peer name, as described in + \fBamanda-auth\fR(7); if this is not available and the recovery\-limit parameter is present, recovery will be denied\&. The arguments to the parameter are strings giving host match expressions (see + \fBamanda-match\fR(7)) or the special keyword same\-host, which requires an exact match to the hostname of the DLE being recovered\&. Specifying no arguments at all will disable all recoveries from any host\&. + .sp + Note that match expressions can be constructed to be forgiving of e\&.g\&., fully\-qualified vs\&. unqualified hostnames, but + \fBsame\-host\fR + requires an exact match\&. + .sp + The error messages that appear in amrecover are intentionally vague to avoid information leakage\&. Consult the amindexd debug log for more details on the reasons a recovery was rejected\&. + .sp + Recovery limits can be refined on a per\-DLE basis using the dumptype parameter of the same name\&. Note that the default value will apply to any dumpfiles for disks which no longer appear in the disklist; thus leaving the global parameter at its default value but setting it for all DLEs is not sufficient to maintain secure backups\&. + .RE .SH "HOLDINGDISK SECTION" .PP The @@@ -1132,19 -1137,19 +1137,19 @@@ Default for more detail\&. .RE .PP - \fBamandad_path\fR \fIstring\fR + \fBamandad\-path\fR \fIstring\fR .RS 4 Default: \fI"$libexec/amandad"\fR\&. Specify the amandad path of the client, only use with rsh/ssh authentification\&. .RE .PP - \fBclient_username\fR \fIstring\fR + \fBclient\-username\fR \fIstring\fR .RS 4 Default: \fICLIENT_LOGIN\fR\&. Specify the username to connect on the client, only use with rsh/ssh authentification\&. .RE .PP - \fBclient_port\fR [ \fIint\fR | \fIstring\fR ] + \fBclient\-port\fR [ \fIint\fR | \fIstring\fR ] .RS 4 Default: \fI"amanda"\fR\&. Specifies the port to connect to on the client\&. It can be a service name or a numeric port number\&. @@@ -1246,7 -1251,7 +1251,7 @@@ compress client bes compress client custom .RS 4 Specify - \fIclient_custom_compress\fR + \fBclient\-custom\-compress\fR "PROG" .sp PROG must not contain white space and it must accept \-d for uncompress\&. @@@ -1263,7 -1268,7 +1268,7 @@@ compress server bes compress server custom .RS 4 Specify - \fBserver_custom_compress\fR + \fBserver\-custom\-compress\fR "PROG" .sp PROG must not contain white space and it must accept \-d for uncompress\&. @@@ -1274,12 -1279,12 +1279,12 @@@ Note that some tape devices do compress option), Amanda (software) compression should be disabled\&. .RE .PP - \fBclient_custom_compress\fR \fIstring\fR + \fBclient\-custom\-compress\fR \fIstring\fR .RS 4 Default: none\&. The program to use to perform compression/decompression on the client; used with "compress client custom"\&. Must not contain whitespace\&. Must accept \-d to uncompress\&. .RE .PP - \fBserver_custom_compress\fR \fIstring\fR + \fBserver\-custom\-compress\fR \fIstring\fR .RS 4 Default: none\&. The program to use to perform compression/decompression on the server; used with "compress server custom"\&. Must not contain whitespace\&. Must accept \-d to uncompress\&. .RE @@@ -1304,11 -1309,11 +1309,11 @@@ encrypt non .PP encrypt client .RS 4 - Specify client_encrypt "PROG" + Specify client\-encrypt "PROG" .sp PROG must not contain white space\&. .sp - Specify client_decrypt_option "decryption\-parameter" Default: "\-d" + Specify client\-decrypt\-option "decryption\-parameter" Default: "\-d" .sp decryption\-parameter must not contain white space\&. .sp @@@ -1317,11 -1322,11 +1322,11 @@@ .PP encrypt server .RS 4 - Specify server_encrypt "PROG" + Specify server\-encrypt "PROG" .sp PROG must not contain white space\&. .sp - Specify server_decrypt_option "decryption\-parameter" Default: "\-d" + Specify server\-decrypt\-option "decryption\-parameter" Default: "\-d" .sp decryption\-parameter must not contain white space\&. .sp @@@ -1335,24 -1340,24 +1340,24 @@@ which is a wrapper o is provided as a reference symmetric encryption program\&. .RE .PP - \fBclient_encrypt\fR \fIstring\fR + \fBclient\-encrypt\fR \fIstring\fR .RS 4 Default: none\&. The program to use to perform encryption/decryption on the client; used with "encrypt client"\&. Must not contain whitespace\&. .RE .PP - \fBclient_decrypt_option\fR \fIstring\fR + \fBclient\-decrypt\-option\fR \fIstring\fR .RS 4 - Default: \-d\&. The option that can be passed to client_encrypt to make it decrypt instead\&. Must not contain whitespace\&. + Default: \-d\&. The option that can be passed to client\-encrypt to make it decrypt instead\&. Must not contain whitespace\&. .RE .PP - \fBserver_encrypt\fR \fIstring\fR + \fBserver\-encrypt\fR \fIstring\fR .RS 4 Default: none\&. The program to use to perform encryption/decryption on the server; used with "encrypt server"\&. Must not contain whitespace\&. .RE .PP - \fBserver_decrypt_option\fR \fIstring\fR + \fBserver\-decrypt\-option\fR \fIstring\fR .RS 4 - Default: \-d\&. The option that can be passed to server_encrypt to make it decrypt instead\&. Must not contain whitespace\&. + Default: \-d\&. The option that can be passed to server\-encrypt to make it decrypt instead\&. Must not contain whitespace\&. .RE .PP \fBestimate\fR [ \fBclient\fR | \fBcalcsize\fR | \fBserver\fR ]+ @@@ -1608,8 -1613,8 +1613,8 @@@ keyword append the values to the list o \fBrecord\fR \fIboolean\fR .RS 4 Default: -\fByes\fR\&. Whether to ask the backup program to update its database (e\&.g\&. -/etc/dumpdates +\fIyes\fR\&. Whether to ask the backup program to update its database (e\&.g\&. +/var/lib/dumpdates for DUMP or /usr/local/var/amanda/gnutar\-lists for GNUTAR) of time stamps\&. This is normally enabled for daily backups and turned off for periodic archival runs\&. @@@ -1635,7 -1640,7 +1640,7 @@@ an has scheduled an incremental backup, these disks will be skipped\&. .RE .PP - \fBssh_keys\fR \fIstring\fR + \fBssh\-keys\fR \fIstring\fR .RS 4 Default: not set\&. The key file the ssh auth will use, it must be the private key\&. If this parameter is not specified, then the default ssh key will be used\&. .RE @@@ -1681,24 -1686,40 +1686,40 @@@ should be used to tell Amanda that a fu .RE .RE .PP - \fBtape_splitsize\fR \fIint\fR + \fBallow\-split\fR \fIbool\fR .RS 4 - Default: not set\&. Split dump file on tape into pieces of a specified size\&. This allows dumps to be spread across multiple tapes, and can potentially make more efficient use of tape space\&. Note that if this value is too large (more than half the size of the average dump being split), substantial tape space can be wasted\&. If too small, large dumps will be split into innumerable tiny dumpfiles, adding to restoration complexity\&. A good rule of thumb, usually, is 1/10 of the size of your tape\&. + Default: true\&. If true, then dumps with this dumptype can be split on the storage media\&. If false, then the dump will be written in a single file on the media\&. See "Dump Splitting Configuration" below\&. + .RE + .PP + \fBtape\-splitsize\fR \fIint\fR + .RS 4 + Deprecated\&. See "Dump Splitting Configuration" below\&. .sp - The default unit is Kbytes if it is not specified\&. + Default: not set\&. Split dump file on tape into pieces of a specified size\&. The default unit is Kbytes if it is not specified\&. .RE .PP - \fBsplit_diskbuffer\fR \fIstring\fR + \fBsplit\-diskbuffer\fR \fIstring\fR .RS 4 + .PP + Deprecated\&. See "Dump Splitting Configuration" below\&. Default: not set\&. When dumping a split dump in PORT\-WRITE mode (usually meaning "no holding disk"), buffer the split chunks to a file in the directory specified by this option\&. .RE .PP - \fBfallback_splitsize\fR \fIint\fR + \fBfallback\-splitsize\fR \fIint\fR .RS 4 - Default: - \fI10M\fR\&. When dumping a split dump in PORT\-WRITE mode, if no split_diskbuffer is specified (or if we somehow fail to use our split_diskbuffer), we must buffer split chunks in memory\&. This specifies the maximum size split chunks can be in this scenario, and thus the maximum amount of memory consumed for in\-memory splitting\&. The size of this buffer can be changed from its (very conservative) default to a value reflecting the amount of memory that each taper process on the dump server may reasonably consume\&. + Deprecated\&. See "Dump Splitting Configuration" below\&. .sp - The default unit is Kbytes if it is not specified\&. + Default: + \fI10M\fR\&. This specifies the part size used when no + \fBsplit\-diskbuffer\fR + is specified, or when it is too small or does not exist, and thus the maximum amount of memory consumed for in\-memory splitting\&. The default unit is Kbytes if it is not specified\&. + .RE + .PP + \fBrecovery\-limit\fR [ \fBsame\-host\fR | \fIstring\fR ]* + .RS 4 + Default: global value\&. This parameter overrides the global + \fBrecovery\-limit\fR + parameter for DLEs of this dumptype\&. .RE .PP The following @@@ -1829,6 -1850,30 +1850,30 @@@ How much data will be read in each tap The default unit is Kbytes if it is not specified\&. .RE .PP + \fBpart\-size\fR \fIint\fR + .RS 4 + Default: none\&. This is the size (in KB if no units are specified) of each split part written to the volume\&. It is reduced to + \fBpart\-cache\-max\-size\fR + when part caching is required\&. If this is set to zero, then no splitting will take place; in this case, some devices can span dumps from volume to volume, while others will cause the entire dump to fail if they encounter end\-of\-medium before the dump is complete\&. See "Dump Splitting Configuration" below\&. + .RE + .PP + \fBpart\-cache\-type\fR [ \fBnone\fR | \fBdisk\fR | \fBmemory\fR ] + .RS 4 + Default: none\&. When part caching is required, this parameter specifies the type of caching that will be used\&. The options include no caching (\fBnone\fR), in which case a failed part will cause the entire dump to fail; on\-disk caching (\fBdisk\fR), for which + \fBpart\-cache\-dir\fR + must be set properly; and in\-memory caching (\fBmemory\fR), which on most systems severely restrains the size of the part that can be written\&. See "Dump Splitting Configuration" below\&. + .RE + .PP + \fBpart\-cache\-dir\fR \fIstring\fR + .RS 4 + Default: none\&. The directory in which part\-cache files can be written when caching on disk\&. See "Dump Splitting Configuration" below\&. + .RE + .PP + \fBpart\-cache\-max\-size\fR \fIint\fR + .RS 4 + Default: none\&. The maximum part size to use when caching is in effect\&. This is used to limit the part size when disk or memory space for caching is constrained\&. This value must be greater than zero\&. + .RE + .PP \fBspeed\fR \fIint\fR .RS 4 Default: @@@ -1848,7 -1893,7 +1893,7 @@@ man page for more information\& .PP In addition to options, another \fBtapetype\fR - name may be supplie as an identifier, which makes this + name may be supplied as an identifier, which makes this \fBtapetype\fR inherit options from another \fBtapetype\fR\&. For instance, the only difference between a DLT4000 tape drive using Compact\-III tapes and one using Compact\-IV tapes is the length of the tape\&. So they could be entered as: @@@ -1989,13 -2034,13 +2034,13 @@@ Default \fI5000\fR\&. Scripts are executed in that order, it is useful if you have many scripts and they must be executed in a spefific order\&. .RE .PP - \fBexecute_where\fR [ \fBclient\fR | \fBserver\fR ] + \fBexecute\-where\fR [ \fBclient\fR | \fBserver\fR ] .RS 4 Default: \fBclient\fR\&. Where the script must be executed, on the client or server\&. .RE .PP - \fB>execute_on\fR \fIexecute_on\fR [,\fIexecute_on\fR]* + \fBexecute\-on\fR \fIexecute_on\fR [,\fIexecute_on\fR]* .RS 4 No default\&. When the script must be executed, you can specify many of them: .PP @@@ -2098,7 -2143,7 +2143,7 @@@ script \-\-post\-recove .fi .RE .PP - \fBproperty\fR> [\fBappend\fR] [\fBpriority\fR] \fIstring\fR \fIstring\fR+ + \fBproperty\fR [\fBappend\fR] [\fBpriority\fR] \fIstring\fR \fIstring\fR+ .RS 4 No default\&. You can set property for the script, each script have a different set of property\&. Both strings are quoted; the first string contains the name of the property to set, and the others contains its values\&. \fBappend\fR @@@ -2115,7 -2160,7 +2160,7 @@@ in the form of "device" sections, whic define device \fIname\fR { commend "\fIcomment (optional)\fR" tapedev "\fIdevice\-specifier\fR" - device_property "\fIprop\-name\fR" "\fIprop\-value\fR" + device\-property "\fIprop\-name\fR" "\fIprop\-value\fR" \&.\&.\&. } .fi @@@ -2133,7 -2178,7 +2178,7 @@@ specifies the device name to use; se parmeter is optional and only for the user\'s convenience\&. .PP An arbitrary number of - \fIdevice_property\fR + \fIdevice\-property\fR parameters can be specified\&. Again, see \fBamanda-devices\fR(7) for information on device properties\&. @@@ -2160,6 -2205,34 +2205,34 @@@ is the user\-specified name of this dev See \fBamanda-changers\fR(7) for more information on configuring changers\&. + .SH "DUMP SPLITTING CONFIGURATION" + .PP + Amanda can "split" dumps into parts while writing them to storage media\&. This allows Amanda to recover gracefully from a failure while writing a part to a volume, by simply selecting a new volume and re\-writing the dump from the beginning of the failed part\&. Parts also allow Amanda to seek directly to the required data, although this functionality is not yet used\&. + .PP + In order to support re\-writing from the beginning of a failed part, Amanda must have access to the contents of the part after it has been partially written\&. If the dump is being read from holding disk, then the part contents are availble there\&. Otherwise, the part must be cached, and this can be done memory or on disk\&. In either of the latter cases, the cache must have enough space to hold an entire part\&. + .PP + Because it is common for a single Amanda configuration to use both holding\-disk (FILE\-WRITE) and direct (known as PORT\-WRITE) dumps, Amanda allows the configuration of different split sizes for the two cases\&. This allows, for example, for a part size appropriate to large tapes when performing FILE\-WRITE dumps, with a part size limited by available disk or memory when performing PORT\-WRITE dumps\&. + .PP + Selecting a proper split size is a delicate matter\&. If the parts are too large, substantial storage space may be wasted in failed parts\&. If too small, large dumps will be split into innumerable tiny dumpfiles, adding to restoration complexity; furthermore, an excess of filemarks will cause slower tape drive operation and reduce the usable space on tape\&. A good rule of thumb is 1/10 of the size of a volume of storage media\&. + .PP + In versions of Amanda through 3\&.1\&.*, splitting was controlled by the dumptype parameters + \fBtape\-splitsize\fR, + \fBsplit\-diskbuffer\fR, and + \fBfallback\-splitsize\fR\&. These keywords had confusing and non\-intuitive interactions, and have since been deprecated\&. + .PP + If the deprecated keywords are not present, subsequent versions of Amanda use the dumptype parameter + \fBallow\-split\fR + to control whether a DLE can be split, and the + \fItapetype\fR + parameters + \fBpart\-size\fR, + \fBpart\-cache\-type\fR, + \fBpart\-cache\-dir\fR, and + \fBpart\-cache\-max\-size\fR\&. The + \fBpart\-size\fR + specifies the "normal" part size, while the + \fBpart\-cache\-*\fR + parameters describe how to behave when caching is required (on PORT\-WRITE)\&. Full details on these parameters are given above\&. .SH "SEE ALSO" .PP \fBamanda\fR(8), diff --combined man/disklist.5 index b59c573,349d7da..f2bab78 --- a/man/disklist.5 +++ b/man/disklist.5 @@@ -2,12 -2,12 +2,12 @@@ .\" Title: disklist .\" Author: James da Silva .\" Generator: DocBook XSL Stylesheets vsnapshot_8273 - .\" Date: 06/01/2010 + .\" Date: 10/18/2010 .\" Manual: File formats and conventions - .\" Source: Amanda 3.1.0 + .\" Source: Amanda 3.2.0 .\" Language: English .\" - .TH "DISKLIST" "5" "06/01/2010" "Amanda 3\&.1\&.0" "File formats and conventions" + .TH "DISKLIST" "5" "10/18/2010" "Amanda 3\&.2\&.0" "File formats and conventions" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@@ -89,7 -89,7 +89,7 @@@ defined in th \fBamanda\&.conf\fR file\&. \fIDumptype\fRs specify backup related parameters, such as whether to compress the backups, whether to record backup results in -/etc/dumpdates, the disk\'s relative priority, etc\&. +/var/lib/dumpdates, the disk\'s relative priority, etc\&. .RE .PP \fIspindle\fR diff --combined man/entities/global.entities.in index 0c76083,d55b6e8..47f6059 --- a/man/entities/global.entities.in +++ b/man/entities/global.entities.in @@@ -78,7 -78,7 +78,7 @@@ '> configoption'> + ' configoption'> @@@ -98,7 -98,7 +98,7 @@@ '> -/etc/dumpdates'> +/var/lib/dumpdates'> amadmin'> diff --combined man/xml-source/amanda.conf.5.xml index 7d4fda6,179722e..079dd60 --- a/man/xml-source/amanda.conf.5.xml +++ b/man/xml-source/amanda.conf.5.xml @@@ -56,21 -56,18 +56,18 @@@ The remainder of the line is ignored.MailTo are treated the same. Also, the characters - '-' - and - '_' + '-' and '_' are interchangeable in all predefined Amanda keywords: device_property and device-property - have the same meaning. + have the same meaning. This manpage uses the dashed versions, but the + underscored versions will be accepted for backward compatibility Identifiers are names which are defined in the configuration itself, such as dumptypes or interfaces. Identifiers are are case-insensitive, but sensitive to - '-' - vs. - '_'. + '-' vs. '_'. Identifiers should be quoted in the configuration file, although For historical reasons, the quotes are optional. @@@ -91,7 -88,7 +88,7 @@@ tapetype "EXABYTE" # optiona define dumptype "dt" { # optional insensitive sensitive "dumptype-common" # optional insensitive sensitive - strategy noincr # prohibited insensitive insensitive + strategy noinc # prohibited insensitive insensitive } @@@ -395,9 -392,25 +392,25 @@@ days Default: 15 tapes. - Typically tapes are used by Amanda in an ordered rotation. The tapecycle parameter - defines the size of that rotation. This parameter must be be larger than the number of tapes - used in a dumpcycle. + + Specifies the number of "active" volumes - volumes that Amanda will not + overwrite. While Amanda is always willing to write to a new volume, it refuses + to overwrite a volume unless at least 'tapecycle -1' + volumes have been written since. + + It is considered good administrative practice to set the + tapecycle parameter slightly lower than the actual + number of tapes in use. This allows the administrator to more easily cope + with damaged or misplaced tapes or schedule adjustments that call for + slight adjustments in the rotation order. + + Note: Amanda is commonly misconfigured with tapecycle + equal to the number of tapes per dumpcycle. In this + misconfiguration, amanda may erase a full dump before a new one is + completed. Recovery is then impossible. The + tapecycle must be at least one tape larger than the + number of tapes per dumpcycle. + The number of tapes per dumpcycle is calculated by multiplying the number of &amdump; runs per dump cycle runspercycle (the @@@ -406,21 -419,6 +419,6 @@@ remap='B'>runtapes (the numb tapecycle is set to two or four times the tapes per dumpcycle. - Amanda is commonly misconfigured with tapecycle - equal to the number of tapes per dumpcycle. In this - misconfiguration, amanda may erase a full dump before a new one is completed, - the recovery is then impossible. tapecycle must be at least one tape larger - than the number of tapes per dumpcycle. - - - While Amanda is always willing to use a new tape in its rotation, it refuses to reuse a tape until at - least 'tapecycle -1' number of other tapes have been used. - - - It is considered good administrative practice to set the tapecycle parameter - slightly lower than the actual number of tapes in rotation. This allows the administrator to more easily cope - with damaged or misplaced tapes or schedule adjustments that call for slight adjustments in the rotation order. - @@@ -437,22 -435,13 +435,13 @@@ can't read logfiles written when this o - label_new_tapes + label-new-tapes string - Deprecated, use autolabel option. + Deprecated, use autolabel option with options volume-error empty to get equivalent behavior. Default: not set. When set, this directive will cause Amanda to automatically write an Amanda - tape label to any blank tape she encounters. This option is DANGEROUS - because when set, Amanda will ERASE any non-Amanda tapes you may have, and may - also ERASE any near-failing tapes. Use with caution. - When using this directive, specify the template for new tape - labels. The template should contain some number of contiguous '%' - characters, which will be replaced with a generated number. Be sure to - specify enough '%' characters that you do not run out of tape labels. - Example: - label_new_tapes "DailySet1-%%%" - + tape label to any blank tape she encounters. @@@ -460,9 -449,9 +449,9 @@@ autolabel string [any] - [other_config] - [non_amanda] - [volume_error] + [other-config] + [non-amanda] + [volume-error] [empty] Default: not set. @@@ -477,28 -466,31 +466,31 @@@ specify enough '%' characters that you Example: autolabel "DailySet1-%%%" empty + Note that many devices cannot distinguish an empty tape from an error + condition, so it may is often necessary to include + volume-error as an autolabel condition. any - equivalent to 'other_config non_amanda volume_error empty' + equivalent to 'other-config non-amanda volume-error empty' - other_config + other-config Label volumes with a valid Amanda label that do not match our labelstr. Danger: this may erase volumes from other Amanda configurations without warning! - non_amanda + non-amanda Label volumes which do not start with data that resembles an Amanda header. Danger: this may erase volumes from other backup applications without warning! - volume_error + volume-error Label volumes where an error occurs while trying to read the label. Danger: this may erase arbitrary volumes due to transient errors. @@@ -542,30 -534,14 +534,14 @@@ option. Default: "null:". - The device name, referencing the name of a "device" section in the configuration file. See - - for more information on device names. + This parameter can either specify a device (explicitly or by referencing a device definition - see ) + or a tape changer (explicitly or by referencing a device definition - see ). - If a tape changer is configured - (see the - tpchanger - option), this option might not be used. - - If tapedev is - null:, - programs such as - &amdump; - will run normally but all images will be thrown away. - This should only be used for debugging and testing, - and probably only with the - record - option set to - no. - device_property string string + device-property string string These options can set various device properties. See @@@ -574,7 -550,7 +550,7 @@@ Both strings are always quoted; the fir the property to set, and the second contains its value. For example, to set a fixed block size of 128k, write: - device_property "BLOCK_SIZE" "128k" + device-property "BLOCK_SIZE" "128k" @@@ -595,13 -571,12 +571,12 @@@ the property to set, and the others con tpchanger string - Default: not set. - The name of the tape changer. - If a tape changer is not configured, this option is not used - and should be commented out of the configuration file. - If a tape changer is configured, choose one of the changer scripts - (e.g. chg-scsi) - and enter that here. + Default: not set. The tape changer to use. In most cases, only one of + tpchanger or tapedev is + specified, although for backward compatibility both may be specified if + tpchanger gives the name of an old changer script. + See for more information on + configuring changers. @@@ -620,7 -595,7 +595,7 @@@ option.changerfile string Default: - "usr/adm/amanda/log/changer-status". + "/usr/adm/amanda/log/changer-status". A tape changer configuration parameter. Usage depends on the particular changer defined with the tpchanger @@@ -639,9 -614,6 +614,6 @@@ and should be commented out of the conf let Amanda write to more than one tape. Note that this is an upper bound on the number of tapes, and Amanda may use less. - Also note that as of this release, Amanda does not support true tape overflow. - When it reaches the end of one tape, - the backup image Amanda was processing starts over again on the next tape. @@@ -649,7 -621,7 +621,7 @@@ maxdumpsize int Default: - runtapes*tape_length. + runtapes*tape-length. Maximum number of bytes the planner will schedule for a run. The default unit is Kbytes if it is not specified. @@@ -703,6 -675,14 +675,14 @@@ The algorithm used to choose which dum + taper-parallel-write int + + + Default: 1. + Amanda can write simultaneously up to that number of volume at any given + time. The changer must have as many drives. + + labelstr string Default: @@@ -778,7 -758,7 +758,7 @@@ per client instead of per disk. - connect_tries int + connect-tries int Default: 3. @@@ -787,7 -767,7 +767,7 @@@ How many times the server will try a co - req_tries int + req-tries int Default: 3. @@@ -1023,7 -1003,7 +1003,7 @@@ Amanda maintains this file with informa - device_output_buffer_size int + device-output-buffer-size int Default: 1280k. @@@ -1040,7 -1020,7 +1020,7 @@@ useful on fast tape drives and optical Default: 20. This option is deprecated; use - the device_output_buffer_size directive + the device-output-buffer-size directive instead. tapebufs works the same way, but the number specified is multiplied by the device blocksize prior to use. @@@ -1068,27 -1048,29 +1048,29 @@@ Whether an amdump run will flush the du - amrecover_do_fsf bool + amrecover-do-fsf bool + Deprecated; amrecover always uses fsf, and does not invoke amrestore. Default: on. Amrecover will call amrestore with the -f flag for faster positioning of the tape. - amrecover_check_label bool + amrecover-check-label bool + Deprecated; amrecover always checks the label, and does not invoke amrestore. Default: on. Amrecover will call amrestore with the -l flag to check the label. - amrecover_changer string + amrecover-changer string Default: not set. Amrecover will use the changer if you use 'settape <string>' and that string - is the same as the amrecover_changer setting. + is the same as the amrecover-changer setting. @@@ -1159,7 -1141,7 +1141,7 @@@ Relative pathnames are relative to the - debug_days int + debug-days int Default: 3. @@@ -1168,7 -1150,7 +1150,7 @@@ The number of days the debug files are - debug_auth int + debug-auth int Default: 0. @@@ -1177,7 -1159,7 +1159,7 @@@ Debug level of the auth module - debug_event int + debug-event int Default: 0. @@@ -1186,7 -1168,7 +1168,7 @@@ Debug level of the event module - debug_holding int + debug-holding int Default: 0. @@@ -1195,7 -1177,7 +1177,7 @@@ Debug level of the holdingdisk module - debug_protocol int + debug-protocol int Default: 0. @@@ -1204,7 -1186,7 +1186,7 @@@ Debug level of the protocol module - debug_planner int + debug-planner int Default: 0. @@@ -1213,7 -1195,7 +1195,7 @@@ Debug level of the planner process - debug_driver int + debug-driver int Default: 0. @@@ -1222,7 -1204,7 +1204,7 @@@ Debug level of the driver process - debug_dumper int + debug-dumper int Default: 0. @@@ -1231,7 -1213,7 +1213,7 @@@ Debug level of the dumper process - debug_chunker int + debug-chunker int Default: 0. @@@ -1240,7 -1222,7 +1222,7 @@@ Debug level of the chunker process - debug_taper int + debug-taper int Default: 0. @@@ -1357,6 -1339,36 +1339,36 @@@ Range is inclusive. + + recovery-limit [ string | same-host ] + + Default: none (no limitations). This parameter limits the hosts + that may do remote recoveries. Hosts are identified by their authenticated + peer name, as described in ; if this is + not available and the recovery-limit parameter is present, recovery will be + denied. The arguments to the parameter are strings giving host match + expressions (see ) or the special + keyword same-host, which requires an exact match to the hostname of the + DLE being recovered. Specifying no arguments at all will disable all + recoveries from any host. + + Note that match expressions can be constructed to be + forgiving of e.g., fully-qualified vs. unqualified hostnames, but + same-host requires an exact match. + + The error messages that appear in amrecover are intentionally vague to + avoid information leakage. Consult the amindexd debug log for more details + on the reasons a recovery was rejected. + + Recovery limits can be refined on a per-DLE basis using the dumptype + parameter of the same name. Note that the default value will apply to any + dumpfiles for disks which no longer appear in the disklist; thus leaving the + global parameter at its default value but setting it for all DLEs is not + sufficient to maintain secure backups. + + + + @@@ -1490,7 -1502,7 +1502,7 @@@ Type of authorization to perform betwee - amandad_path string + amandad-path string Default: "$libexec/amandad". @@@ -1500,7 -1512,7 +1512,7 @@@ Specify the amandad path of the client - client_username string + client-username string Default: CLIENT_LOGIN. @@@ -1510,7 -1522,7 +1522,7 @@@ Specify the username to connect on the - client_port [ int | string ] + client-port [ int | string ] Default: "amanda". @@@ -1653,7 -1665,7 +1665,7 @@@ to use your own compression method. (Se compress client custom - Specify client_custom_compress "PROG" + Specify client-custom-compress "PROG" PROG must not contain white space and it must accept -d for uncompress. @@@ -1666,7 -1678,7 +1678,7 @@@ compress server custom - Specify server_custom_compress "PROG" + Specify server-custom-compress "PROG" PROG must not contain white space and it must accept -d for uncompress. @@@ -1678,7 -1690,7 +1690,7 @@@ or mt op - client_custom_compress string + client-custom-compress string Default: none. The program to use to perform compression/decompression on the client; used with @@@ -1687,7 -1699,7 +1699,7 @@@ - server_custom_compress string + server-custom-compress string Default: none. The program to use to perform compression/decompression on the server; used with @@@ -1722,9 -1734,9 +1734,9 @@@ server host as it goes from the networ encrypt client - Specify client_encrypt "PROG" + Specify client-encrypt "PROG" PROG must not contain white space. - Specify client_decrypt_option "decryption-parameter" Default: "-d" + Specify client-decrypt-option "decryption-parameter" Default: "-d" decryption-parameter must not contain white space. (See dumptype client-encrypt-nocomp in example/amanda.conf for reference) @@@ -1732,9 -1744,9 +1744,9 @@@ encrypt server - Specify server_encrypt "PROG" + Specify server-encrypt "PROG" PROG must not contain white space. - Specify server_decrypt_option "decryption-parameter" Default: "-d" + Specify server-decrypt-option "decryption-parameter" Default: "-d" decryption-parameter must not contain white space. (See dumptype server-encrypt-fast in example/amanda.conf for reference) @@@ -1750,7 -1762,7 +1762,7 @@@ client-encryption AND server-compressio - client_encrypt string + client-encrypt string Default: none. The program to use to perform encryption/decryption on the client; used with @@@ -1759,16 -1771,16 +1771,16 @@@ - client_decrypt_option string + client-decrypt-option string Default: -d. - The option that can be passed to client_encrypt to make it decrypt instead. + The option that can be passed to client-encrypt to make it decrypt instead. Must not contain whitespace. - server_encrypt string + server-encrypt string Default: none. The program to use to perform encryption/decryption on the server; used with @@@ -1777,10 -1789,10 +1789,10 @@@ - server_decrypt_option string + server-decrypt-option string Default: -d. - The option that can be passed to server_encrypt to make it decrypt instead. + The option that can be passed to server-encrypt to make it decrypt instead. Must not contain whitespace. @@@ -2073,8 -2085,8 +2085,8 @@@ the property to set, and the others con record boolean Default: -yes. -Whether to ask the backup program to update its database (e.g. /etc/dumpdates +yes. +Whether to ask the backup program to update its database (e.g. /var/lib/dumpdates for DUMP or /usr/local/var/amanda/gnutar-lists for GNUTAR) of time stamps. This is normally enabled for daily backups and turned off for periodic archival runs. @@@ -2098,7 -2110,7 +2110,7 @@@ level 1 incrementals in this configurat - ssh_keys string + ssh-keys string Default: not set. The key file the ssh auth will use, it must be the private key. If this parameter is not specified, then the default ssh key will be used. @@@ -2159,23 -2171,28 +2171,28 @@@ The value should be hh*100+mm, e.g. 6:3 - tape_splitsize int + allow-split bool + + Default: true. + If true, then dumps with this dumptype can be split on the storage media. If false, then + the dump will be written in a single file on the media. See "Dump Splitting Configuration" + below. + + + + + tape-splitsize int + Deprecated. See "Dump Splitting Configuration" below. Default: not set. Split dump file on tape into pieces of a specified size. - This allows dumps to be spread across multiple tapes, and can potentially - make more efficient use of tape space. - Note that if this value is too large (more than half the size of the - average dump being split), substantial tape space can be wasted. - If too small, large dumps will be split into innumerable tiny dumpfiles, - adding to restoration complexity. - A good rule of thumb, usually, is 1/10 of the size of your tape. - The default unit is Kbytes if it is not specified. + The default unit is Kbytes if it is not specified. - split_diskbuffer string + split-diskbuffer string + Deprecated. See "Dump Splitting Configuration" below. Default: not set. When dumping a split dump in PORT-WRITE mode (usually meaning "no holding disk"), buffer the split chunks to a file in the directory specified by this option. @@@ -2184,20 -2201,26 +2201,26 @@@ - fallback_splitsize int + fallback-splitsize int + Deprecated. See "Dump Splitting Configuration" below. Default: 10M. - When dumping a split dump in PORT-WRITE mode, if no split_diskbuffer is - specified (or if we somehow fail to use our split_diskbuffer), we must - buffer split chunks in memory. - This specifies the maximum size split chunks can be in this scenario, + This specifies the part size used when no split-diskbuffer is specified, or when it is too small or does not exist, and thus the maximum amount of memory consumed for in-memory splitting. - The size of this buffer can be changed from its (very conservative) default - to a value reflecting the amount of memory that each taper process on - the dump server may reasonably consume. - - The default unit is Kbytes if it is not specified. + The default unit is Kbytes if it is not specified. + + + + + recovery-limit + [ same-host | string ]* + + + Default: global value. This parameter overrides the global + recovery-limit parameter for DLEs of this + dumptype. + @@@ -2348,6 -2371,52 +2371,52 @@@ tape devices + + part-size int + + Default: none. This is the size (in KB if no units are specified) of + each split part written to the volume. It is reduced to + part-cache-max-size when part caching is required. + If this is set to zero, then no splitting will take place; in this case, + some devices can span dumps from volume to volume, while others will cause + the entire dump to fail if they encounter end-of-medium before the dump is + complete. See "Dump Splitting Configuration" below. + + + + + part-cache-type [ none | disk | memory ] + + Default: none. When part caching is required, this parameter specifies + the type of caching that will be used. The options include no caching + (none), in which case a failed part will cause the + entire dump to fail; on-disk caching (disk), for + which part-cache-dir must be set properly; and + in-memory caching (memory), which on most systems + severely restrains the size of the part that can be written. See "Dump + Splitting Configuration" below. + + + + + part-cache-dir string + + Default: none. + The directory in which part-cache files can be written when caching on disk. + See "Dump Splitting Configuration" below. + + + + + part-cache-max-size int + + Default: none. + The maximum part size to use when caching is in effect. This is used to limit + the part size when disk or memory space for caching is constrained. This value + must be greater than zero. + + + speed int @@@ -2374,7 -2443,7 +2443,7 @@@ man page for more information.In addition to options, another tapetype - name may be supplie as an identifier, which makes this + name may be supplied as an identifier, which makes this tapetype inherit options from another tapetype. @@@ -2547,13 -2616,13 +2616,13 @@@ A comment string describing this script - execute_where [ client | server ] + execute-where [ client | server ] Default: client. Where the script must be executed, on the client or server. - >execute_on execute_on [,execute_on]* + execute-on execute_on [,execute_on]* No default. When the script must be executed, you can specify many of them: @@@ -2676,7 -2745,7 +2745,7 @@@ script --post-recove - property> [append] [priority] string string+ + property [append] [priority] string string+ No default. You can set property for the script, each script have a different set of property. Both strings are quoted; the first string contains the name of the property to set, and the others contains its values. @@@ -2697,7 -2766,7 +2766,7 @@@ in the form of "device" sections, whic define device name { commend "comment (optional)" tapedev "device-specifier" - device_property "prop-name" "prop-value" + device-property "prop-name" "prop-value" ... } @@@ -2712,7 -2781,7 +2781,7 @@@ As with most sections, the An arbitrary number of device_property parameters can be specified. + remap='I'>device-property parameters can be specified. Again, see for information on device properties. @@@ -2743,6 -2812,60 +2812,60 @@@ device. The remaining parameters are sp + Dump Splitting Configuration + + Amanda can "split" dumps into parts while writing them to storage + media. This allows Amanda to recover gracefully from a failure while + writing a part to a volume, by simply selecting a new volume and + re-writing the dump from the beginning of the failed part. Parts also + allow Amanda to seek directly to the required data, although this + functionality is not yet used. + + In order to support re-writing from the beginning of a failed part, + Amanda must have access to the contents of the part after it has been + partially written. If the dump is being read from holding disk, then + the part contents are availble there. Otherwise, the part must be + cached, and this can be done memory or on disk. In either of the + latter cases, the cache must have enough space to hold an entire + part. + + Because it is common for a single Amanda configuration to use both + holding-disk (FILE-WRITE) and direct (known as PORT-WRITE) dumps, Amanda + allows the configuration of different split sizes for the two cases. This + allows, for example, for a part size appropriate to large tapes when + performing FILE-WRITE dumps, with a part size limited by available disk + or memory when performing PORT-WRITE dumps. + + Selecting a proper split size is a delicate matter. If the parts are + too large, substantial storage space may be wasted in failed parts. If + too small, large dumps will be split into innumerable tiny dumpfiles, + adding to restoration complexity; furthermore, an excess of filemarks + will cause slower tape drive operation and reduce the usable space on + tape. A good rule of thumb is 1/10 of the size of a volume of storage + media. + + In versions of Amanda through 3.1.*, splitting was controlled by the + dumptype parameters tape-splitsize, + split-diskbuffer, and + fallback-splitsize. These keywords had + confusing and non-intuitive interactions, and have since been + deprecated. + + If the deprecated keywords are not present, subsequent versions + of Amanda use the dumptype parameter + allow-split to control whether a DLE can be + split, and the tapetype parameters + part-size, + part-cache-type, + part-cache-dir, and + part-cache-max-size. The + part-size specifies the "normal" part size, + while the part-cache-* parameters describe + how to behave when caching is required (on PORT-WRITE). Full + details on these parameters are given above. + + + , , diff --combined server-src/diskfile.h index 0666097,5797a18..298ba67 --- a/server-src/diskfile.h +++ b/server-src/diskfile.h @@@ -34,6 -34,7 +34,7 @@@ #include "amanda.h" #include "conffile.h" + #include "fileheader.h" #include "amfeatures.h" typedef struct netif_s { @@@ -67,6 -68,7 +68,7 @@@ typedef struct disk_s char *name; /* label name for disk */ char *device; /* device name for disk, eg "sd0g" */ char *dtype_name; /* name of dump type */ + dumptype_t *config; /* pointer to the dumptype config */ char *program; /* dump program, eg DUMP, STAR, GNUTAR */ char *srvcompprog; /* custom compression server filter */ char *clntcompprog; /* custom compression client filter */ @@@ -83,9 -85,11 +85,11 @@@ int exclude_optional; /* exclude list are optional */ int include_optional; /* include list are optional */ int priority; /* priority of disk */ - off_t tape_splitsize; /* size of dumpfile chunks on tape */ - char *split_diskbuffer; /* place where we can buffer PORT-WRITE dumps other than RAM */ - off_t fallback_splitsize; /* size for in-RAM PORT-WRITE buffers */ + int allow_split; + off_t splitsize; + off_t tape_splitsize; /* size of dumpfile chunks on tape */ + char *split_diskbuffer; /* place where we can buffer PORT-WRITE dumps other than RAM */ + off_t fallback_splitsize; /* size for in-RAM PORT-WRITE buffers */ int dumpcycle; /* days between fulls */ long frequency; /* XXX - not used */ char *auth; /* type of authentication (per disk) */ @@@ -106,7 -110,7 +110,7 @@@ char *clnt_decrypt_opt; /* client-side decryption option parameter to use */ double comprate[2]; /* default compression rates */ /* flag options */ - int record; /* record dump in /etc/dumpdates ? */ + int record; /* record dump in /var/lib/dumpdates ? */ int skip_incr; /* incs done externally ? */ int skip_full; /* fulls done externally ? */ int to_holdingdisk; /* use holding disk ? */ @@@ -170,6 -174,7 +174,7 @@@ char *xml_scripts(identlist_t pp_script void disable_skip_disk(disklist_t *origqp); char *match_disklist(disklist_t *origqp, int sargc, char **sargv); + gboolean match_dumpfile(dumpfile_t *file, int sargc, char **sargv); void free_disklist(disklist_t *dl); netif_t *disklist_netifs(void);