Создаем частное облако на основе BTSync

Что такое «облако»?

15 лет назад, под облаком мы понимали грузную тучку, безмятежно проплывающую по небосводу. И более ничего. Но сейчас, в век пост информационный, где уже совершенно недостаточно просто получать информацию, ей нужно уметь ловко манипулировать и её обрабатывать, на обывателей обрушились уже другие «облака», которые и не облака вовсе. Нынче, под облаком мы понимаем различные компьютерные сервисы, которые оказываются через глобальную информационную сеть Интернет. В двух словах о том, что такое компьютерное облако: «При использовании облачной технологии обработка и хранение информации происходит удаленно, на серверах провайдера услуги, а отображение информации, уже обработанной, осуществляется на конечном пользовательском устройство».

Звучит немного заумно, но на самом деле, ничего сложного в «облаках» нет. Представьте, что облако, это библиотека, а ваши данные скомпанованы в книги, которые вы относите в библиотеку на хранение. Оператор библиотеки, он же провайдер услуги, бережно и надежно хранит ваши книги, и по вашему разрешению может выдавать их другим людям, кому-то просто посмотреть, а кому-то и с возможностью полного изъятия книги. Иногда по книгам выпускаются дайджесты или книги собираются комплекты про путешественников. А библиотекарь регулярно производит чистку страниц от накопившейся пыли и мелких клещей.

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

Разумеется, сейчас все вышло немного на другой уровень, технологии управления данными стали заметно сложнее, а огромные вычислительные мощности современного серверного оборудования многократно усиливаются технологией кластеризации и балансировки нагрузки. Но, особую роль в современных облаках играет сеть Интернет, посредством которой и стало возможно работать с облаками в том виде, в котором мы их знаем сейчас. Благодаря скоростному подключению к Интернет, теперь нет необходимости ждать по полчаса, пока на локальный компьютер скачается файл. Его можно редактировать прямо в режиме онлайн, ничего никуда не скачивая, а просто подключившись браузером к облачному серверу через Интернет.

Какие бывают «облака»?

Сейчас существует всего два основных вида облаков: публичное и частное. Публичное облако обрабатывает запросы и данные множества не связанных между собой пользователей. А публичное облако, как правило, доступно из любой точки глобальной сети. А вот, частное облако, устанавливается уже внутри защищенной корпоративной или частной сети, и в очень редких случаях к нему можно подключиться извне этой сети. Частное облако предоставляет услуги пользователям только одной организации, и все накладываемые ограничения на безопасность относятся в первую очередь к конфиденциальности хранимой информации в облаке. Конечно, существуют и различные гибриды, которые характеризуются свойствами и публичных и частных типов облаков.

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

Для чего нужно «облако»?

Самый главный вопрос, который мне задают чаще всего, звучит примерно так — почему мы должны использовать облако? На, что я без какой-либо задней мысли отвечаю, что использование облачного публичного сервиса, дешевле, чем использование аналогичного по характеристикам локального сервиса. Ведь, для того, что бы организовать простой гарантированный обмен файлами между людьми, без использования облачных технологий, потребуется создавать сервер, оснащать его надежными и резервируемыми жёсткими дисками, обеспечивать непрерывным электропитанием, делать регулярные резервные копии, проводить аудит состояния и безопасности. А на случай сбоев, еще и резервировать мощности, иметь запасные части и специалиста который может провести замену.

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

А насколько это безопасно, отдавать свои данные в облако? Вот, еще один вопрос, который тревожит неокрепшие умы, недавно вставшие на стезю компьютерной грамотности. В целом, публичное облако безопаснее, чем 99% всех локальных решений. Оно безопаснее и как в плане надежности хранения, так и в отношении компрометации хранимых и обрабатываемых данных. Попробуем разобраться в этом немного поподробнее, почему оно так.

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

Компрометация данных, беспокоит потребителей в России, даже больше, чем их сохранность. Ладно, если «черная бухгалтерия» пропала, гораздо хуже, если она попала к конкурентам или вообще в налоговую инспекцию. Но, и в этом случае, публичное облако обеспечивает намного большую защиту от компрометации. Во-первых, большинство хищений данных из компаний осуществляется их же собственными сотрудниками, которые решили либо подзаработать дополнительные деньги, либо просто в качестве мести за увольнение. Что, у конкурентов сплыла база данных с вашими клиентами? Не надо искать зловещих хакеров, ищите своих обиженных сотрудников. А случаи, когда изымаются сервера в компании силовыми органами? Ни это ли самая большая из возможных компрометаций?

В центрах обработки данных, подобные ситуации просто немыслимы. Силовиков, еще будут долго не пускать на объект, а некоторые объекты могут быть так защищены, что пробраться в них не сможет даже ни один из Джорджей Бушей, вместе со всем ядерным арсеналом США. Кроме того, физическое хранение данных может быть вообще за пределами «опасных юрисдикций», так, что беспокоиться в этом случае не стоит.

Публичные облака

Сервисы, предлагаемые публичными облаками, многообразны и интересны. Взглянем лишь на некоторые из них. Начнем с грандов. На рынке облаков борются два титана, OneDrive с Windows Azure от Microsoft и Google Drive с Google Cloud Platform соответственно от Google. И та и другая компания, предлагают примерно схожий функционал. И у Google и у Microsoft есть свои почтовые облачные сервисы (gmail.com и outlook.com соответственно). И у той и у другой компании, есть облачные хранилища позволяющие синхронизировать файлы между компьютерами, просматривать и редактировать их через браузер прямо в режиме онлайн (Google.Drive и OneDrive). А есть еще и платформы для обработки данных пользовательскими приложениями Microsoft Azure и Google Cloud Platform. Остановимся на них немного поподробнее. Совсем немного.

GMail — эпический сервис, он появился лет 10 назад, и грозился задавить все остальные бесплатные почтовые сервисы, которые уже в то время присутствовали на рынке в достаточном количестве. Google обещал, что письма в своем почтовом сервисе не нужно будет удалять, поскольку объем дискового пространства под письма выделяется динамически. Google зарабатывал и зарабатывает на своем почтовом облачном сервисе показывая контекстную рекламу, которую очень удачно таргетирует основываясь на автоматическом анализе писем в почтовом ящике пользователя. Такой подход позволяет заметно повысить привлекательность отображаемой рекламы.

Outlook.com — попытка Microsoft впрыгнуть в уходящий поезд облачных почтовых сервисов. Microsoft всегда немного отстает от рынка, что и не удивительно, ведь большие корпорации категорически неповоротливы. Впрочем, сервис получился вполне удачным и хорошо интегрируется с облачным же OneDrive.

Google.Drive это не только сервис по онлайн облачному хранению файлов пользователя и синхронизация этих файлов между различными компьютерами. Это еще и вполне удобная система по обмену файлами, которая работает с GMail. Но, самое интересное, что Google решила потеснить Microsoft и разработала свой собственный пакет офисных продуктов. Правда работает он только в онлайн, но вполне справляется с форматами и документами пакета конкурентов. Но, особенностью решения от Google является возможность одновременной работы нескольких человек с одним и тем же документом. Да-да, несколько человек, могут редактировать один и тот же документ онлайн, общаться по Hangouts и видеть изменения вносимые другими пользователями.

В Microsoft тоже не лаптем щи хлебали и помимо Office 365, реализовали вполне работоспособные онлайн версии своих основных офисных продуктов. В браузере можно редактировать и Excel, и Word, и даже PowerPoint. Разумеется, не обойдена стороной возможность синхронизации файлов между компьютерами (а в Office 2013 и Windows 8.1 она вообще встроена), обмена ссылками и прочим. Но, и у Google и у Microsoft, офисные продукты немного недотягивают до функционала предлагаемого обычным десктопным офисным пакетом.

Но, кроме таких обыденных решений, которыми пользуются миллионы, у компаний гигантов есть и более специализированные решения. Microsoft предлагает сервисы Azure, а Google соответственно Google Cloud Platform. При помощи данных облачных сервисов можно создать свои собственные облачные сервисы или приложения, которые будут работать в публичном облаке и получать ресурсы по мере необходимости (дисковое пространство, полоса пропускания Интернет, доступ к базам данных и тому подобному). Разработка с применением облачных платформ не только облегчает задачу по обеспечению инфраструктуры для разработки и эксплуатации программного обеспечения, но и позволяет избежать проблем с масштабированием решений, ведь в облаке, ресурсы можно получать практически до бесконечности, были бы деньги. Кстати, решения на Windows Azure с легкостью переносятся с публичного в частное облако, решая тем самым вообще все проблемы с требованиями по безопасности некоторых организаций.

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

Первым, более-менее заметным игроком, который наделал много шума, был DropBox. Совершенно простая идея сервиса вкупе с многоплатформенными клиентами вознесли DropBox из сегмента стартапов, на самую верхушку успешных IT-компаний. А всего-то ничего, надо было создать серверное хранилище файлов, написать простецкие клиенты для различных операционных систем, да на волне популярности заключить договора с многочисленными поставщиками оборудования. Для пользователя работа с DropBox проста как три копейки, установил клиента, назначил папку. Складывай в нее файлы, и они автоматически приедут на остальные привязанные устройства. Ну, до кучи можно еще управлять файлами через web-интерфейс. Но, особой фишкой, которая дала DropBox некую толику ускорения и очевидное маркетинговое преимущество, стал групповой обмен файлами. К одной папке можно подключить больше чем один эккаунт и файлы автоматически синхронизируются между компьютерами разных людей. Конкуренты такой функционал предлагали и предлагают только в коммерческих профессиональных пакетах.

Yandex, стараясь копировать лучшие идеи своих зарубежных конкурентов, поспешил вывести в свет свое облачное решение для синхронизации файлов между устройствами. Яндекс.Диск, практически полный аналог, в плане синхронизации, Google.Drive. Все та же интеграция с почтовой системой, все те же обмены ссылками и все тоже хранение файлов. Кстати, в плане клиентов, особой разницы между различными предложениями нет. У всех все более-менее стандартно.

Решив наверстать упущенное, Mail.Ru решился и выдал каждому из своих пользователей по тысяче гигабайт места в своем облачном хранилище. Все равно, большинство пользователей уже, так или иначе, сидели на облаках других провайдеров, и нужно как-то было их сманивать на Облако@Mail.ru. Кроме огромного дискового пространства, которого хватит, что бы сделать резервную копию жесткого диска большинства компьютеров, в веб-интерфейсе облачного сервиса можно создавать простенькие офисные документы, используя веб-приложения от Microsoft.

Но, это все публичные облака, доступные обычным пользователям, а что делать, если постоянно грызет паранойя, и кажется, что за тобой все время кто-то следит, а все твои синхронизированные файлы будут скрупулёзно проанализированы спецслужбами, будет создана твоя ментальная карта вкупе с метаданными контактов. И все, ты под колпаком, уже несвободен. В этом случае, на выручку приходят приватные облака. Крупные организации могут позволить установить свое собственно частное облако от Microsoft или IBM. Но, компаниям поменьше и обычным пользователям часто необходимо немного другое решение.

Синхронизируем файлы сами

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

Вообще, для организации синхронизации файлов между компьютерами никакого облака не требуется, все может синхронизироваться и обычным программным обеспечением. Навскидку сразу же приходят аж два варианта синхронизации.

Wget. Утилита, появившаяся еще в операционных системах Unix и предназначенная для рекурсивного скачивания файлов из каталогов. Программа снабжена обычным текстовым интерфейсом и может обрабатывать файлы и каталоги как по протоколу HTTP, так и по протоколу FTP. Не изменённые файлы с прошлой синхронизации, она не трогает, а вот новенькое и измененное с удовольствием скачивает. Недостатком тут можно назвать то, что для того, что бы программа могла скачать что-то откуда-то, там должен быть подключен либо FTP-сервер, либо HTTP-сервер, с прямым выходом в Интернет, что бы к нему можно было подключиться извне. Текстовой интерфейс в стиле командной строки, командные файлы и прочие параметры, не доставляют удовольствия даже искушённым пользователям, а для не самых продвинутых пользователей ПК, так вообще совладать с подобной утилитой будет невозможно.

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

Схема синхронизации посредством WGet

Схема синхронизации посредством WGet

Именно поэтому, Wget используется обычно как утилита для резервного копирования файлов, либо когда требуется скачать целый веб-сайт. Для нормально синхронизации, Wget использовать неудобно.

Еще одна утилита для синхронизации файлов AllWaySync и по сравнению с Wget намного интереснее. Она обзавелась графическим интерфейсом, интеллектуальным сенсором, определяющим измененные файлы, системой разбора конфликтов синхронизации и тому подобными инструментами. Кроме того, одним из достоинств AllWaySync является повышенная скорость обработки файлов, программа сканирует изменения сотен тысяч файлов за считанные секунды, и ее не собьёт с толку даже слетевшее время на компьютере, изменения файлов отслеживаются не по времени модификации файла, а посредством алгоритмического анализа содержимого файлов.

AllWaySync может работать как с обычной файловой системой Windows, но не гнушается WebDAV, FTP и даже некоторыми облачными хранилищами. Очень удобный инструмент, который удобно использовать не только для синхронизации в обе стороны, но и для создания резервных копий. Одно время, все резервные копии на моих компьютерах делались именно при помощи AllWaySync. Уже позже, когда парк техники вырос, пришлось перейти уже на другие системы резервирования.

Схема синхронизации посредством AllWaySync

Схема синхронизации посредством AllWaySync

В теории, благодаря системе с проверкой содержимого файлов, а равно, как и механизму решения конфликтов синхронизации можно попробовать схему синхронизации отличную от «Звезда», но на практике подобная синхронизация может давать сбои и применять ее не стоит. При этом с центральным компьютером необходимо будет организовывать либо VPN туннель для обеспечения доступа к его жесткому диску, либо устанавливать FTP-сервер с доступом извне. AllWaySync же устанавливать нужно только на подключаемых к центральному компьютеру компьютерах. И, разумеется, компьютер на работе не выключаем. Пускай лопает офисную пыль 24 часа в сутки, да палит казенное икстричество почем зря.

AllWaySync конечно хорош, но сейчас доступны и более изящные решения. Одно из них BTSync.

Облако BTSync

Несколько лет назад, американская частная IT компания BitTorrent Inc., объявила о запуске разработки файл-обменной системы Sync основанной на peer-to-peer протоколе BitTorrent. Для лучшего понимания, придется дать небольшие комментарии по поводу компании и протокола. Протокол BitTorrent (в переводе означает «Поток битов», а бит есть наименьшая единицы данных в компьютерном мире и может быть либо нулем, либо единицей) появился в 2001-м году, и предназначен он для обмена файлами между клиентами, так называемой пиринговой сети. Суть данного протокола в том, что обмен файлами не идет через какой-то централизованный сервер, а напрямую между конечными клиентами. И если таких клиентов много, то файл разбивается на множество мелких кусочков и клиенты начинают ими обмениваться друг с другом. Как только клиент получил один кусочек, то он сразу же готов отдать его всем другим клиентам, у которых данного кусочка нет. Таким образом, чем больше клиентов в сети, тем быстрее они получают искомый файл. И именно поэтому, такая технология называется peer-to-peer, поскольку передача файлов осуществляемся между клиентами сети, минуя какие-либо центральные сервера. На этой технологии построены популярные сети по обмену кинофильмами, музыкой, играми и прочим контентом, которые мы просто называем «торрентами».

А компания BitTorrent Inc., была основана для дальнейшего развития протокола, файл-обменных сетей построенных на этом протоколе и, разумеется, прочих проектов, связанных с протоколом BitTorrent. В активе компании уже есть несколько известных разработок, например торрент-клиенты, которыми пользуются миллионы пользователей по всему миру. И совершенно неверно называть технологии обмена файлами на основе технологий peer-to-peer пиратскими. Посредством BitTorrent могут и распространяются в том числе совершенно легальные файлы, дистрибутивы открытых операционных систем, книги переданные в бесплатное использование обществу и множество других объектов интеллектуальной собственности, которые можно на вполне законных основаниях распространять таким способом.

Кроме клиентов сетей BitTorent компания BitTorrent Inc., примечательна еще и некоторыми другими своими разработками, которые эксплуатируют те же самые принципы пиринговых сетей. О некоторых мы поговорим позже, когда они выйдут как минимум в публичное тестирование или использование. Но, а ниже речь пойдет о, все еще находящемся в стадии публичного бета-тестирования продукте с лаконичным наименованием Sync.

Совершенно правомерно полагая, что в мире существует далеко не одна технология пирингового обмена файлами, и что на них также могут быть реализованы программные продукты по синхронизации, я предпочитаю называть Sync не просто Sync, а именно BTSync, что конкретно обозначает его принадлежность одновременно и к программам, работающим с протоколом BitTorrent, так и к продукции компании BitTorrent Inc.

Технология облака BitTorrent Sync

BTSync разрабатывается уже несколько лет, но все еще находится в стадии бета-тестирования, т.е. вычищаются последние ошибки и вносятся последние улучшения, и в скором времени продукт будет выпущен вполне официально и будет рекомендован для широкого использования. Длительный срок разработки, не такого уж и сверх сложного продукта, тем более основанного на уже давно отработанной технологии, можно связать с отсутствием достаточного количества ресурсов со стороны разработчика, а так же тем, что одновременно разрабатываются и другие продукты, да еще и ведется поддержка уже существующих. Немаловажный фактор скорости разработки, а именно наличие ресурсов, связан с тем, что все продукты компании являются бесплатными для конечного потребителя, а бизнес-модель ориентирована на лицензионные отчисления от крупных компаний желающих встраивать программные продукты BitTorrent Inc., в свои продукты. Не нам судить бизнесменов и то, как они ведут свои дела, нам важно, что у нас в руках находится весьма интересная технология, которая позволяет не создавать свои собственные облака по обмену файлами и не платить за профессиональные решения предлагаемые провайдерами. Для организации обмена файлами, нужен лишь компьютер или устройство, на котором можно запустить BTSync и сеть с протоколом IP (по сути обычная локальная сеть, будь то раздаваемая по WiFi или же проводу, либо Интернет).

Конечно, из одного компьютера, облака или смартфона облако не создать, но о том, как создать именно свое облако, немного ниже.

Что касается устройств, на которых может работать BTSync, то воображение, если честно потрясается каждый раз, когда понимаешь, что BTSync может работать практически на всем. На середину осени 2014-го года, BTSync можно запускать как на операционных системах семейства Windows, так и под MacOS. Поддерживаются все актуальные мобильные платформы – Андроид, iOS, Windows Mobile и даже KindleFire. Для более экзотических мобильных платформ, энтузиасты создают свои переработанные из оригинальных версий BTSync. И таки да, BTSync способен работать на вашем мобильном телефоне, и таки да, он это делает вполне уверенно.

Но, кроме мейнтстрима, BTSync вполне успешно работает на различных модификациях Linux и Unix, под совершенно разными процессорами, и на Intel, и на не Intel, и даже на ARM процессорах. Что не так уж и маловажно, учитывая то огромное количество устройств, которые появляются с частотой грибов после теплого летнего дождя. Официально поддерживается как минимум четыре производителя всяческих сетевых устройств. А неофициально… Тут никаких подсчетов произвести невозможно, но, скажем на большинстве более-менее продвинутых сетевых накопителях возможно установить BTSync и он будет работать.

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

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

В последних версиях стали доступны так же и временные коды, которые действуют только определенное время. Такие коды полезны, когда вы хотите предоставить доступ к синхронизируемой папке только на время, например, родственнику, что бы он смог скачать выложенные для него файлы. Кроме временного ограничения, может применяться и ограничение по количеству скачиваний. Например, можно выложить для всеобщей доступностей коллекцию своих фотографий, но ввести ограничение, что только первые 100.000 пользователей смогут их скачать. Вполне удобный и функциональных механизм. Однако, к сожалению, авторы и сторонние разработчики, так еще и не пришли к единой удобной и понятной терминологии в программе, хотя терминов там всего-то с десяток, да и сам интерфейс программы не настолько информативен, как хотелось бы. Оно и понятно, почему разработчики хотят значительно упростить работу с системой, спрятав трудное для понимания подальше от взгляда пользователя.

Интерфейс BTSync под Windows

Интерфейс BTSync под Windows

Кстати, очень важно понимать, что на одном устройстве синхронизироваться может далеко не один каталог, а несколько. Причем, синхронизироваться они могут как угодно между каким угодно количеством других устройств. Это значит, что, скажем на своем рабочем компьютере, я могу синхронизировать три различных папки со своим домашним компьютером и две папки, со своим ноутбуком. А с ноутбука синхронизировать восемь других папок с мобильным телефоном. В то время как одна папка с домашнего компьютера синхронизируется с сетевым накопителем расположенным вообще за городом. Удобно, гибко, но иногда тяжело для понимания.

Пентаграмма синхронизации пяти устройств посредством BTSync

Пентаграмма синхронизации пяти устройств посредством BTSync

После того, как созданы ключи, программа индексирует файлы в привязанной к ключам папке и записывает все данные о файлах в специальный индекс, который хранится там же, в папке для синхронизации, но в скрытой вложенной подпапке ".sync". Там же располагаются и конфигурационные файлы для настройки правил синхронизации синхронизируемой папки. Схема вполне удобная, во-первых, она платформонезависимая и одинаково работает на любом поддерживаемом устройстве, поскольку там везде есть файловая система, и есть возможность организации папок и файлов, иначе синхронизировать нечего. Во-вторых, даже в случае, если операционная система будет переустановлена, то можно подключить ту же папку, что была и ранее в синхронизации, без генерации новых ключей (ключи, на самом деле надо брать с других синхронизируемых устройств, но все настройки сохраняются).

Каталог .sync

Каталог .sync

В каталоге нас интересует всего два файла, первый "ID", в нем хранится уникальный идентификатор папки. В файле "IgnoreList" содержит все правила синхронизации, файлы исключения и подобные настройки. Но, самое интересное кроется в папке "Archive". В силу того, что для всей синхронизации используются совершенно равноправные участники, и в облаке синхронизации нет никакой жесткой централизованной системы за отслеживанием изменений. Тем более, BTSync ни коим образом не отслеживает изменения внутри файлов и напрочь лишен возможности слияния изменений сделанных на различных компьютерах. Логика действия тут проста до безобразия, файлы на всех синхронизируемых устройствах заменяются на самые последние версии. Но, для того, что бы хоть как-то дать возможность восстановления случайно удаленного файла или измененного не так как следует, такие удаляемые и заменяемые на устройствах файлы перемещаются в папку "Archive". Функция конечно отключаемая. Именно по этой причине, для синхронизации рабочих документов, которые изменяются часто и возможно, несколькими людьми, следует использовать средства синхронизации, с возможностью версиализации и прочим функционалом для восстановления, например, OneDrive от Microsoft.

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

Для передачи файлов между клиентами и для поиска клиентов применяются точно те же технологии, что и для обмена файлами по протоколу BitTorrent. Исключением тут является лишь то, что список клиентов не получают с торрент-трекера, поскольку его и нет. Для поиска клиентов используются пиринговая сеть, что и для обмена файлами клиентами торрент-трекеров, поиск клиентов по локальной сети, заранее прописанные хосты и прочие хитрости. Если не вникать в суровые технические подробности, то синхронизация работает везде, где работает и обычная скачка файлов через торрент-клиент. Конечно, некоторые провайдеры или организации могут стараться блокировать доступ к протоколу BitTorrent, но в нормальных сетях клиенты находят друг друга даже на другом краю земли. Что впрочем, и должно быть. Но, особенно впечатляет то, что клиенты способны находить друг друга, даже если оба находятся в сетях с серыми IP-адресами.

Плюс не забывайте, что поскольку в топологии BTSync нет центрального сервера, то и сама топология совершенно не централизована. Устройства могут соединяться каждый с каждым, образуя настоящую сеть (сеть с топологией «сеть») обмена данными. В таком случае обмен и синхронизация идут тем быстрее, чем больше устройств задействовано в синхронизации. Но, опять же тут есть особенность — большие файлы передаваться и синхронизироваться будут быстрее, чем множество маленьких. Но, в общем и целом скорость синхронизации вполне удовлетворительная.

Безопасность BitTorrent Sync

Безопасности данных в BTSync уделено особое внимание, поскольку данные передаются через открытую глобальную сеть. Во-первых, для того, что бы подключиться к синхронизации или обмену файлами, злоумышленнику нужно знать один из ваших сгенерированных ключей. Подобрать или сгенерировать такой ключ в реальной жизни невозможно, его можно только украсть. Не математик не сможет проверить утверждение BitTorrent Inc., относительно защищенности генерируемых ключей от подбора или повторной генерации, поэтому приходится им просто доверять (а в условиях нетократии по-другому никак). А вот, следить за тем, как вы передаете ключи на другие устройства стоит. Послать на смартфон, лежащий тут же на столе ключ по электронной почте на бесплатном сервере, может окончиться плохо, почта может быть взломана, ключ похищен. Вместо этого, ключ лучше ввести через сканирование QR-кода смартфоном с экрана компьютера. Что бы, хоть, как-то контролировать подобные неприятности, в BTSync есть возможность просматривать какие клиенты подключены к данной синхронизируемой папке. И только контроль самого пользователя позволит избежать кражи или порчи данных.

С другой стороны, если передаваемые по сети файлы будут похищены где-то по пути злоумышленниками, то ничего полезного они получить из перехваченного не смогут. Все передаваемые по сети данные, в обязательном порядке зашифровываются при помощи алгоритма Advanced Encryption Standard с длинной ключа в 128 бит. Расшифровать подобную шифровку с наскоку не сможет ни один суперкомпьютер на земле. Данный стандарт используется для шифрования данных правительством США. Однако существует версия, что во всех алгоритмах шифрования данных, разрешенных государствами, в обязательном порядке присутствует «черный вход», который позволяет расшифровать данные без необходимых ключей. Правда это или вымысел достоверно неизвестно. Но, для расшифровки файла передаваемого посредством BTSync нужно для начала перехватить все части передаваемого файла, что уже само по себе не просто. С этой точки зрения, гораздо проще, дешевле и значительно быстрее, получить все необходимые данные простым заражением устройства трояном или вообще просто изъять его.

В общем и в целом, с безопасностью в BTSync все очень и очень не плохо, и в общем случае не стоит беспокоиться за то, что недобрый хакер будет читать ваши курсовые работы или просматривать бухгалтерский баланс. Однако, применение не сертифицированных средств шифрования (читай тех, «черные ходы» которых не известны силовым органам) так или иначе незаконно. И в некоторых случаях может наступать даже административная ответственность. Поэтому, если возникают вопросы относительно легитимности создаваемой информационной системы, то лучше обратиться к законодательству за разъяснениями.

Особенности использования BTSync

Вариантов как можно использовать синхронизацию BTSync можно придумать множество, ведь система очень гибкая. Но, сам производитель видит только два базовых варианта применения. Вариант «Резервная копия» и «Синхронизация». По сути это абсолютно одно и тоже. Одно отличается от другого отличается только тем, что в варианте «Резервная копия» происходит только односторонняя синхронизация. Появление такого особенного вида синхронизации, даже не вида, а только названия связано с введенными ограничениями на доступ к данным на карте памяти в новых версиях мобильной операционной системы Android. Дело в том, что без получения полного доступа к своему телефону, программа не может вести запись в произвольную папку на карте памяти. Доступ на запись возможен только в свою собственную папку. И, например, функционал двусторонней синхронизации папки DCIM с фотографиями между мобильным телефоном и компьютером не возможен. BTSync просто не получит доступ на запись в каталог DCIM на карте памяти в телефоне. В этом случае, приходится либо довольствоваться простым копированием фотографий с телефона на компьютер, либо необходимо получать «рут» доступ к своему телефону и производить модификации для того, что бы снять данное ограничение (как это делается я описывал в этой статье).

В реальности BTSync использовать можно различными способами. Вот, несколько примеров, когда BTSync применяется для синхронизации чего-либо, все по моей практике:

Синхронизация фотографий с телефонов и планшетов на сетевой накопитель.

При такой синхронизации применяется схема «Звезда» и если подходить непредвзято к системе синхронизации, то она вовсе не является облачной. Два телефона и планшет синхронизируют снятые на них фотографии, в одностороннем порядке с папками на сетевом накопителе (NAS). Фотографии с каждого телефона и планшета, попадают в свою отдельную подпапку на NAS. А там, они все просматриваются, сортируются и переносятся в нужные фото-архивные подпапки. Важно, что удаление фотографий с телефона не происходит, это нужно делать самостоятельно.

Использование BTSync для синхронизации в одну сторону

Использование BTSync для синхронизации в одну сторону

Синхронизация фотографий в обе стороны

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

Синхронизация фотографий с телефона

Синхронизация фотографий с телефона

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

Синхронизируем электронный архив

Кроме фотографий, можно синхронизировать и многое другое. Например, для синхронизации отлично подходит электронный архив документов. Прошу обратить внимание, что посредством BTSync не синхронизируются обычные рабочие документы в формате Word или Excel, с которыми работает ежедневно, речь идет о копиях бумажных документов, а так же документах, с которыми в настоящее время уже активно не работают, но доступ к ним все еще нужен. Создание электронного архива — хороший шаг к безбумажному документообороту. Такие документы и хранятся долго, не теряя своих качеств, да и найти их намного легче, не говоря уже о том, что такой документ можно отправить по электронной почте со скоростью бегущей сумчатой лани.

Синхронизация электронного архива посредством BTSync

Синхронизация электронного архива посредством BTSync

В компаниях, электронный архив документов, ускоряет работу персонала, никто не будет искать договора и счета фактуры, вот, они, все лежат, каждый в своей папочке. А полнотекстовый поиск в PDF документах с распознаванием, позволяет находить нужные документы поиском по ключевым словам, датам и обычному тексту. В домашних условиях, электронный архив не менее полезен. В нем можно хранить копии всех договоров, свидетельств, паспортов, пенсионных удостоверений и прочего бумажного мусора, которым обрастает со временем каждый гражданин. Ведь постоянно нам требуются то копии какого-либо документа, то отправить по электронной почте копию водительского удостоверения страховому брокеру. А тут все под рукой. А в случае синхронизации, полный архив или только его часть будут доступны на любом вашем подключенном устройстве. Разумеется, не забывайте, что устройство может быть похищено, поэтому данные архива необходимо шифровать. В большинстве случаев сделать это можно посредством операционной системы, либо использовать контейнеры типа ныне покойного TrueCrypt.

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

Мои любимые NAS — устройства от Synology. Отличный дизайн, отличная производительность, отличное программное обеспечение. Но, устройства Synology официально не поддерживается BitTorrent Inc., в качестве устройств на которых работает BTSync. «Ерунда!» - отвечают энтузиасты, и создают порт BTSync на Synology. Порт программы, работающий на устройствах Synology, доступен для установки с архивов комюнити пользователей Synology и работает не хуже, чем фирменные продукты от BitTorrent Inc. Да и совместимость полная. Единственное, что интерфейс у не родного продукта, отличается от «морды» родного. Хотя, не исключено, что в ближайшем будущем BTSync на Synology будет работать и родной.

С мобильными телефонами немного сложнее. Мало того, что не на всех можно получить доступ на запись ко всем папкам на устройстве, так еще постоянно возникают проблемы с разрядом батареи. При постоянно включенной синхронизацией BTSync способен скушать всю батарею телефона за каких-то несколько часов. Ну, а что, ведь приходится подключаться ко всем клиентам, искать их по всему миру, а потом вычислять множество данных, проводить бесчисленные математические операции. Но, что бы в действительности все было, не так плохо, в мобильной версии BTSync есть несколько настроек, которые помогают. Во-первых, необходимо не включать синхронизацию через мобильный интернет. Большие объемы так не синхронизировать, а малые могут и подождать. Во-вторых, установить режим энергосбережения, на уровне не менее 15%. Когда заряд батареи телефона достигнет этой величины, синхронизация отключится, что бы еще больше не разряжать аккумулятор. В-третьих, включить режим сна и установить его на уровне не менее 30 минут. В таком случае, телефон будет пытаться установить связь с другими клиентами раз в полчаса и только тогда проводить синхронизацию. При помощи этих небольших ухищрений удается полностью устранить негативное воздействие BTSync на время жизни современного смартфона.

Выводы

Не смотря на то, что в мире существует как минимум десяток очень серьёзных игроков на рынке облачных услуг и неисчислимое количество более мелких, есть место и для совершенно бесплатных проектов, которые могут не только составить конкуренцию традиционному облаку, но и предоставить ряд функций, которые просто отсутствуют в коммерческих продуктах. Именно таким и является BitTorrent Sync. Уникальное решение, построенное на уникальной пиринговой технологии и позволяющее без труда синхронизировать файлы между компьютерами и устройствами. Публичная бета-версия уже настолько стабильна, что позволяет использовать её для любых не критичных данных. А, если присмотреться, то альтернатив подобному решению, по крайней мере, позволяющих развернуть свое собственно облако, просто нет. Именно поэтому, стоит как можно плотнее ознакомиться с технологиями примененными в BTSync, а также с функционалом программы. Я уверен, что для большинства потребителей такой продукт окажется вполне по душе, и уж тем более по карману.



Создаем частное облако на основе BTSync: 5 комментариев

  1. Уведомление: BitTorrent Sync v2.0 — стоит ли? | Многобукфф

  2. Уведомление: BitTorrent Sync 2.0 versus Syncthing | Многобукфф

  3. Уведомление: Домашний микросервер. Программное обеспечение. Операционная система. Ubuntu. | Многобукфф

  4. Уведомление: Домашний микросервер. Программное обеспечение. Скачиваем торренты. | Многобукфф

  5. Уведомление: BitTorrent Sync — усиленно думаем о безопасности наших данных | Многобукфф

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