Дельта-синхронизация крипто-дисков

от автора

Существуют разные способы зашифровать «облако». Один из них — поместить в облако крипто-диск. В предыдущей статье мы писали, почему это не всегда удобно. В этой же статье мы рассмотрим тему крипто-диска в облаке с другой стороны.


Могут ли сосуществовать крипто-диск и облако?

Чтобы сэкономить вам один клик мышки, напомним, с чего начиналась предыдущая статья. В ней мы говорили, что самый простой способ — поместить файлы в криптоконтейнер, а файл самого контейнера поместить на Google Диск. Затем, чтобы работать с файлами на другом устройстве, нужно было загрузить контейнер, открыть его, просмотреть/изменить файлы и скопировать контейнер обратно в облако. Но при такой схеме возникает проблема перерасхода трафика. Что если размер крипто-диска составляет несколько гигабайтов, а вам нужно изменить файл, размером всего несколько килобайт? Да, все эти несколько гигабайтов будут загружены в облако повторно.
Все это верно только для облачных хранилищ, не поддерживающих дельта-синхронизацию, то есть для того же Google Диск. Однако некоторые другие облачные хранилища, такие как Яндекс.Диск и Dropbox поддерживают дельта-обновления, а это означает, что крипто-диск может спокойно «жить» в облаке.

Принцип дельта-синхронизации

Принцип дельта-синхронизации (дельта-обновлений) очень прост: в облако копируется не весь файл, а только то, что изменилось. Другими словами, пусть у вас есть большой файл размером, скажем 1 Гб. В нем вы изменили какую-то часть. Именно эта часть и будет отправлена в облако. Аналогично, эта же часть будет из облака загружена на все остальные устройства, использующие эту же учетную запись. В результате снижается, как время синхронизации, так и нагрузка на сеть.
Изначально дельта-синхронизацию поддерживал только Dropbox. Позже к нему присоединился и Яндекс.Диск. Насколько нам известно, пока дельта-обновления поддерживают только эти два хранилища. Облачный диск OneDrive поддерживает дельта-синхронизацию только для файлов MS Office.
Отсюда можно сделать выводы, что хранилища Яндекс.Диск и Dropbox можно использовать не только для хранения крипто-дисков, но и любых других больших файлов, над которыми вы работаете. Правда, есть и исключения. Если формат файла подразумевает упаковку, например, видео, музыка и подобные форматы, то дельта-синхронизация не работает и придется перезаписывать весь файл заново.
Об эффективности дельта-обновлений идут споры в сети, некоторые блоггеры утверждают, что от нее нет толку. Что ж, давайте посмотрим вместе.
Далее будет показано, как работает дельта-синхронизация на примере приложения CyberSafe Disk (его совершенно бесплатно можно скачать с сайта разработчика). Приведенный принцип вы можете использовать с любым другим крипто-диском, например, с контейнерами того же трукрипта.

Дельта-синхронизация в действии

Первым делом нужно установить Яндекс.Диск и указать свои учетные данные (рис. 1). Чтобы никакие другие файлы не мешали синхронизации, мы используем новый аккаунт, созданный специально для написания статьи (рис. 2).


Рис. 1. Вход в Яндекс.Диск


Рис. 2. Содержимое папки YandexDisk по умолчанию

Далее запускаем CyberSafe Disk (или трукрипт — на вкус и цвет все фломастеры разные), переходим в раздел Виртуальный сейф и нажимаем кнопку Создать. В качестве пути сохранения крипто-диска выбираем папку YandexDisk, указываем реальный размер — 500 Мб (по умолчанию — 100 Мб), вводим имя файла, пароль и нажимаем кнопку Принять. На момент создания крипто-диска лучше выключить синхронизацию Яндекс.Диск — чтобы не сбивать с толку приложение и получить реальное время синхронизации.


Рис. 3. Создание крипто-диска


Рис. 4. Синхронизация выключена

Ждем, пока крипто-диск будет создан, затем выбираем его в программе и нажимаем кнопку Монтировать (рис. 5). Далее как обычно — вводим пароль и начинаем работу с ним.


Рис. 5. Программа CyberSafe Disk

На крипто-диск я поместил один относительно большой файл — фильм размером 270 Мб и один небольшой текстовый, что и показано на рис 6.


Рис. 6. Крипто-диск смонтирован как H, на него помещены файлы

По окончанию работы с крипто-диском мы его размонтируем (кнопка Демонтировать в программе), включаем синхронизацию и засекаем время начала и окончания синхронизации. Размонтирование диска необходимо, чтобы клиент облачного диска смог получить доступ к файлу — ведь CyberSafe Disk использует эксклюзивный доступ и ни одна другая программа не сможет прочитать файл, пока он подмонтирован. На практике синхронизацию можно и не выключать, просто она начнется после того, как Яндекс.Диск сможет получить доступ к файлу.
Если у вас Windows 10, можно также посмотреть использование сети приложением Яндекс.Диск. До синхронизации крипто-диска на тестовой машине использование сети Яндекс.Диском составляло 83,5 Мб, что и показано на рис. 7.


Рис. 7. Использование сети до полной синхронизации крипто-диска

Итак, сейчас 9:19. Посмотрим, сколько времени займет полная синхронизация созданного крипто-диска. Со скоростью 1.2 Мб/с на синхронизацию крипто-диска размером 500 Мб понадобилось около 8 минут (рис. 9). Время окончания синхронизации — 9:27.


Рис. 8. Идет синхронизация крипто-диска


Рис. 9. Полная синхронизация завершена

А теперь посмотрим, сколько трафика использовало приложение Яндекс.Диск. После синхронизации использование трафика приложением составило 618 Мб. То есть приложение израсходовало 534,5 Мб трафика.


Рис. 10. Использование трафика после полной синхронизации (до дельта-синхронизации)

Отключаем синхронизацию. Монтируем снова крипто-диск и вносим изменения в текстовый файл. Я просто добавил еще одну строку (рис. 11).


Рис. 11. На этот раз диск подмонтирован как J

Далее размонтируем диск, смотрим на время и запускаем синхронизацию. Сейчас 9:35 (рис. 12). Нужно отметить, что при дельта-синхронизации нужно чуть больше времени на начало самой синхронизации. Приложение должно понять, какую часть файла отправить в облако.


Рис. 12. Время начала дельта-синхронизации

В нашем случае на все про все ушла минута, может быть чуть больше, с точностью до секунды никто не засекал, но в 9:36 приложение сообщило, что крипто-диск (test.vdf) был синхронизирован.


Рис. 13. Дельта-синхронизация завершена. Время 9:36

Посмотрим, сколько трафика израсходовало приложение (рис. 14). Всего 1 Мб.


Рис. 14. Использование трафика после дельта-синхронизации

Проведем такой же эксперимент с OneDrive. Поместим наш крипто-диск в папку OneDrive и запустим синхронизацию. Использование трафика до первой синхронизации составляет 45,3 Мб (см. рис. 14). На рис. 15 показано время начала синхронизации (9:57), использование трафика до синхронизации и то что OneDrive отправляет именно наш файл в облако — это видно по размеру.


Рис. 15. Первая синхронизация крипто-диска с помощью OneDrive

Время окончания первой синхронизации показано на рис. 16 — 10 часов и 7 минут. На первую синхронизацию было потрачено 10 минут, кстати, на 2 минуты больше, чем в случае с Яндекс.Диск. Использование трафика изображено на рис. 17. Было 45,3 Мб, стало 582 Мб, то есть в облако было загружено 536,7 Мб.


Рис. 16. Время окончания первой синхронизации OneDrive


Рис. 17. Трафик после первой синхронизации OneDrive

Далее тот же алгоритм: отключаем синхронизацию, монтируем диск, вносим изменения (я традиционно добавляю еще одну строку в файл), размонтируем, включаем синхронизацию. На рис. 18 показан путь к крипто-диску — обратите внимание подмонтирован крипто-диск именно из папки OneDrive.


Рис. 18. Вносим изменения в крипто-диск

Запуск второй синхронизации OneDrive произошел в 10:16. А что дальше? А дальше OneDrive мегабайт за мегабайтом начинает передавать файл в облако заново (рис. 20).


Рис. 19. Запуск второй синхронизации OneDrive


Рис. 20. Дельта-синхронизация явно не поддерживается…

Вторая синхронизация была завершена в 10:27, то есть заняла примерно те же 10 минут, см. рис. 21. Использование трафика подтверждает то, что дельта обновления не поддерживаются и OneDrive вырывается в лидеры по потреблению трафика (рис. 22).


Рис. 21. Время завершения второй синхронизации


Рис. 22. Использование трафика OneDrive после второй синхронизации

Думаю, комментарии тут излишни — и так все видно. Использование дельта-синхронизации позволяет экономить время и трафик, а также использовать синхронизацию крипто-дисков на мобильных устройствах. Начальную синхронизацию можно выполнить по Wi-Fi, а дельта-обновления занимают совсем немного трафика и вполне уместны в 3G-сетях.

ссылка на оригинал статьи https://habrahabr.ru/post/280792/


Комментарии

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *