
Как я использовал BitTorrent Sync между офисами в РФ и Китае
Однажды в нашей компании наступил момент, когда встала необходимость обмениваться довольно тяжёлыми файлами — макетами продукции и упаковки (100–500 мегабайт) между офисами в Москве, Екатеринбурге и офисом в провинции Чжэцзян, КНР. Сложность была в катастрофически низкой скорости и надёжности связи РФ — Китай.
Когда я обратил внимание на проблему, царил полный разброд и шатание: это и передача файлов в виде многотомных архивов по 9 мегабайт через корпоративную почту с сервером в Екатеринбурге, и публичные файлообменники с тоннами рекламы, и передача через Skype. Продвинутые сотрудники с переменным успехом использовали Dropbox (пока Великий Китайский Файервол не начал его блокировать) и Яндекс.Диск.
Все эти способы объединяло одно: низкая скорость, обрывы и блокировки со стороны китайского правительства. Макет объёмом 120 мегабайт мог качаться полтора часа и оборваться на середине. Возвращаться к эпохе Flashget не хотелось. При этом гарантированный канал китайского провайдера составлял 10 Мбит/с, и внутри Китая, разумеется, такие скорости выдавались без проблем.
В процессе поиска решения этой проблемы, а также проблемы медленной корпоративной почты в Китае, обсуждалась даже установка спутниковой тарелки и подключение к российскому спутнику. Впрочем, невероятные тарифы поумерили пыл. С почтой более-менее разобрались путём настройки промежуточного ящика на стороннем стабильно работающем сервисе (в нашем случае — Яндекс.Почта; западные сервисы в Китае любят блокировать, а китайские почтовики считают не-китайскую почту спамом). А вот с передачей файлов было не всё так гладко. У FTP не устроила скорость, VPN до российского сервера тоже не был стабильным.
Тут я вспомнил о BitTorrentSync.
Условия
Итак, дано:
- Три офиса: 2 в РФ, 1 в КНР;
- Три-пять сотрудников в российском офисе (стационарные машины) и шесть-семь в китайском (ноутбуки), которым нужно было обмениваться файлами между собой, вся инфраструктура на Windows XP, 7, 8;
- Стоечные серверы во всех офисах, которые использовались в том числе в качестве локальной файлопомойки;
- Множество клиентских машин во всех офисах, которым напрямую не было необходимости в обмене файлами;
- Великий Китайский Файервол, внезапный и беспощадный.
На первый взгляд, всё просто: установить у этих сотрудников Sync, сделать одну директорию с общим ключом, и всё будет работать. На практике пришлось немного повозиться.
Установка, проблемы, решения
- Кроме собственно пользователей, которым это было надо, Sync установили всем, кому он не мешал (т. е. на стационарные компьютеры с относительно большим объёмом свободного места на жёстком диске) в режиме read-only — это повысило скорость и надёжность передачи между пирами внутри сети;
- Дополнительно поставили клиент тем, кто использовал ноутбук (опять же с достаточным свободным местом), также в read-only — т. о. пользователи, подключаясь через другие сети, увеличивали живучесть всей системы в случае проблем с внешней связью у офисного провайдера;
- Также Sync установили на серверы во всех офисах, чтобы файлы были доступны в виде сетевой папки для тех, кому нельзя поставить Sync;
- В правилах маршрутизации пришлось последовать совету с форума и открыть порты 3000 и 9999, чтобы синхронизация начиналась быстрее;
- Параметр sync_max_time_diff установили на 0, поскольку все пользователи находились в разных часовых поясах.
Столкнулись и с некоторыми трудностями:
- Sync по умолчанию сохраняет все удалённые файлы в скрытой директории .SyncArchive, которая при активном использовании обмена быстро разрослась до сотни гигабайт, забив память некоторых устройств в ноль (очевидно, к чему приводит отсутствие свободного места на системном диске ноутбука). Надеюсь, в будущих релизах сделают возможность жёсткой регулировки максимального объёма этой папки;
- Попытка передать файл весом 8 гигабайт также привела к неконтролируемому засорению компьютеров. Оптимальным размером в нашем случае оказались файлы 50–500 мегабайт;
- Хоть процесс обмена файлами для конечных пользователей упрощён до предела, написать предупреждение всё-таки пришлось:
Обращаю внимание, что удаление файла одним из участников повлечёт удаление файла у всех остальных — не занимайтесь вредительством! Если нужно удалить с компьютера все файлы обменной папки, то предварительно нужно удалить папку из программы BitTorrent Sync (кнопка «Удалить папку»).
Файлы передаются между компьютерами напрямую, без промежуточных серверов.
Следовательно, для передачи файла в сети должны быть хотя бы два участника нашей группы. Когда один из участников получит файл, он «по цепочке» передаёт его остальным. Чем больше в группе участников — тем более надёжно и быстро передаются файлы.
Максимальная скорость передачи файлов — внутри локальной сети (например, в одном офисе), минимальная — между городами. Папки синхронизируются с определённым интервалом (несколько минут), поэтому передача файлов может начинаться не мгновенно, а с некоторой задержкой.
Достаточно скопировать файл в соответствующую папку, и он будет загружаться на компьютеры ко всем участникам. Программу при необходимости можно установить и настроить на домашнем компьютере или ноутбуке — файлы будут загружаться и туда.
С уважением,
Имярек
Несомненно, программа всё ещё находится в стадии беты, но она уже вполне пригодна к использованию.
Плюсы и минусы
Среди достоинств следует отметить следующие:0. Бесплатно;
1. Для пользователя процесс передачи файла прозрачен и прост: нужно только скопировать файл в нужную папку;
2. В наших условиях в целом быстрее и надёжнее, чем доступные облачные хранилища;
3. Быстрая скорость обмена внутри офиса.
И, конечно, недостатки:
1. Определённые усилия для настройки софта у каждого клиента;
2. Некоторое время на то, чтобы объяснить сотрудникам, почему, удалив файл у себя, он удаляет его у всех своих коллег;
3. Бета: присутствуют редкие баги вроде спонтанной остановки синхронизации, от чего помогает перезагрузка системы;
4. Для параноиков — пока не opensource.
Итого
Удалось достичь стабильного обмена файлами между РФ и Китаем на скорости в р-не 120 кБайт/с, что на голову лучше 10–12 кБайт/с, которые мы имели ранее. Просто сравните до...

... и после:

Для подключения пользователей при отсутствии специалистов написал мини-инструкцию:
Инструкция по подключению папки обмена:
(если какие-то пункты вызывают затруднение, пожалуйста, обратитесь к специалистам)
0. На жёстком диске компьютера должно быть не менее 25 гигабайт свободного места.
1. Создайте в корневом каталоге диска папку GC_SHARE (например, D:\GC_SHARE или C:\GC_SHARE).
2. Внутри GC_SHARE создайте папки «ВИДЕО», «МАКЕТЫ», «ИДЕИ», «ФОТО», «ДОКУМЕНТЫ» (по темам, обмен которыми вам необходим).
3. Скачайте программу BitTorrent Sync.
4. Запустите скачанную программу, установите в папку по умолчанию.
5. Запустите установленную программу.
6. Подключите созданные папки к программе следующим образом:
6.1 В программе BitTorrent Sync во вкладке «Папки» нажмите кнопку «Добавить папку».
6.2 В появившемся окне во второй строчке пропишите путь до папки (с помощью кнопки «Выбрать», например D:\GC_SHARE\МАКЕТЫ), в первой строчке вставьте соответствующий код из таблицы ниже:МАКЕТЫ
AV6LDEXXXXXXXXXXXXXXXXXXXX64NVJDJCX3IIФОТО
ALVVVQKXXXXXXXXXXXXXXXXXXXXOB622CO42OДОКУМЕНТЫ
A6E4EECXXXXXXXXXXXXXXXXXXXXRA44ISVTDZ36.3 Повторите со всеми папками.
7. В программе откройте вкладку «Настройки»:
7.1 В поле «Имя» напишите своё имя латинскими буквами (например, VLADIMIR).
7.2 Установите все галочки в активное положение, кроме «Уведомлять об окончании загрузок».
7.3 В полях «Ограничить скорость загрузки» и «Ограничить скорость отдачи» установите значения 5000 и 5000.
8. Нажмите кнопку «Дополнительно»:
8.1 Найдите пункт sync_max_time_diff, нажмите на него левой кнопкой мыши, в поле снизу замените значение 600 на 0, нажмите кнопку «Задать» и закройте окно; нажмите «Применить».Настройка завершена.
Особенности работы
Файлы передаются между компьютерами напрямую, без промежуточных серверов. Следовательно, для передачи файла в сети должны быть хотя бы два участника нашей группы. Когда один из участников получит файл, он «по цепочке» передаёт его остальным. Чем больше в группе участников — тем более надёжно и быстро передаются файлы.
Максимальная скорость передачи файлов — внутри локальной сети (например, в одном офисе), минимальная — между городами. Папки синхронизируются с определённым интервалом (несколько минут), поэтому передача файлов может начинаться не мгновенно, а с некоторой задержкой.
Достаточно скопировать файл в соответствующую папку, и он будет загружаться на компьютеры ко всем участникам. Программу при необходимости можно установить и настроить на домашнем компьютере или ноутбуке — файлы будут загружаться и туда.
Обращаю внимание, что удаление файла одним из участников повлечёт удаление файла у всех остальных — не занимайтесь вредительством! Если нужно удалить с компьютера все файлы обменной папки, то предварительно нужно удалить папку из программы BitTorrent Sync (кнопка «Удалить папку»).
С уважением,
Имярек
Надеюсь, описание живого использования системы подкинет вам новых идей.
Дома я тоже использую Sync: для бэкапа фотографий с телефона, архивации записей телефонных разговоров, организованной закачки торрентов на импровизированном медиасервере, бэкапа рабочих файлов на файлохранилище... Но это уже совсем другая история.
А как вы используете Sync в жизни?
UPD1: Пока пост находился в черновиках, вышла ещё более новая версия — в ней уже добавили возможность не хранить копии файлов в .SyncArchive и многое другое.
UPD2: Новая версия откровенно захирела. Изменился интерфейс (теперь на движке IE11), исчезла поддержка Windows XP, изменился принцип обмена ключами (сами ключи запрятали в глубины интерфейса, снаружи — только ссылки). В целом программа стала работать слишком плохо, и, к сожалению, я больше не могу рекомендовать её к использованию.
UPD 3: Программа снова стала нормальной. Рекомендую использовать :-)











