it-git.ru
  • Windows
  • Linux
  • Виртуализация
  • Скрипты
  • Почта/Домены
  • Сеть и коммутация
  • Программное обеспечение
  • Безопасность
  • 📰

Проблема с прерыванием копирования больших файлов через rsync на S3

Программное обеспечение

Действительно, проблема с прерыванием копирования больших файлов через rsync на S3, подключенный через FUSE (например с подключением к /mnt/s3), действительно может возникать. Это связано с тем, что FUSE-монтирование S3 (например, через s3fs или goofys) не всегда стабильно работает с большими файлами, особенно если сеть нестабильна или возникают тайм-ауты.

Почему это происходит?

  1. Тайм-ауты: S3 — это облачное хранилище, и если соединение прерывается, FUSE-монтирование может "отвалиться".
  2. Ограничения FUSE: FUSE-драйверы для S3 не всегда оптимизированы для больших файлов и могут не справляться с нагрузкой.
  3. Проблемы с rsync: rsync не всегда идеально работает с FUSE-монтированием, особенно если файлы большие.

Решение: используй rclone

rclone — это отличная альтернатива для работы с облачными хранилищами, включая S3. Он специально разработан для таких задач и поддерживает:
  • Автоматическое возобновление загрузки (retry).
  • Мультипартинг (разбиение файла на части для параллельной загрузки).
  • Устойчивость к разрывам соединения.

Как настроить rclone:

  1. Установи rclone (если еще не установлен):
    sudo apt install rclone  # Для Debian/Ubuntu
    sudo yum install rclone  # Для CentOS/RHEL
  2. Настрой S3 в rclone:
    Настройка rclone для работы с объектным хранилищем S3 необходимо создать в каталоге .config/rclone в корне домашней директории файл rclone.conf со следующим содержимым:
    [my_s3] 
    type = s3
    provider = Other
    env_auth = false
    access_key_id = <S3 Access Key>
    secret_access_key = <S3 Secret Access Key>
    endpoint = https://s3.mycloud.ru

    Второй вариант - запусти команду:
    rclone config
    Следуй инструкциям, чтобы добавить S3-хранилище. Тебе нужно будет указать:
    • Тип хранилища (s3).
    • Access Key и Secret Key.
    • Регион S3.
    • Имя для этого хранилища (например, my_s3).
  3. Копируй файлы через rclone:
    Например, чтобы скопировать файл:
    rclone copy /var/lib/vz/dump/vzdump-qemu-301-* my_s3:backup/301/ --progress --transfers=4 --s3-upload-concurrency=4
    Здесь:
    • --progress — показывает прогресс.
    • --transfers=4 — количество параллельных загрузок.
    • --s3-upload-concurrency=4 — количество потоков для загрузки.

Преимущества rclone:

  • Устойчивость к разрывам: Если соединение прервется, rclone попытается возобновить загрузку.
  • Мультипартинг: Большие файлы автоматически разбиваются на части, что ускоряет загрузку.
  • Поддержка S3: rclone оптимизирован для работы с S3 и другими облачными хранилищами.

Пример скрипта для автоматизации процесса

На примере резервных копий ВМ сделанных в ProxMox штатными средствами
#!/bin/bash
# Конфигурация rclone: .config/rclone/rclone.conf
# Используем screen для возможности подключения и наблюдения за процессом в задаче, если он затянулся.

# Удаляем файлы старше 3 дней.
# Это может быть актуально, если вы используете rclone copy.
# Если место на S3 ограничено, но необходимо вместить максимальное количество файлов, логично сначала удалить лишние.
# Если место позволяет, удалять можно после копирования; в данном случае это просто пример.
screen -dmS find_301 rclone delete my_s3:3c5888be-7e0fd86e2e80/backup/301/ --include "vzdump-qemu-301-*.zst" --min-age 3d --log-file=/var/log/copy_s3/backup_301.log --log-level INFO

# Копируем или синхронизируем бэкапы на S3 в зависимости от ваших задач по выбранной ВМ.
screen -dmS backup_301 rclone copy -vP /var/lib/vz/dump/ my_s3:3c5888be-7e0fd86e2e80/backup/301/ --progress --log-file=/var/log/copy_s3/backup_301.log --transfers=4 --s3-upload-concurrency=4 --include "vzdump-qemu-301-*.zst"
screen -dmS backup_100 rclone sync -vP /var/lib/vz/dump/ my_s3:3c5888be-7e0fd86e2e80/backup/100/ --progress --log-file=/var/log/copy_s3/backup_100.log --transfers=4 --s3-upload-concurrency=4 --include "vzdump-qemu-100-*.zst"

# Оставляем последние 90 строк в файлах логов.
# Как правило, одна задача занимает до 15 строк.
# Чтобы избежать разрастания логов, очищаем неактуальную информацию.
# Можно использовать, например, logrotate, но насколько это нужно — решайте сами. Это всего лишь пример.
find /var/log/copy_s3/ -type f -name "backup*.log" -exec sh -c 'tail -n 90 "{}" > "{}.tmp" && mv "{}.tmp" "{}"' ;
Когда использовать rclone sync:
* Когда нужно поддерживать точную копию данных в двух местах.
* Когда важно удалять лишние файлы в целевом каталоге.
Когда использовать rclone copy:
* Когда нужно просто скопировать новые или измененные файлы без удаления чего-либо в целевом каталоге.

  • 29.01.2025
  • 308
  • 0
Rclone: ​​Полное руководство по синхронизации и резервному копированию облачного хранилища
Rclone: ​​Полное руководство по синхронизации и резервному копированию облачного хранилища
29-01-2025, 16:17, Программное обеспечение
Понимание Robocopy: надежный инструмент копирования файлов
Понимание Robocopy: надежный инструмент копирования файлов
10-01-2025, 12:31, Windows
Что такое реестр
Что такое реестр
30-05-2019, 14:06, Windows
rdiff - простое инкрементальное резервное копирование в линукс
rdiff - простое инкрементальное резервное копирование в линукс
5-10-2023, 12:27, Linux / Программное обеспечение
rsync, rclone, s3, stor, upload, files, загрузка, файлов, хранилище, data_stor
  • Windows
  • Linux
  • Виртуализация
  • Скрипты
  • Почта/Домены
  • Сеть и коммутация
  • Программное обеспечение
  • Безопасность
  • Active Directory
  • ▒ IT Новости
AD astra cisco cmd debian Docker Exchange firewall hp interface linux LXC Mail mikrotik network ovirt ProxMox PVE radius raid route router RouterOS s3 vpn windows Россия база данных безопасность виртуализация данные диск защита копирование массив надежность настройка программный райд скрипт файл
Показать все теги

Что такое IT-GIT?

«IT» — это не просто технологии, а целый мир инноваций и решений, направленных на преодоление сложностей. Мы представляем экспертность в области информационных технологий и широкой технологической экосистемы, стремясь к постоянному развитию и совершенствованию.

«Git» — это отсылка к одной из самых популярных систем контроля версий, которая обеспечивает эффективное сотрудничество, быструю итерацию и надежное управление сложными проектами. Мы стремимся объединить и поделиться опытом и идеями специалистов в сфере технологий, создавая пространство для обмена знаниями.

Инновационные технологии + совместный опыт экспертов в области технологий = путь к успеху!


  • ◆ Полезное
  • ▻ Заметки по докеру
  • ▻ Процесс расширения LVM на примере виртуальной машины
  • ▻ Расширение раздела на HDD/SSD
  • ▻ Ремонт файловой системы linux
  • ▻ Коды символов Юникода в UTF-8
  • ▻ Загрузка CHR RouterOS
  • ▻ #mikrotik
  • ▻ #zfs

  • ★ TOP 20
  • ☆ Шпаргалка по ZFS
  • ☆ Robocopy — описание и примеры использования
  • ☆ Настройка сети через командную строку и BAT файл
  • ☆ Для чего нужен протокол STP/RSTP на примере Mikrotik
  • ☆ Мигрируем на Exchange с почты для домена (yandex, mail, google и др.)
  • ☆ Как подключить сетевой диск всем пользователям с использованием AD
  • ☆ НP ProCurve. наиболее часто используемые команды консоли.
  • ☆ Сброс пароля Windows 10 с помощью встроенной учетной записи Администратора
  • ☆ Настройка условной пересылки DNS-запросов в Mikrotik RouterOS
  • ☆ Как создать программный RAID 1 массив (зеркало) средствами Windows 10, 8.1, 8, 7, Vista
  • ☆ Проверить, запущена ли программа
  • ☆ Не работает fetch в netwatch Mikrotik (ROS 7.13)
  • ☆ Как создать RAID 1 из уже заполненного диска на Windows 10, 8.1, 8, 7, Vista
  • ☆ Mikrotik (vpn server) + Windows server 2008r2 (ad, radius server)
  • ☆ Отечественная виртуализация - на чем построена, обзор, сравнение.
  • ☆ Ремонт файловой системы linux
  • ☆ Сравнение решений WireGuard
  • ☆ Увеличение zfs диска (ISCSI FreeNAS)
  • ☆ Mikrotik, 3 провайдера, переключение и разделение трафик
  • ☆ Полезности Mikrotik
Monitorus. Мониторинг сайтов и серверов.
 
  Top.Mail.Ru      © 2019-2025.    www.IT-GIT.ru    ✉ info@it-git.ru