AIR (Auto Image Replication) replication of images between source and target domains is managed via Storage Lifecycle Policies (SLPs).
Once a backup image is replicated from the source domain to the target domain, the NetBackup image database (on the target domain) needs to be updated. This update occurs by way of an automatic import job.
In some circumstances (disaster recovery where catalog recovery is not possible, migrating a storage pool to a new master, etc) a NetBackup administrator may decide to do a manual import (using the bpimport command) of one or more NetBackup images. Extreme caution should be used in this scenario as a manual import removes an image from SLP control, and any subsequent duplications that would have been automatically managed by the SLP would instead need to be done manually.
Manually importing the image will also have an affect on image retention/expiration and, depending on the retention levels configured on the target master server, could result in the image expiring sooner than the customer originally intended.
An SLP manages the complete lifecycle of an image, including the expiration of that image. When under SLP control, images will have an infinite retention period until all of the steps in that SLP have been completed. This is a designed safeguard that prevents the image from being expired before the import or duplication has taken place.
However, manually importing an image removes it from SLP control, so the "infinite retention until complete" safeguard against image expiration will no longer be present.
What happens when an image is manually imported via bpimport:
Doing a manual phase 1 import of an image will set the default retention for that image to 7 days. If a phase 2 import of that image is not done within 7 days, the image will be expired from the NetBackup image catalog during automatic image cleanup. Another phase 1 import of that image would be required in order to access it.
A phase 2 import in the target domain will assign the same retention level to the imported image as the retention level that was used for that image in the source domain. Once a phase 2 import has been completed, the retention/expiration clock starts ticking for that image; it will expire once the retention time/date has been reached. This expiration may occur sooner than the retention that the customer had configured within the SLP that was originally managing that image.
The expiration date of a phase 2 imported image will be calculated via the following formula:
(completion time of the phase 2 import) + (target domain's retention period defined for the retention level of the source copy)
An SLP is configured to back up data on a source MSDP server and replicate it using AIR to a target MSDP server. Once the image is replicated, the SLP is configured to start a duplication of the image to tape.
The retention levels are set as follows within the SLP:
- source backup image, configured with retention level 0, with a retention period of 3 days
- remote copy1: image replicated from the source domain and then automatically imported and set to retention level 1, with a retention period of 30 days
- remote copy2: image duplicated to tape and set to retention level 2, with a retention period of 1 year
- NOTE: in this example, the two domains have a slightly different configuration for "retention level 0." In the source domain, retention level 0 has a 3 day retention period, but in the target domain retention level 0 has a 6 day retention period.
Under normal operation, upon completing the source backup, the SLP would automatically initiate a replication to the target domain. Once that replication is complete, an automatic import of that image to the target domain would be completed. Then the final duplication to tape would be created. Once the final copy to tape has been created, the source backup image would expire within 3 days, the target replicated image would expire within 30 days and the copy on tape would expire within 1 year. If there are any issues with any of the stages within the SLP, the source backup image will retain its infinite retention level until the SLP has completed.
But instead, consider the hypothetical scenario where the replication between domains was successful, but the automatic import on the target master has failed (and not retried) for some reason. The NetBackup administrator may decide to do the import manually - as mentioned above a manual import of this hypothetical image means that image is no longer under SLP control. In this scenario, the manual import may complete successfully, but NetBackup will not automatically make the last duplication to tape and the imported image in the target domain will only have a 6 day retention period. (because the source image was written with retention level 0, and in the target domain retention level 0 corresponds with a 6 day retention period)
The NetBackup administrator is in a situation where, if a manual duplication to tape is not completed within 6 days, the image will have expired on the source and target servers, leaving the environment without any copy of the image after only 6 days.
On the target domain, at the completion of each import phase, a bpimagelist command shows the lack of SLP information for an image like so:
# bpimagelist -backupid <backupid> -L
Storage Lifecycle Policy Version: 0
It is strongly recommended NOT to execute manual imports of SLP-managed AIR replicated images. If a manual import seems necessary because of some sort of failure with any step of the AIR replication (replication, import, duplication) then that failure should be investigated and corrected rather than resorting to manual intervention.
In those situations where a manual import is necessary, as soon as that import has completed, any image with a fragment number -2147482648 should be set to an infinite retention time to prevent premature expiration and allow enough time to complete any further duplications of the image. Adjusting image retention is easily done using the bpexpdate -recalculate command:
# bpexpdate -recalculate -backupid <backupid> -d infinity
To find the impacted images use the following command:
# bpimagelist -media <imported disk media id> -l
Find the backup id for any images with a fragment number -2147482648:
IMAGE clientXYZ 0 0 10 clientXYX_1359043134 p1 0 *NULL* root full 0 1 1359043134 12 1360252734 0 0 9218 12 1 3 0 p1_1359043134_FULL.f *NULL* *NULL* 0 1 0 0 0 *NULL* 0 0 0 0 0 0 0 *NULL* 0 0 0 *NULL* 29 0 0 2412 0 0 *NULL* simple_air 2 0 0 0 *NULL* *NULL* 0 1 0 0
HISTO 0 0 0 0 0 0 0 0 0 0
FRAG 1 -2147482648 1 324 0 0 0 @aaaab clientXYZ.yourcompany.com 262144 0 0 -1 256 1;PureDisk;clientXYZ.yourcompany.com;pdpool;PureDiskVolume;0 1360252734 0 65537 0 0 0 6 1360252734 1359043146 1 1 *NULL* *NULL* 0 0
FRAG 1 -1 2 364 0 0 0 @aaaab clientXYZ.yourcompany.com 262144 0 0 -1 128 1;PureDisk;clientXYZ.yourcompany.com;pdpool;PureDiskVolume;0 1360252734 0 65537 0 0 0 6 1360252734 1359043146 1 1 *NULL* *NULL* 0 0
FRAG 1 1 9216 0 0 0 0 @aaaab clientXYZ.yourcompany.com 262144 0 0 -1 4 1;PureDisk;clientXYZ.yourcompany.com;pdpool;PureDiskVolume;0 1360252734 0 65537 0 0 0 6 1360252734 1359043146 1 1 *NULL* *NULL* 0 0
Note: This is only necessary in the target master server domain. You can determine this by identifying which master server is protecting the client listed in the image output above. If it is the local master server, you need not perform this step.