2

Я не уверен, насколько конкретно я должен быть в своем вопросе, поэтому сначала я задам общий вопрос в соответствии с заголовком, который направлен на то, где, по моему мнению, проблема, а затем опишу общую ситуацию, если у кого-то есть другие идеи:

Я синхронизирую два набора моментальных снимков btrfs ro с buttersink через ssh-соединение. 2 снимка содержат слегка отличающиеся версии одного очень большого файла (1,5 ТБ). Передача прошла очень быстро, разность составляла всего 5 МБ, но поскольку данные были переданы несколько часов назад, ОБОЛОЧКА выполняет НЕЧТО, но не завершает процесс. Что это такое? Ожидается ли такое поведение? На удаленной стороне ни вычислительная мощность (vserver), ни дисковый ввод-вывод (файл контейнера, отформатированный btrfs при монтировании CIFS) не могут быть удивительными.

Предыстория: я хочу сделать зашифрованное дифференциальное резервное копирование по сравнительно медленному соединению (25 Мбит, но по сравнению с объемом 1,5 ТБ, что довольно медленно). Резервная копия отправляется на удаленный сервер, который, в свою очередь, монтирует резервные копии в центре обработки данных через CIFS. Vserver не является доверенным сайтом, шифрование, все шифрование должно выполняться локально. Поэтому я придумал следующий план:
1. Локальная производительность: файловая система BTRFS
2. Локальное резервное копирование: зашифрованный файл в формате BTRFS в файловой системе BTRFS
3. Удаленный: зашифрованный файл в формате BTRFS в незашифрованной файловой системе в формате BTRFS при монтировании CIFS

а. Внутренняя файловая система BTRFS предназначена для эффективного локального резервного копирования от 1. до 2: 1. уже знает, что изменилось, и может напрямую переносить только изменения в 2., не обращаясь к огромным Maildir и тому подобному.
б. Внешняя файловая система BTRFS предназначена для эффективного резервного копирования файла контейнера в удаленное хранилище: 2. уже знает, какие части контейнера изменены, и может напрямую передавать только изменения в 3., не вычисляя кучу контрольных сумм rsync из 1,5 ТБ файл.

Прямо сейчас у меня есть снимок случайного файла данных локально и удаленно, а также снимок того же файла с шифрованием и локально btrfs. Ок. Дельта 5 МБ куда-то перешла почти сразу (так что ожидаемое преимущество работает), но с тех пор все застопорилось. Есть идеи почему?

Несколько ожидающих вопросов и ответов:
- «Почему вы не просто используете rsync?«- Если я перенесу свои файлы в удаленное местоположение, они не будут зашифрованы удаленно. Если я повторно синхронизирую зашифрованный контейнер, он вычислит контрольные суммы, чтобы найти что-то другое. Это занимает довольно много времени и вычислительной мощности для 1,5 ТБ. Это будет особенно трудно на удаленной стороне с креплением CIFS и небольшим vserver. BTRFS уже знает, что отличается.
- «Почему вы не используете двуличность?«- Двуличность оставляет мне полную резервную копию + дельты. Я не хочу держать много дельт. Я узнал, что двуличность требует регулярного полного обновления. Я не хочу загружать 1,5 ТБ на регулярной основе. BTRFS всегда будет сохранять чистое состояние, где мой текущий снимок будет таким же, как мой первый, и я всегда могу удалить любой снимок между или с самого начала.
- "Почему вы не используете Encfs?"- Кажется, это не совсем безопасно: https://en.wikipedia.org/wiki/EncFS#General_security_concerns Кроме того, несколько причин, приведенных для rsync.

0