Работа с резервной копией ОС
Общие сведения
Файл резервной копии содержит:
- 
Скрипт распаковки posix-shell.
- 
Основной архив (архив со всеми файлами корневой и загрузочной файловых систем). 
- 
Вспомогательный архив (архив с конфигурационными файлами, помогающими восстановлению). 
Основной архив не содержит (добавлено в исключения):
- Содержимое директории, в которой создается резервная копия.
- Виртуальные файловые системы и временные директории: /dev, /run, /sys, /proc, /tmp, /var/lib/ntp/proc, /var/lib/lxcfs, /lost+found, /var/tmp.
- Все пулы данных, кроме базового пула данных (/storages/local/default), при этом от базового пула данных сохраняется только структура.
В общем случае основной архив резервной копии создается командой:
tar cpf - -X <path to file exclude> / | gzip >> <path to file backup>
Резервная копия ОС SpaceVM не включает резервную копию базы данных, хотя файлы базы данных могут
присутствовать в резервной копии, если она была сделана с узла с ролью Controller + Node. Но специальный механизм для восстановления файлов БД не предусмотрен. Для извлечения можно воспользоваться опциями
extract или tar.
Резервная копия базы данных контроллера может содержаться в резервной копии узла, если она ранее была создана средствами резервного копирования базы данных. 
При создании резервной копии происходит фиксация состояния и блокировка корневой файловой системы и раздела с логами:
fsfreeze -f /
fsfreeze -f /var/log
/storages/local оказалось в корневой файловой системе. Это приведет 
к тому, что виртуальные машины, у которых диски находятся на этих пулах данных, потеряют возможность
записывать в них данные во время создания резервной копии ОС SpaceVM. Также по этой причине на таких пулах данных 
невозможно создать резервную копию. 
При резервной копии узла с ролью Controller + Node блокируется работа с Web-интерфейсом.
Работа с резервной копией выполняется командой:
sh <путь до резервной копии> <опции>
Внимание
Работать с резервными копиями ОС SpaceVM необходимо с правами администратора root.  
Опции при работе с резервной копией
Без опций
При запуске файла без опций в консоль в первой строке будет выведено:
LLC «DACOM M»
В остальных строках будет указано описание, переданное параметром --description, или
переданное заполнением соответствующего поля в графическом интерфейсе при создании
резервной копии.
help
Опция help предназначена для получения справки о работе с резервной копией.  
Пример использования
sh 192.168.122.41__8fee191e-b2b7-4bf3-be64-05b244f5a2dc.run help
Пример вывода help
Usage: sh 192.168.122.41__8fee191e-b2b7-4bf3-be64-05b244f5a2dc.run [-v] [[list] |
                                                                                        [-v] [extract <dir to extract>] |
                                                                                        [-v] [restore <disk to restore>] |
                                                                                        [-v] [tar <keys tar>] |
                                                                                        [help]]
    -v:                          Verbose output for debug.
    list:                        Show list files in backup. WARNING: this output very large,
                                it use for 'grep' or output to file.
    extract <dir to extract>:    Extract files the backuped OS to a passed directory.
    restore <disk to restore>:   Restore OS to a passed disk.
    tar <keys tar>:              Use tar keys for archive with data OS from backup.
                                Don't need use option '-f <archive>'
    help:                        Print this help.
    Examples:
    sh 192.168.122.41__8fee191e-b2b7-4bf3-be64-05b244f5a2dc.run list | grep 'etc/fstab'
    sh 192.168.122.41__8fee191e-b2b7-4bf3-be64-05b244f5a2dc.run extract ./123
    sh 192.168.122.41__8fee191e-b2b7-4bf3-be64-05b244f5a2dc.run restore /dev/sda
    sh 192.168.122.41__8fee191e-b2b7-4bf3-be64-05b244f5a2dc.run tar -xC ./123 'etc/fstab'
    Typical restore with verbose logging:
    echo 'y' | sudo sh 192.168.122.41__8fee191e-b2b7-4bf3-be64-05b244f5a2dc.run -v restore /dev/sda 2>&1 | sudo tee restore.log 
-v
Опция -v (verbose) используется для получения детального вывода информации при отладке совместно с другими опциями.  
list
Опция list используется для получения полного списка файлов, входящих в резервную копию.  
Пример использования
sh 192.168.122.41__8fee191e-b2b7-4bf3-be64-05b244f5a2dc.run list | grep '/etc/passwd'
Внимание
Так как в резервную копию попадают все файлы, вывод с опцией list может быть очень большим. 
Рекомендуется использовать его совместно с grep.  
extract
Опция extract <целевая директория> служит для извлечения всех файлов, входящих в резервную копию, в заданную директорию.  
Пример использования для извлечения в директорию ./123
sh 192.168.122.41__8fee191e-b2b7-4bf3-be64-05b244f5a2dc.run extract ./123
restore
Опция restore <диск для восстановления> служит для восстановления ОС SpaceVM на выбранный диск с восстановлением разметки диска.  
Пример использования для восстановления на диск /dev/sda
sh 192.168.122.41__8fee191e-b2b7-4bf3-be64-05b244f5a2dc.run restore /dev/sda
tar
Опция tar <ключи> <файл> используется для извлечения отдельных файлов или директорий из резервной копии ОС SpaceVM. 
Ключи соответствуют стандартным ключам утилиты tar.  
Пример использования для извлечения файла etc/fstab в директорию ./123
sh 192.168.122.41__8fee191e-b2b7-4bf3-be64-05b244f5a2dc.run tar -xC ./123 'etc/fstab'
extract_cfg
Опция extract_cfg <целевая директория> является отладочной и используется для извлечения из резервной копии конфигурационных файлов 
резервной копии, необходимых для восстановления в заданную директорию.  
Пример использования для извлечения в директорию ./123
sh 192.168.122.41__8fee191e-b2b7-4bf3-be64-05b244f5a2dc.run extract_cfg ./123
extract_script
Опция extract_script <путь до файла> является отладочной и используется для извлечения из резервной копии 
скрипта самораспаковки.  
Пример использования для извлечения скрипта в текущую директорию ./script.sh
sh 192.168.122.41__8fee191e-b2b7-4bf3-be64-05b244f5a2dc.run extract_script ./script.sh