4 4 3 Beefalo:Managing EOL
When configuring SEP sesam environment, you set up media pools and define the retention time. Media pool retention time is specified in days and defines how long the backed up data on media remains protected after the data is written to the medium. The retention time period starts with the date a saveset is written to the medium (at the end time of the first backup) and thus defines the expiration date of the saveset (saveset EOL). When the protection expires, SEP sesam can re-use the media for backups again. This is the basic principle and the simplest scenario.
However, to ensure restorability of the complete backup chain and to protect from data loss, SEP sesam provides dependency-based retention strategy performed by automated EOL adjustment.
What is dependency-based retention
For example, INCR backups require all previous savesets (FULL, DIFF and INCR) to be available for a successful restore. If the retention time is viewed only from the perspective of an individual backup, it can ensure restorability of data for this particular backup only. But to enable the complete restoration of data that was backed up in the backup chain, all dependent backup savesets must be tracked and their retention time must be managed according to their dependencies.
For example, INCR backup that was taken as the third INCR after the FULL, requires the FULL, the first, the second, and the third INCR to provide complete restore capability. If some saveset in the backup chain is missing, you will not be able to recover your data to a specific point in time. For this reason, SEP sesam maintains control over dependencies among the individual backup savesets and provides dependency-based automated retention.
SEP sesam also allows you to manually adjust EOL. You can adjust:
- saveset EOL
- You can change the expiration date of any individual saveset that is stored in the data store, see saveset EOL.
- backup EOL
- You can change the expiration date for all backup-related savesets. Unlike saveset EOL, which is applied individually to each selected saveset, changing the backup EOL always affects all dependent backup versions that are part of the same backup, see backup EOL.
- tape media EOL
- Some special rules apply to tape media since the expiration date of the tape corresponds to the maximum retention time (the longest EOL) identified on the tape, see tape media EOL.
Retention behavior and different EOL parameters
Typically, you specify a media pool retention time (in days) when creating a media pool. This retention time serves as a basis to determine EOL for backed up data. The retention time period starts with the creation date a saveset is written to the medium and defines the expiration date (EOL) after which the saveset may be deleted. For example, a media pool retention time is 30 days and the data is backed up to the medium on the 1st of January, therefore the saveset EOL is 31st of January. Note that in previous versions (v. ≤ Beefalo) this retention time parameter was called media pool EOL. As the use of this term was misleading, it was removed in Beefalo V2 and replaced with retention time.
|EOL refers only to backups and related migrated and replicated savesets. SEP sesam logs, readability check logs, calendar sheet entries and restore tasks have separate retention parameters. For details, see retention periods.|
The EOL property can be managed for three object types:
This is the expiration date for each saveset. If a saveset is a part of a backup chain, its EOL follows the rules of dependency-based retention; EOL of a previous saveset in the chain must be the same or longer to enable the complete restoration of data.
For example, you specify a media pool retention parameter to 30 days and run a FULL backup. This FULL saveset will initially be kept for 30 days, for example, to the 31st of January. If any following INCR or DIFF saveset in the chain has longer EOL, for example, its expiration date is the 3rd of February, the EOL of all preceding savesets, including the FULL, will be adjusted to the longer expiration date. For details on dependency-based automated retention, see automated EOL adjustment. For details on manually adjusting EOL, see manual EOL adjustment.
This is the expiration date for all data that belongs to the same backup. Backup EOL is determined based on the longest EOL of all savesets that belong to the same backup, including migrated and replicated savesets. For example, adjusting backup EOL of a particular saveset from the 3rd of February to the to 3rd of March results in changed EOL for all related backup data, i.e., original backup, migrated backup, replicated backup, as well as for all backups in a backup chain, if a saveset with adjusted backup EOL is a part of it. For details on dependency-based automated retention, see automated EOL adjustment. For details on manually adjusting EOL, see manual EOL adjustment.
|How SEP sesam manages failed backups depends on its version. In v. ≥ 4.4.3 Beefalo V2, SEP sesam keeps the failed backup according to media pool retention time together with the last successful backup or migration saveset. This is the default backup retention behavior and can be changed by modifying EOL-related keys, as shown in section Customizing retention policy. These keys may not be supported in earlier versions, where failed backups were automatically deleted after 3 days.|
Tape media EOL
When a saveset is stored on tape, each stored saveset has its own saveset EOL, but this does not represent the actual expiration date of the tape. Its expiration date corresponds to the maximum retention time (the longest EOL) identified on tape. Only when all savesets on tape have expired and the tape is not locked (write-protected) is the entire tape eligible for re-use. For details on how manually extending EOL affects EOL of the tape media, see Manually extending EOL.
What happens when EOL is reached
Once a saveset's end of life is reached, its protection expires. The storage space of an expired saveset is not used immediately; SEP sesam uses the GET_OLDEST policy to preserve the data on the media for the longest possible time. The expired saveset can be re-used if the following conditions are met:
- As a rule, there must be no other savesets that depend on this saveset. For details, see how SEP sesam handles EOL-related backup chain dependencies. You can override this condition by explicitly allowing the expiration date (EOL) of the whole backup chain to expire, thus deleting the backup data on all related savesets.
- If a saveset is stored on tape, the EOL of all stored savesets must have expired.
- The media must not be write-protected (locked).
- SEP sesam Server automatically assigns the medium with the oldest EOL for re-use. The oldest medium is a medium with the oldest locked until (is backup day+ retention time) date in the media pool.
|If the saveset resides on tape media, the tape will not be re-used until all savesets on it have expired. Tape media EOL always corresponds to the maximum retention time (the longest EOL) identified on the tape. More precisely, a tape media EOL is the maximum EOL of all savesets stored on the tape. Only when the retention time of all savesets on tape has expired and the tape is no longer locked (write-protected) can the tape be re-used. Note that the tape media EOL may also depend on savesets that are not stored on this tape. This is when the tape contains savesets that refer to FULL/DIFF/INCR savesets stored on other media or even data stores.|
Automated EOL adjustment
In some cases, SEP sesam automatically adjusts EOL to retain the consistency of backed up data and ensures successful restore. Every time EOL is modified, the corresponding information is shown in the main log.
When a new INCR or DIFF backup is run or an INCR or DIFF backup is migrated, SEP sesam automatically adjusts EOL of all related savesets in order to retain the backup data and keep the backup chain readily available for restore. In some special cases, SEP sesam also automatically increases the EOL of the whole FDI backup chain, thus preventing the backup chains from being orphaned. See below sections for details.
Increased EOL of a DIFF or INCR saveset
If the EOL parameter of a DIFF or INCR saveset is increased, SEP sesam will increase EOL of all dependent backups (FULL and other DIFF and INCR). This way SEP sesam ensures that EOL for the FULL backup and other related DIFF and INCR is not shorter than the potentially modified DIFF or INCR saveset's EOL.
Decreased EOL of a DIFF or INCR saveset
If EOL of a DIFF or INCR saveset is decreased, SEP sesam will decrease EOL of all dependent backups (FULL and other DIFF and INCR). If you use the Expire function to delete the unneeded saveset(s) or backup set(s), SEP sesam will issue a warning message, prompting you to confirm your decision to expire the entire backup chain.
|Expiring the DIFF or INCR saveset(s) results in purging and overwriting the complete backup chain!|
Too short EOL of DIFF/INC savesets
If DIFF/INCR backup detects that a saveset belonging to a FDI chain has too short EOL, then any consecutive DIFF/INCR backup that is running on a pool with longer retention time will increase the EOL of the saveset from the respective pool.
|If EOL of a saveset belonging to a FDI chain has already expired, it will not be extended. In this case, the DIFF/INCR backup will be executed as a FULL backup.|
- The backup chain has the following retention specified: FULL on pool MONTH (retention time:32), DIFF on pool WEEK (retention time:15) and INCR on pool DAY (retention time:7). EOL of such FDI chain is sufficient, therefore EOL is not modified.
Allow extending retention time of another media pool for migrated savesets
Typically, a chain of backup savesets is migrated to one target media pool. You may want to migrate savesets of one backup chain (FULL/DIFF/INCR) to different media pools. There are two ways to change the retention time of migration savesets.
- You can enable extended retention time for migration by using a specific GLBV: 'gv_adjust_eol_migration_increases_eol_on_other_pool'.
- You can enable migration to increase EOL of the referenced savesets on other media pools (not only on the target media pool) by adding (or modifying) the following key in global settings in GUI:
- In the menu bar, click Configuration -> Defaults -> Settings.
- Click [+] to add the following key to global settings (or modify the key value, if it already exists): eol_adjust_migration_on_other_pool|1|sesam
where value=1 means that the key is active and sesam is the user name. For more details about EOL-related keys, see section Customizing retention policy.
Last successful backup or migration is automatically retained
SEP sesam automatically retains the last successful backup or migration saveset when the next backup/migration fails. By extending the EOL of the previous successful backup/migration, SEP sesam ensures that at least one successful backup is retained. This behavior is enabled by default and can be changed by setting the values of the respective keys, eol_adjust_failed_backup and eol_adjust_failed_migration, to 0, as shown in section Customizing retention policy.
COPY backup fails
If a COPY backup fails, the EOL of the last successful or with warnings COPY backup is increased to the currently calculated EOL (creation date of the failed backup + media pool retention time).
- COPY backup in pool MONTH (retention time: 32) fails. SEP sesam checks for previous successful COPY backup in the same pool and increases its EOL, unless the backup EOL is not sufficient, e.g., a migrated saveset exists in the pool YEAR (retention time: 375).
FULL backup fails
If a FULL backup fails, the EOL of the last successful or with warnings FULL/DIFF/INCR backup is increased to the currently calculated EOL (creation date of the failed backup + media pool retention time).
- FULL backup in the pool MONTH (retention time: 32) fails. SEP sesam checks for previous successful or with warnings FDI backup chain in the same pool and increases the EOL of the entire chain (FULL/DIFF/INCR backups), unless the backup EOL is not sufficient, e.g., a migrated FULL saveset already exists in the pool YEAR (retention time: 375).
Manual EOL adjustment
It is not recommended to manually adjust EOL. This will override the EOL that was defined by the retention time (in days) in the media pool configuration and was started on the date when a saveset is being written to the media. The following options should be used for special cases and exceptions, for example, to allow premature deletion of an individual saveset or to increase the retention time of a particular backup chain that is to be stored longer than specified by the current EOL.
- You can modify saveset EOL for each individual saveset that is stored in a data store or on tape media. The saveset EOL parameter is available under several views in GUI, e.g., whenever a task with the savesets is displayed (Job State -> Backups -> double-click a backup task -> Properties -> Saveset EOL, right-click to extend or expire), and under all media-related views, e.g., in the Media, Media Pools and Data Stores properties -> Saveset tab -> Saveset EOL. You can extend or shorten the saveset's retention time by setting the exact expiration date (saveset EOL) in the GUI calendar or directly expire (as of ≥ 4.4.3 Beefalo V2) the saveset by clicking the Expire -> Saveset EOL button. If the adjusted saveset is part of a backup chain, the whole chain might be affected.
- Additionally, there is also the backup EOL parameter. This is the expiration date for all data belonging to the same backup, including migrated and replicated savesets. You can check and modify the backup EOL parameter by setting the exact expiration date for it by using the calendar function or directly expire (as of ≥ 4.4.3 Beefalo V2) the backup by clicking the Expire -> Backup EOL button. Expiring a backup affects all data belonging to the same backup (entire backup chain), including migrated and replicated savesets.
For details, see the section how SEP sesam handles EOL-related backup chain dependencies.
Backup EOL can be found in the Savesets properties that are available under several views in GUI, e.g., whenever a task with the savesets is displayed (Job State -> Backups -> double-click a backup task -> Properties -> Backup EOL) and under all media-related views, e.g., in the Media, Media Pools and Data Stores properties -> Saveset tab -> Backup EOL.
|As of ≥ 4.4.3 Beefalo V2, you can simply right-click the selected saveset for which you want to modify EOL, for example, in all Media-related views, and then select to either extend EOL or to expire the saveset (individual EOL) or backup (EOL of the entire backup set). But be careful with the expire function as the expired backups are irrevocably lost!|
Manually reducing EOL
Note that reducing EOL may result in potential data loss due to the inability to restore from a backup.
- If you are reducing backup EOL, it is adjusted only for the savesets with EOL longer than the newly given EOL, while the savesets with shorter EOL are not affected (their EOL remains unchanged). As of ≥ 4.4.3 Beefalo V2, you cannot set the expiration date to a time in the past (the minimum allowed date is the current date). However, you can expire backup sets that you no longer need by using the right-click Expire function in any of the views showing the Savesets tab/properties -> Backup EOL -> Expire. Expiring backup EOL terminates the selected backup and all related savesets based on the same backup, including migrated and replicated savesets. This means that all dependent saveset versions that are part of the expired backup are deleted during the next purge.
- If you are reducing saveset EOL, the new expiration date is set immediately for the selected individual saveset. As of ≥ 4.4.3 Beefalo V2, you cannot set the expiration date to a time in the past (the minimum allowed date is the current date). However, you can expire any individual saveset(s) you no longer need by using the right-click Expire function in any of the views showing the Savesets tab/properties -> Saveset EOL -> Expire. In contrast to the backup EOL approach, expiring saveset EOL only terminates the selected saveset(s) (that is/are deleted with the next purge) unless the saveset(s) is/are part of a backup chain; in the latter case, the entire backup chain is affected as described in Managing EOL-related backup chain dependencies.
Manually extending EOL
Extending EOL can be used for special cases, such as increasing the retention time of a particular backup data that has also been migrated and is stored on different media pools. How SEP sesam manages extending EOL depends on its version.
- If you are extending the backup EOL (expiration date), the EOL is adjusted only for the saveset that already has the longest EOL, while EOL of other backups is not affected. This behavior has changed compared to the previous versions, where extended backup EOL resulted in extended EOL for all savesets based on the same backup, i.e., original backup, migrated backup, replicated backup, as well as for all backups in a backup chain, if a saveset with adjusted backup EOL was part of it. For details, see Manually extending EOL in versions 4.4.3-4.4.3 Grolar.
- If you are extending the saveset EOL (expiration date) and one of the savesets is part of an FDI backup chain, then the EOL of the previous savesets in the chain will also be increased.
Customizing retention policy
The default backup retention behavior can be changed by inserting or modifying EOL-related keys in the global settings in GUI: SEP sesam menu bar, click Configuration -> Defaults -> Settings. These keys may not be supported in earlier SEP sesam versions, for details check Managing EOL in versions 4.4.3-4.4.3 Grolar.
To change the retention policy, you can add or modify the following options.
|EOL-related key||Value||Description||Available from version||Note|
|Allow extending retention time of another media pool for migrated savesets||4.4.3 Beefalo|
|Automatic retention of the last successful backup saveset||18.104.22.168 Tigon V2|
|Automatic retention of the last successful migration saveset||22.214.171.124 Tigon V2|
|eol_for_failed_backups||0 (use media pool retention time)
> 0 (specify the retention time in days, e.g., 3)
|Adjust the retention time (in days) for failed backups||4.4.3 Beefalo V2||
By default, the backup retention policy (retention time of media pool) is applied equally to successful and failed backups. A failed backup is retained for the number of days specified by the retention time of media pool. If you want to free up space on the storage repository and shorten the number of days for retaining failed backups, specify the desired length of the retention for failed backups in days. For example, 3 means that SEP sesam will automatically delete all failed backups after 3 days. 0 (default) means that all failed backups are retained according to the media pool retention time.
|eol_for_failed_not_file_system_backups||0 (use media pool retention time)
> 0 (specify the retention time in days, e.g., 3)
|Adjust the retention time (in days) for all non-filesystem (non-Path) type backups, e.g., SAP Hana, Exchange Server, VMware vSphere etc.||4.4.3 Beefalo V2||The only difference with the previous parameter (eol_for_failed_backups, see above) is that you can specify the desired length of the retention specifically for all non-filesystem (non-Path) type backups. For example, 3 means that SEP sesam will automatically delete all failed non-filesystem backups after 3 days. 0 (default) means that all failed non-filesystem backups are retained according to the eol_for_failed_backups parameter if set to > 0, or according to media pool retention time if none of the eol_for_failed... parameters is set (value 0).|
The screenshot shows the Defaults -> Settings table with the EOL-related paramaters.
Checking backup chain dependencies
You can use the saveset tree view in GUI to determine dependencies and EOL of an FDI backup chain. You should use this overview before you manually change the EOL parameter to avoid breaking the backup chain.
|Checking the saveset tree summary will provide instant information about the location and status of the available savesets for restore. By checking the summary, e.g., availability 5, you can search for savesets that are not readily available, and then migrate them to enable mount and selective restore.|
The saveset tree displays details about a saveset together with potential dependent savesets that belong to the same backup chain. The saveset details are read-only. By providing an overview of the backup chain, you gain insight into the recoverability of backups.
You can open the saveset tree view by double-clicking the selected backup in the backup list:
- From Main Selection -> Job State -> Backups or from Main Selection -> Monitoring -> Last Backup State, double-click the selected backup.
- In the backup task properties window, open the tab Savesets.
The saveset tree displays all savesets that belong to the same backup chain with the following details:
- SEP sesam unique identification assigned to a saveset.
- The time when the backup was started.
- The backup level used for the saveset: F (FULL), D (DIFF), I (INCR) or C (COPY).
More detailed information displayed for each saveset:
- The media pool to which the saveset belongs.
- The time when the saveset's protection expires. For details, see section EOL-related backup chain dependencies.
- The priority number, based on the location of the savesets. It is useful for identifying savesets that are readily available for restore. For example, a saveset in the media pool DAY (data store) is migrated to another pool DeDup and then migrated to tape. The tape will have the lowest avail/priority because it is not readily available for restore. Check also the Availability in the Status at the end of the tree view, which is calculated from the avail of all displayed savesets. See below Availability for details.
- Explains the above avail – availability of individual savesets for restore. The following information shows the relation between the location and avail/prio. Priority is assigned numerically, where 1 is the lowest priority and 6 (or 7 if called with a specific pool) is the highest.
TAPE_SINGLE = 0 TAPE_NOT_IN_LOADER = 1 DISK_OFFLINE = 2 TAPE_ONLINE = 3 DISK_HARD = 4 DISK_STORE_CLONE = 5 DISK_STORE = 6 REQUESTED_POOL = 7 (shown if called with a specific pool, e.g., all savesets on the pool DAY and the saveset_tree was called with the target pool DAY)
- Displays the name of the drive group related to the saveset's media pool.
- The number of the drive that was used for backup.
- Displays an internal identification of a saveset (a media pool name and a 5-digit number), a potential barcode, prio (numerical representation of availability, see above item), and comment.
- Displays the summary of the savesets availability – status, availability message and a numeric representation. For example, as soon as 1 saveset is migrated to another pool and deleted from the original pool, availability is lowered.