Как использовать btrfs send / receive для передачи резервных снимков через медленное и ненадежное сетевое соединение?

11

Я хотел бы использовать функцию отправки / получения btrfs для передачи резервных снимков по довольно медленному (начальное начальное число около 50-100 ГБ, восходящая полоса пропускания ~ 1-2 Мбит / с) и ненадежному (ежедневное принудительное прерывание на обоих концах) соединение.

Я вижу следующие требования:

  • зашифрованная передача (обычно достигается с помощью туннеля SSH)
  • устойчивость к прерванным соединениям

Похоже, ZFS может автоматически возобновлять прерванные передачи , подобно тому, как это делает rsync. Это также относится к BTRFS? Отправки / получения вики страница не является полезным в отношении прерванных передач. Если btrfs возобновит прерванные передачи, все, что мне нужно будет сделать, это использовать SSH-туннель и возобновить работу в случае прерывания.

Если нет, то мне пришлось бы использовать некоторый промежуточный буфер, чтобы удостовериться, что btrfs-connection переживает прерывания, или приблизить оба сервера друг к другу для заполнения (что будет проблемой в отношении добавленных файлов, которые превосходят ежедневную передачу). мощности и отправка снимков).

Что я должен учитывать для передачи семян и снимков?

Йенс Эрат
источник

Ответы:

8

Я давно использую "btrfs send" для резервного копирования. Он не обрабатывает возобновление прерванных передач. Я написал утилиту, которая возобновляет передачу и автоматически синхронизирует снимки в локальной файловой системе btrfs с Amazon S3. Вы можете попробовать это, чтобы увидеть, помогает ли это, и я буду рад любой обратной связи! Он работает как на GitHub ( https://github.com/AmesCornish/buttersink ), так и на PyPi ( https://pypi.python.org/pypi/buttersink/ ).

user80646
источник
Обязательно взглянем на это, как только у меня будет свободное время. Ваш readme говорит, что ssh-backend еще не реализован, это означает, что синхронизация с удаленной файловой системой btrfs все еще находится в очереди?
Йенс Эрат
звучит здорово, но, к сожалению, мне тоже нужен SSH, чтобы он был полезен.
Матиас Урликс
2
Теперь реализован бэкэнд SSH (по состоянию на 0,6)
user80646
4

«отправить» в файл или через канал. «получить» с файлом или каналом на другом конце. При сомнительном соединении вам, скорее всего, лучше всего подойдут файлы и транспорт, например rsync.

user66738
источник
1
Да, даже можно разбить файл на несколько частей. Для rsync может быть лучше возобновить прерванную передачу (или использовать --partial с rsync)
ascobol
1

В дополнение к buttersinkрезюме S3, btrbkподдерживает:

Возобновление резервного копирования (если цель резервного копирования не была доступна некоторое время)

Изменить: с тех пор я узнал, что передача отдельных снимков не возобновляется btrbk, однако это будет иметь дело с целевым объектом резервного копирования, который переходит в автономный режим (перезапуская передачу прерванного снимка).

Том Хейл
источник
Я определенно посмотрю btrbkи как он реализует возобновление передачи, хотя мне немного не нравится выбор языка программирования - но, похоже, он в значительной степени реализует набор функций, который мне требуется.
Йенс Эрат