Вопрос или проблема
Я пытаюсь создать резервную копию, охватывающую несколько лент (на ручном загрузочном устройстве), используя tar и какую-либо форму шифрования. Вот что я использовал (частично основано, если я правильно помню, на ответе из Шифрование резервных копий с помощью GPG на несколько лент):
mt -f $TAPE rewind; tar --ignore-failed-read -cf - <dirtree> \
| gpg -c --compress-algo none --pinentry-mode loopback \
| mbuffer -m 24G -P 95% -f -o $TAPE \
-A "echo next tape; mt -f $TAPE eject ; read a < /dev/tty"
Это хорошо работает с «mt -f $TAPE rewind ; dd if=$TAPE bs=8M | gpg -d –passphrase | tar -x» для восстановления из резервных копий на одной ленте и с первой ленты в многолентной резервной копии. Но я не могу угадать рецепт для восстановления последовательности резервного копирования на нескольких лентах. Вот несколько вариантов, которые я пробовал, чтобы получить список файлов на второй ленте…
mt -f $TAPE rewind; mbuffer -i $TAPE -m 24G -P 95% -A "echo next tape; mt -f $TAPE eject ; read a < /dev/tty; mt -f $TAPE rewind" | gpg -d | tar -t
mt -f $TAPE rewind; dd if=$TAPE bs=8M | gpg -d --passphrase | tar --multi-volume -t
И вот моя самая последняя ошибка (после успешного перечисления нескольких файлов на первой ленте)…
gpg: block_filter 0x0000558e3b208230: ошибка чтения (size=36854,a->size=1535012014164377600 bytes (12 TB, 11 TiB) скопировано,
41413.2 s, 290 MB/s
)
gpg: block_filter 0x0000558e3b208d70: ошибка чтения (size=33201,a->size=17841)
gpg: WARNING: зашифрованное сообщение было изменено!
gpg: block_filter: ожидаемые байты!
gpg: block_filter: ожидаемые байты!
Подготовьте том #2 для ‘-’ и нажмите Enter:
tar: -: Не удалось открыть: Неверный дескриптор файла
tar: Ошибка не восстановима: выход сейчас
И когда я пытаюсь напрямую прочитать с ленты #2, не проходя через ленту #1, я получаю ошибку типа “gpg: packet(13) слишком велик”
Любые предложения по чтению набора лент, созданного с помощью моего оригинального сценария резервного копирования, были бы отличными, но я также готов просто начать с нуля и сделать резервную копию с другой последовательностью команд.
Ответ или решение
Для создания и восстановления резервных копий, охватывающих несколько магнитных лент, с использованием утилит tar и gpg, важно тщательно организовать процесс, чтобы избежать ошибок и потерь данных. В вашей ситуации с использованием tar и gpg на нескольких лентах есть несколько ключевых моментов, которые стоит учесть для повышения эффективности работы и минимизации риска возникновения проблем при восстановлении данных.
Использование tar и gpg для многоуровневых резервных копий
1. Создание резервной копии
Для создания резервной копии данных на нескольких лентах необходимо правильно настроить команду. Вы уже используете команду, которая работает, но для улучшения процесса можно учесть следующие рекомендации:
mt -f $TAPE rewind
tar --ignore-failed-read -cf - <dirtree> \
| gpg -c --compress-algo none --pinentry-mode loopback \
| mbuffer -m 24G -P 95% -f -o $TAPE \
-A "echo 'Следующая лента'; mt -f $TAPE eject; read a < /dev/tty"
В этой команде mbuffer
улучшает производительность записи, позволяя справляться с большими объемами данных, что важно для резервного копирования на несколько лент. Добавление опции -A
к mbuffer
позволяет правильно переключаться между лентами.
2. Восстановление данных
Для восстановления данных с нескольких лент необходимо учитывать, что gpg и tar должны правильно обрабатывать ввод и вывод:
-
Подготовьте систему:
Перед восстановлением убедитесь, что первая лента находится в приводе и готова к чтению:
mt -f $TAPE rewind
-
Чтение с первой ленты:
Используйте следующую команду для восстановления с первой ленты, которая автоматически перейдет ко второй ленте:
mbuffer -i $TAPE -m 24G -P 95% -A "echo 'Следующая лента'; mt -f $TAPE eject; read a < /dev/tty; mt -f $TAPE rewind" | gpg -d --passphrase | tar -x
Это обеспечит плавный переход к следующей ленте по мере прочтения данных.
-
Обработка ошибок:
Если вы столкнетесь с ошибками gpg, такими как "пакет (13) слишком большой", это может указывать на попытку прочитать данные, которые еще не распознаны системой или повреждены. Убедитесь, что каждая лента правильно завершает запись, а также сверяйте контрольные суммы перед началом процесса.
Общие рекомендации
-
Контрольные суммы: После создания каждой резервной копии проверяйте контрольные суммы файлов с использованием команд
md5sum
илиsha256sum
. Это поможет убедиться в целостности данных. -
Логи: Сохраняйте логи всех операций, чтобы в случае возникновения ошибок вы могли быстро определить, на каком этапе произошла сбой.
-
Документация: Ведите подробную документацию о том, какие команды использовались, структуры данных и загрузочных последовательностей, чтобы облегчить процесс восстановления в будущем.
Завершая, стоит отметить, что разработка и запуск резервного копирования с использованием tar и gpg на нескольких магнитных лентах требует терпения и аккуратности. Следуя вышеописанным шагам и рекомендациям, вы сможете успешно управлять подготовкой и восстановлением ваших данных, оставаясь уверенным в их безопасности.