Chapter 5. Recovering from data loss with IdM backups
Chapter 5. Recovering from data loss with IdM backups You can use the ipa-restore utility to restore an IdM server to a state captured in an IdM backup. 5.1. When to restore from an IdM backup You can respond to several disaster scenarios by restoring from an IdM backup: Undesirable changes were made to the LDAP content : Entries were modified or deleted, replication carried out those changes throughout the deployment, and you want to revert those changes. Restoring a data-only backup returns the LDAP entries to the state without affecting the IdM configuration itself. Total Infrastructure Loss, or loss of all CA instances : If a disaster damages all Certificate Authority replicas, the deployment has lost the ability to rebuild itself by deploying additional servers. In this situation, restore a backup of a CA Replica and build new replicas from it. An upgrade on an isolated server failed : The operating system remains functional, but the IdM data is corrupted, which is why you want to restore the IdM system to a known good state. Red Hat recommends working with Technical Support to diagnose and troubleshoot the issue. If those efforts fail, restore from a full-server backup. Important The preferred solution for hardware or upgrade failure is to rebuild the lost server from a replica. For more information, see Recovering a single server with replication . 5.2. Considerations when restoring from an IdM backup If you have a backup created with the ipa-backup utility, you can restore your IdM server or the LDAP content to the state they were in when the backup was performed. The following are the key considerations while restoring from an IdM backup: You can only restore a backup on a server that matches the configuration of the server where the backup was originally created. The server must have: The same hostname The same IP address The same version of IdM software If one IdM server among many is restored, the restored server becomes the only source of information for IdM. All other servers must be re-initialized from the restored server. Since any data created after the last backup will be lost, do not use the backup and restore solution for normal system maintenance. If a server is lost, Red Hat recommends rebuilding the server by reinstalling it as a replica, instead of restoring from a backup. Creating a new replica preserves data from the current working environment. For more information, see Preparing for server loss with replication . The backup and restore features can only be managed from the command line and are not available in the IdM web UI. You cannot restore from backup files located in the /tmp or /var/tmp directories. The IdM Directory Server uses a PrivateTmp directory and cannot access the /tmp or /var/tmp directories commonly available to the operating system. Tip Restoring from a backup requires the same software (RPM) versions on the target host as were installed when the backup was performed. Due to this, Red Hat recommends restoring from a Virtual Machine snapshot rather than a backup. For more information, see Recovering from data loss with VM snapshots . 5.3. Restoring an IdM server from a backup Restore an IdM server, or its LDAP data, from an IdM backup. Figure 5.1. Replication topology used in this example Table 5.1. Server naming conventions used in this example Server host name Function server1.example.com The server that needs to be restored from backup. caReplica2.example.com A Certificate Authority (CA) replica connected to the server1.example.com host. replica3.example.com A replica connected to the caReplica2.example.com host. Prerequisites You have generated a full-server or data-only backup of the IdM server with the ipa-backup utility. See Creating a backup . Your backup files are not in the /tmp or /var/tmp directories. Before performing a full-server restore from a full-server backup, uninstall IdM from the server and reinstall IdM using the same server configuration as before. Procedure Use the ipa-restore utility to restore a full-server or data-only backup. If the backup directory is in the default /var/lib/ipa/backup/ location, enter only the name of the directory: If the backup directory is not in the default location, enter its full path: Note The ipa-restore utility automatically detects the type of backup that the directory contains, and performs the same type of restore by default. To perform a data-only restore from a full-server backup, add the --data option to the ipa-restore command: Enter the Directory Manager password. Enter yes to confirm overwriting current data with the backup. The ipa-restore utility disables replication on all servers that are available: The utility then stops IdM services, restores the backup, and restarts the services: Re-initialize all replicas connected to the restored server: List all replication topology segments for the domain suffix, taking note of topology segments involving the restored server. Re-initialize the domain suffix for all topology segments with the restored server. In this example, perform a re-initialization of caReplica2 with data from server1 . Moving on to Certificate Authority data, list all replication topology segments for the ca suffix. Re-initialize all CA replicas connected to the restored server. In this example, perform a csreplica re-initialization of caReplica2 with data from server1 . Continue moving outward through the replication topology, re-initializing successive replicas, until all servers have been updated with the data from restored server server1.example.com . In this example, we only have to re-initialize the domain suffix on replica3 with the data from caReplica2 : Clear SSSD's cache on every server to avoid authentication problems due to invalid data: Stop the SSSD service: Remove all cached content from SSSD: Start the SSSD service: Reboot the server. Additional resources The ipa-restore (1) man page also covers in detail how to handle complex replication scenarios during restoration. 5.4. Restoring from an encrypted backup This procedure restores an IdM server from an encrypted IdM backup. The ipa-restore utility automatically detects if an IdM backup is encrypted and restores it using the GPG2 root keyring. Prerequisites A GPG-encrypted IdM backup. See Creating encrypted IdM backups . The LDAP Directory Manager password The passphrase used when creating the GPG key Procedure If you used a custom keyring location when creating the GPG2 keys, verify that the USDGNUPGHOME environment variable is set to that directory. See Creating a GPG2 key . Provide the ipa-restore utility with the backup directory location. Enter the Directory Manager password. Enter the passphrase you used when creating the GPG key. Re-initialize all replicas connected to the restored server. See Restoring an IdM server from backup .
ipa-restore ipa-full-2020-01-14-12-02-32 ipa-restore /mybackups/ipa-data-2020-02-01-05-30-00 ipa-restore --data ipa-full-2020-01-14-12-02-32 Directory Manager (existing master) password: Preparing restore from /var/lib/ipa/backup/ipa-full-2020-01-14-12-02-32 on server1.example.com Performing FULL restore from FULL backup Temporary setting umask to 022 Restoring data will overwrite existing live data. Continue to restore? [no]: yes Each master will individually need to be re-initialized or re-created from this one. The replication agreements on masters running IPA 3.1 or earlier will need to be manually re-enabled. See the man page for details. Disabling all replication. Disabling replication agreement on server1.example.com to caReplica2.example.com Disabling CA replication agreement on server1.example.com to caReplica2.example.com Disabling replication agreement on caReplica2.example.com to server1.example.com Disabling replication agreement on caReplica2.example.com to replica3.example.com Disabling CA replication agreement on caReplica2.example.com to server1.example.com Disabling replication agreement on replica3.example.com to caReplica2.example.com Stopping IPA services Systemwide CA database updated. Restoring files Systemwide CA database updated. Restoring from userRoot in EXAMPLE-COM Restoring from ipaca in EXAMPLE-COM Restarting GSS-proxy Starting IPA services Restarting SSSD Restarting oddjobd Restoring umask to 18 The ipa-restore command was successful ipa topologysegment-find domain ------------------ 2 segments matched ------------------ Segment name: server1.example.com-to-caReplica2.example.com Left node: server1.example.com Right node: caReplica2.example.com Connectivity: both Segment name: caReplica2.example.com-to-replica3.example.com Left node: caReplica2.example.com Right node: replica3.example.com Connectivity: both ---------------------------- Number of entries returned 2 ---------------------------- ipa-replica-manage re-initialize --from= server1.example.com Update in progress, 2 seconds elapsed Update succeeded ipa topologysegment-find ca ----------------- 1 segment matched ----------------- Segment name: server1.example.com-to-caReplica2.example.com Left node: server1.example.com Right node: caReplica2.example.com Connectivity: both ---------------------------- Number of entries returned 1 ---------------------------- ipa-csreplica-manage re-initialize --from= server1.example.com Directory Manager password: Update in progress, 3 seconds elapsed Update succeeded ipa-replica-manage re-initialize --from= caReplica2.example.com Directory Manager password: Update in progress, 3 seconds elapsed Update succeeded systemctl stop sssd sss_cache -E systemctl start sssd echo USDGNUPGHOME /root/backup ipa-restore ipa-full-2020-01-13-18-30-54 Directory Manager (existing master) password: ┌────────────────────────────────────────────────────────────────┐ │ Please enter the passphrase to unlock the OpenPGP secret key: │ │ "GPG User (first key) <root@example.com>" │ │ 2048-bit RSA key, ID BF28FFA302EF4557, │ │ created 2020-01-13. │ │ │ │ │ │ Passphrase: <passphrase> │ │ │ │ <OK> <Cancel> │ └────────────────────────────────────────────────────────────────┘