Перенести много файлов в архив на удалённом сервере

Вопрос или проблема

Мне нужно сделать временную резервную копию примерно 1 ТБ перед перемещением локального сервера, а другое место для хранения, которое у меня есть, — это удалённый HPC кластер с достаточной квотой на хранение, но с ограничением на количество файлов, и файлов слишком много. Создание tar-файла на локальной машине слишком медленно (скорость записи?).

Так как я могу передать локальные файлы в удалённый tar-файл? Я думал смонтировать удалённую файловую систему локально (с помощью sshfs?) и затем использовать что-то вроде tar -cf /mnt/remote/backup.tar local_folder (Должно работать, верно?). Но может ли это быть сделано без монтирования? Может быть, с помощью какого-то магического канала из ssh, scp и tar?

Если я смогу это сделать, возможно ли также обновлять удалённый архив с обновлёнными локальными файлами, как это делалось бы в полноценном решении для резервного копирования? (Это не обязательно для текущей задачи.)

Ответ или решение

Перенос файлов на удалённый сервер для резервного копирования: подробное руководство

В современных IT-структурах задачи резервного копирования и переноса данных часто требуют нестандартных решений, особенно когда дело касается больших объёмов информации, таких как 1 ТБ. Давайте рассмотрим оптимальные способы переноса локальных файлов на удалённый кластер HPC без значительных потерь в скорости и с минимизацией количества файлов.

1. Проблема

Ваша задача сводится к выполнению временного резервного копирования объёма около 1 ТБ перед перемещением локального сервера. Так как вы сталкиваетесь с ограничениями по количеству файлов на удалённом сервере, важно осуществить перенос файлов в одном условном архиве. Метод создания архива на локальном сервере, как вы упомянули, оказывается недостаточно быстрым из-за низкой скорости записи. Использование механизма монтирования удалённой файловой системы (например, с помощью sshfs) также может не оправдать ожиданий по производительности.

2. Оптимальное решение

Для решения вашей задачи идеальным подходом будет использование комбинации инструментов ssh, tar и gzip, которая позволяет передавать данные «на лету», минимизируя потребность в дополнительных операциях записи на диске. Вот подробная инструкция по выполнению этой операции.

Команда для выполнения архивации и передачи файлов:

tar -czf - /path/to/local_folder | ssh user@remote_server "cat > /path/to/backup/backup.tar.gz"

Объяснение команды:

  • tar -czf - /path/to/local_folder: эта часть команды создаёт сжатый tar-файл из содержимого заданной папки, где - указывает на вывод результата в стандартный поток.
  • |: оператор конвейера, который передаёт данные из первой команды во вторую.
  • ssh user@remote_server "cat > /path/to/backup/backup.tar.gz": через SSH вы подключаетесь к удалённому серверу, где данные будут сохранены в файл backup.tar.gz.
  • cat > /path/to/backup/backup.tar.gz: команда на удалённом сервере принимает поток данных и сохраняет его в указанном файле.

3. Обновление архива

Если вам в будущем потребуется обновить резервную копию новыми или измененными файлами, рекомендуем использовать флаг -u для tar. Это позволит обновить архив без необходимости создания нового файла. Пример команды для обновления:

tar -czfu - /path/to/local_folder | ssh user@remote_server "cat > /path/to/backup/backup.tar.gz"

Здесь -u означает, что tar будет проверять существующие файлы в архиве и обновлять их ​​в случае изменений.

4. Заключение

Используя данный метод, вы сможете эффективно выполнить резервное копирование больших объёмов данных на удалённый сервер, избегая ограничений по количеству файлов и увеличивая скорость передачи за счёт сжатия и передачи данных в реальном времени. Проведя такую процедуру, вы будете уверены в целостности и доступности ваших данных во время переезда локального сервера.

Обязательно протестируйте процесс на небольшом наборе данных непосредственно перед выполнением с крупными объёмами, чтобы убедиться в корректности выполнения команды и производительности вашего соединения.

Оцените материал
Добавить комментарий

Капча загружается...