README.md: explain restore method for saved files on LTFS tape

Signed-off-by: Ralf Zerres <ralf.zerres@networkx.de>
This commit is contained in:
2019-12-19 01:36:39 +01:00
committed by Ralf Zerres
parent 5c9dc9c45b
commit 66e483ddf1

108
README.md
View File

@@ -140,17 +140,17 @@ Following tools are used:
`dsnap-sync` is a shell script. Thus no compilation is required. `dsnap-sync` is a shell script. Thus no compilation is required.
To simplify correct target locations, this project uses a Makefile. To simplify correct target locations, this project uses a Makefile.
# make install # make install
If your system uses a non-default location for the snapper If your system uses a non-default location for the snapper
configuration defaults, specify the location with an environment variable configuration defaults, specify the location with an environment variable
(`SNAPPER_CONFIG`). (`SNAPPER_CONFIG`).
Arch Linux/Fedora/Gentoo: Arch Linux/Fedora/Gentoo:
# make SNAPPER_CONFIG=/etc/conf.d/snapper install # make SNAPPER_CONFIG=/etc/conf.d/snapper install
Debian/Ubuntu: Debian/Ubuntu:
# make SNAPPER_CONFIG=/etc/default/snapper install # make SNAPPER_CONFIG=/etc/default/snapper install
The local `snapper` configuration will be extended to make use The local `snapper` configuration will be extended to make use
of a new template 'dsnap-sync'. of a new template 'dsnap-sync'.
@@ -172,41 +172,41 @@ Please use your host software package manager.
## Options ## Options
Usage: dsnap-sync [options] Usage: dsnap-sync [options]
Options: Options:
-a, --automount <path> start automount for given path to get a valid target mountpoint. -a, --automount <path> start automount for given path to get a valid target mountpoint.
-b, --backupdir <prefix> backupdir is a relative path that will be appended to target backup-root -b, --backupdir <prefix> backupdir is a relative path that will be appended to target backup-root
--backuptype <type> Specify backup type <archive | child | parent> --backuptype <type> Specify backup type <archive | child | parent>
--batch no user interaction --batch no user interaction
-d, --description <desc> Change the snapper description. Default: "latest incremental backup" -d, --description <desc> Change the snapper description. Default: "latest incremental backup"
--label-finished <desc> snapper description tagging successful jobs. Default: "dsnap-sync backup" --label-finished <desc> snapper description tagging successful jobs. Default: "dsnap-sync backup"
--label-running <desc> snapper description tagging active jobs. Default: "dsnap-sync in progress" --label-running <desc> snapper description tagging active jobs. Default: "dsnap-sync in progress"
--label-synced <desc> snapper description tagging last synced jobs. --label-synced <desc> snapper description tagging last synced jobs.
Default: "dsnap-sync last incremental" Default: "dsnap-sync last incremental"
--color Enable colored output messages --color Enable colored output messages
-c, --config <config> Specify the snapper configuration to use. Otherwise will perform for each snapper -c, --config <config> Specify the snapper configuration to use. Otherwise will perform for each snapper
configuration. You can select multiple configurations configuration. You can select multiple configurations
(e.g. -c "root" -c "home"; --config root --config home) (e.g. -c "root" -c "home"; --config root --config home)
--config-postfix <name> Specify a postfix that will be appended to the destination snapper config name. --config-postfix <name> Specify a postfix that will be appended to the destination snapper config name.
--dry-run perform a trial run (no changes are written). --dry-run perform a trial run (no changes are written).
--mediapool Specify the name of the tape MediaPool --mediapool Specify the name of the tape MediaPool
-n, --noconfirm Do not ask for confirmation for each configuration. Will still prompt for backup -n, --noconfirm Do not ask for confirmation for each configuration. Will still prompt for backup
--nonotify Disable graphical notification (via dbus) --nonotify Disable graphical notification (via dbus)
--nopv Disable graphical progress output (disable pv) --nopv Disable graphical progress output (disable pv)
--noionice Disable setting of I/O class and priority options on target --noionice Disable setting of I/O class and priority options on target
-r, --remote <address> Send the snapshot backup to a remote machine. The snapshot will be sent via ssh -r, --remote <address> Send the snapshot backup to a remote machine. The snapshot will be sent via ssh
You should specify the remote machine's hostname or ip address. The 'root' user You should specify the remote machine's hostname or ip address. The 'root' user
must be permitted to login on the remote machine must be permitted to login on the remote machine
-p, --port <port> The remote port -p, --port <port> The remote port
-s, --subvolid <subvlid> Specify the subvolume id of the mounted BTRFS subvolume to back up to. Defaults to 5. -s, --subvolid <subvlid> Specify the subvolume id of the mounted BTRFS subvolume to back up to. Defaults to 5.
--use-btrfs-quota use btrfs-quota to calculate snapshot size --use-btrfs-quota use btrfs-quota to calculate snapshot size
-u, --uuid <UUID> Specify the UUID of the mounted BTRFS subvolume to back up to. Otherwise will prompt -u, --uuid <UUID> Specify the UUID of the mounted BTRFS subvolume to back up to. Otherwise will prompt
If multiple mount points are found with the same UUID, will prompt for user selection If multiple mount points are found with the same UUID, will prompt for user selection
-t, --target <target> Specify the mountpoint of the backup device -t, --target <target> Specify the mountpoint of the backup device
--volumename Specify the name of the tape volume --volumename Specify the name of the tape volume
-v, --verbose Be verbose on what's going on (min: --verbose=1, max: --verbose=3) -v, --verbose Be verbose on what's going on (min: --verbose=1, max: --verbose=3)
--version show program version --version show program version
## First run ## First run
@@ -259,7 +259,7 @@ backup types are differenciated:
* create a config specific subdirectory (`archive-<config-name>`) * create a config specific subdirectory (`archive-<config-name>`)
* create a snapshot-id subdirectory (`<snapper-id>`) * create a snapshot-id subdirectory (`<snapper-id>`)
* create the btrfs stream file inside the subdirectory * create the btrfs stream file inside the subdirectory
(`<snapper-id>_[full | incremental].btrfs`) (`<snapper-id>_[full | incremental].btrfs`)
* the proccess metadata are saved to a file called `info.xml` * the proccess metadata are saved to a file called `info.xml`
If you enabled the `ltfs` package, support for backups to tape is possible. If you enabled the `ltfs` package, support for backups to tape is possible.
@@ -304,6 +304,34 @@ FUSE). Read and write access can be managed using common OS tools.
An open-source implementation can be found at An open-source implementation can be found at
[LinearTapeFileSystem](https://github.com/LinearTapeFileSystem/ltfs). [LinearTapeFileSystem](https://github.com/LinearTapeFileSystem/ltfs).
## Restore
### From Tape
When `dsnap-sync` did save the data with method `btrfs-archive`, you will find
the corresponding data in a snapper compatible directory structure on the tape.
The structure may look like:
└── backups
└── @<server-name>
├── archive-<subvol-name>
│   └── <subvol-id>
│   ├── <subvol-id>_full.btrfs
│   └── info.xml
The file `info.xml` provide the metadata corresponding to the snapshot.
The data of the snapshot is stored in the file `<subvol-id>_full.btrfs`.
This file has to be decrypted with btrfs tool `btrfs-send` to a btrfs
restore directory:
cd /target_btrfs_path
cp /path_to_tape_root/backups/@<server-name>/archive-<subvol-name>/<subvol-id>_full.btrfs .
cat <subvol-id>_full.btrfs | btrfs receive -v .
rm <subvol-id>_full.btrfs
Please consult btrfs-send man-page for further info.
## Contributing ## Contributing
Help is very welcome! Feel free to fork and issue a pull request to add Help is very welcome! Feel free to fork and issue a pull request to add