Синхронизация с устройствами

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

 

       Доступ к форме синхронизации осуществляется из меню «Сервис» — «Устройства» — «Синхронизация с устройствами…». Данная функция может быть закрыта по правам доступа.

 

       Для того чтобы устройство было доступно в списке устройств синхронизации (как показано на рисунке ниже), данное устройство должно работать в режиме «синхронизации» или «синхронизация + записи по таймеру» (данный режим настраивается в конфигураторе устройств).

 

       При выборе устройства из списка автоматически заполняются настройки подключения. Эти настройки можно изменить, если устройство подключили к другому порту или по другому IP адресу.

 

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

 

 

Форма синхронизации с устройствами

 

Если включена настройка «Получить список записей», то с устройства в программу импортируются записи событий.
Если включена настройка «Синхронизировать время на устройстве с компьютером», то, соответственно, время на терминале будет выставлено по времени на сервере.
Если включена настройка «Обновить сотрудников (пропуска) на устройстве», то будет производится экспорт списка сотрудников на устройство. Данный параметр имеет вложенные настройки:
Обновление по изменениям
Обновление измененных сотрудников за «…» дней
Полное обновление — обновляет на терминале всех сотрудников за все время из программы.
Если включена настройка «Получить сотрудников с устройства», то, соответственно, будет производится импорт списка сотрудников с устройства в программу.

 

ru:sync [Zotero Documentation]

Translations of this page:

We’re in the process of updating the documentation for Zotero 5.0. Some documentation may be outdated in the meantime. Thanks for your understanding.

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

Синхронизация Zotero состоит из 2 частей: синхронизация данных и синхронизация файлов.

Синхронизация данных

Синхронизация данных переносит элементы библиотеки, заметки, тэги и т. д.—все, за исключением приложений—из расширения браузера Firefox Zotero на сервер Zotero, позволяя вам работать с вашими данными с любого компьютера, где установлено расширение Zotero, а также просматривать вашу библиотеку на сайте zotero.org.

Первый шаг в процессе синхронизации вашей Zotero 2.0 библиотеки – создание аккаунта (учетной записи) на сайте zotero.org. Если вы уже имеете таковой, вы полностью готовы. В противном случае – создайте аккаунт (доступно только на англ. яз.). Проделав это, откройте вкладку настройки синхронизации Zotero и введите ваши данные для входа в систему синхронизации Zotero на сайте.

По умолчанию Zotero будет синхронизировать вашу информацию с сервером при любом ее изменении. Вы также можете синхронизировать данные вручную, убрав галочку с окошка метки “Синхронизировать автоматически”. При первой синхронизации библиотеки Zotero, браузер Firefox может “зависнуть”, особенно если у вас обширная библиотека.

Синхронизация файлов

Синхронизация данных затронет элементы вашей библиотеки, не касаясь файлов приложений: PDF, аудио, видео, изображений и т. д.

Zotero поддерживает 2 способа синхронизации файлов: посредством хранилища Zotero и через ваш собственный WebDAV аккаунт.

Хранилище Zotero

Хранилище Zotero является рекомендованной опцией для синхронизации файлов и имеет некоторые преимущества относительно синхронизации WebDAV: например, такие как синхронизация файлов в групповых библиотеках, web-доступ к единичным приложениям (таким как PDF-файлы), более простая установка, гарантированная совместимость и улучшенное качество функционирования “закачивания” некоторых файлов.

Для получения более полной информации обратитесь к документации хранилища Zotero.

WebDAV

WebDAV – это сетевой протокол для передачи файлов по сети web. Существует много интернет-служб, поддерживающих протокол WerDAV. Возможно, ваш работодатель или исследовательский институт работают с этим протоколом. В противном случае, есть другие варианты, платные и бесплатные (Apple iDisk, JungleDisk, BingoDisk).

Когда вы получили данные вашего аккаунта в WevDAV, введите URL, предложенный этой службой, ваше имя пользователя и пароль во вкладке настоек синхронизации. Убедитесь, что вы правильно отметили, используете вы или нет безопасный протокол WebDAV (https). Если вы не знаете этого, вы можете просто попробовать оба варианта, однако ваш поставщик услуг должен предоставить эту информацию. После того, как данные корректно введены, нажмите “Подтвердить сервер”. Zotero должен подтвердить аккаунт до того, как вы начнете им пользоваться. Проделав это, вы можете начинать пользоваться функцией синхронизации файлов посредством WebDAV.

Синхронизация на практике

Если Zotero настроен на выполнение автоматической синхронизации, изменения будут синхронизированы через несколько секунд или уже находятся в процессе синхронизации. Или же вы можете кнопку синхронизации—кольцеобразная зеленая стрелка в правой части панели пользователя Zotero—, чтобы начать синхронизацию.

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

Если вы проводите синхронизацию с одного компьютера, вы также можете просматривать вашу онлайн-библиотеку на сайте zotero.org с любого компьютера. А если с вашим компьютером что-то случится, или вы решите пользоваться Zotero на другом компьютере, просто введите информацию о вашем аккаунте на новом компьютере. Zotero загрузит всю вашу библиотеку с сервера.

Дополнительные варианты синхронизации

Если, по какой-либо причине, вы не можете использовать опции синхронизации Zotero, вы можете выбрать из некоторых других вариантов синхронизации, таких как запуск Zotero из портативного браузера Firefox, синхронизировать Zotero через сетевую папку или посредством Rsync через SSH. Примите к сведению, что ни один из этих вариантов не подтвержден и не имеет поддержки, тем более, что возможность потери данных возрастает. При использовании одного из этих вариантов, постарайтесь чаще проводить резервное копирование ваших данных в Zotero.

Часто задаваемые вопросы по синхронизации GPS

В этой статье приведены ответы на некоторые наиболее распространенные вопросы о GPS Sync, выпущенных для airMAX AC в airOS v8.3 и для airMAX M в 6.1.3. 

Ознакомтесь с оглавлениями, чтобы найти интересующий вас вопрос.

Содержание


1. Какие устройства поддерживаются?

2. Каковы длительность и соотношение кадров?

3. Очистка пропускной способности канала

4. Почему пропускная способность UL точно соответствует коэффициенту?

5. Задержка

6. Почему количество зарегистрированных сообщений намного ниже, чем гибкое оснащение?

7. Почему латентность выше?

8. Почему мы не видим латентность, равную длительности кадров TDD, с продуктами AirFiber X?

9. Если латентность выше, то как насчет VoIP?

10. Является ли новая опция «гибкой» продолжительности такой же, как у оригинального AP PTMP airMAX-AC?

11. Сколько CPE можно подключить к одной точке доступа?

12. Какое максимальное поддерживаемое расстояние?

13. Почему процесс ассоциации занимает больше времени?

14. Каковы рекомендуемые настройки?

15. Как синхронизировать мои точки доступа?

16. Могу ли я синхронизировать с AirFiber?

17. Что происходит, когда сигнал GPS недоступен?

18. Большинство данных в моей сети — «загрузка тяжелая», почему я не могу иметь более высокие коэффициенты, например 85/15 или 95/5?

19. Могу ли я попробовать фиксированную рамку TDD для продукта, отличного от GPS?

 

1. Какие устройства поддерживаются?

Параметры TDK с фиксированным кадрированием доступны во всех AC-продуктах в режиме AP PTMP AC. Поддержка airCEX M CPE была добавлена в версию 6.1OS для airOS. Для сценариев, в которых вы используете M-устройства как CPE и AC-устройства в качестве AP, устройства AC должны быть версии (по крайней мере) airOS v8.4, а устройства M должны быть настроены в  режиме WDS-станции.

В настоящее время поддерживаются только ширины каналов 20 МГц и 40 МГц. Поддержка 10 МГц и 30 МГц будет добавлена в ходе разработки. Хотя приоритеты AirMAX и ATPC работают в режиме фиксированного кадра, параметр фильтра TDMA на AP еще не поддерживает фиксированные кадры. Он продолжает работать как обычно в гибком режиме. 

Возможность синхронизации с GPS-часами доступна только для продуктов с компонентом GPS, например Rocket 5AC PRISM, Rocket 5AC PRISM GEN2, PRISMSTATION 5AC.

 Примечание. Как AP, так и CPE необходимо обновить до версии v8.3 + / v 6.1.3+, чтобы поддерживать протокол фиксированного кадрирования. CPE должны быть в режиме PTMP.

 


2. Каковы длительность и соотношение кадров?

Поддерживаются времена фрейма 5 мс и 8 мс. Также разрешено разделять их на 75 DL / 25 UL, 67 DL / 33 UL или 50 DL / 50 UL.

 Примечание: 75:25 доступно только для продолжительности кадра 8 мс.

3. Очистка пропускной способности канала

Для сравнения см. Таблицы ниже.

 

Канал 20 МГц
  75:25 67:33 50:50
5мс Не Доступно 90:24 (Мбит / с) 63:52 (Мбит / с)
8ms 105: 25 95:36 (Мбит / с) 70:60 (Мбит / с)
40 МГц CHANNEL
  75:25 67:33 50:50
5мс Не Доступно 200: 50 (Мбит / с) 140: 111 (Мбит / с)
8ms 245: 50 210: 70 (Мбит / с) 150: 120 (Мбит / с)

4. Почему пропускная способность UL точно соответствует коэффициенту?

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


5. Задержка

Ожидаемая латентность составляет от 2x до 3x временную интервал TDD.

  • При кадрировании 5 мс будет наблюдаться средняя латентность от 10 до 15 мс.
  • При кадрировании 8 мс будет наблюдаться средняя латентность от 16 до 24 мс.
 Примечание. Повторные попытки и планирование могут повлиять на мгновенно наблюдаемую задержку.

6. Почему количество зарегистрированных сообщений намного ниже, чем гибкое оснащение?

Поскольку гибкое кадрирование динамически распределяет время, используемое DL и UL, указывается пропускная способность, предполагая, что конкретное направление использует 95% времени для отправки данных. Кроме того, количество используемого времени изменяется динамически и является эластичным.

 Фактическая пропускная способность AP — это среднее значение пропускной способности DL и UL в гибком режиме.

При использовании фиксированного кадрирования время, выделенное для каждого направления, фиксировано, следовательно, емкость пропорциональна разрешенному времени.

 Фактическая емкость AP — это сумма возможностей DL и UL в режиме фиксированного кадра.

Кроме того, в фиксированном фрейме существует короткий период «нарастания» для алгоритма адаптации скорости. Мощность при первоначальном подключении начинается с низкого уровня и увеличивается до фактического возможного числа.


7. Почему латентность выше?

Задержка в режиме фиксированного кадра аналогична любой другой фиксированной системе PTMP для той же продолжительности кадра. Гибкое обрамление airMAX-AC разумно сдвигает неиспользованную часть времени между двумя направлениями. Это позволяет значительно снизить задержку в режиме ожидания.

Пакет, входящий в CPE через Ethernet, должен ждать, пока CPE получит возможность для передачи. При гибком обрамлении время ожидания CPE перед запросом ниже, когда сеть находится в режиме ожидания. При фиксированном обрамлении это время пропорционально длительности TDD FRAMING. Когда трафик проходит, латентность между гибкими и фиксированными аналогична. Другими словами, фиксированное кадрирование может иметь более высокую задержку в режиме ожидания, но это не сильно увеличивает трафик.


8. Почему мы не видим латентность, равную длительности кадров TDD, с продуктами AirFiber X?

Есть две причины:

  • AFx является продуктом PTP, у ведомого всегда есть выделение времени для использования UL. В продукте PTMP CPE должен конкурировать с другими, чтобы получить распределение перед передачей. Это основная причина разницы и является общим для любого протокола фиксированного кадра PTMP, такого как LTE / WiMAX и т. Д.
  • Вторая причина разницы связана с удивительной производительностью кремния UBIQUITI INVICTUS в airFiber.
 Примечание. У нас есть экспериментальный режим, когда точка доступа переменного тока с одним подключенным клиентом может получить задержку, близкую к длительности кадров TDD, например AF5x. Мы не включили его в это время.

9. Если латентность выше, то как насчет VoIP?

 

Планировщик AirMAX-AC всегда уделяет первостепенное внимание VoIP, а латентность канала ниже стандартных пределов буфера джиттера VoIP. В нашем тестировании мы обнаруживаем, что фиксированное кадрирование обеспечивало лучшие оценки VoIP MOS в загруженной сети.


10. Является ли новая опция «гибкой» продолжительности такой же, как у оригинального AP PTMP airMAX-AC?

Да, гибкий, такой же, как у оригинального AP PTMP airMAX-AC, и не имеет никаких изменений в строке v8.3. Те же ограничения расстояния продолжают применяться для использования PTMP с гибким режимом, как и раньше.


11. Сколько CPE можно подключить к одной точке доступа?

При гибком обрамлении количество разрешенных CPE равно 85. При фиксированном обрамлении разрешенное количество CPE составляет 60, из-за ограничений памяти на нашем сопроцессоре airMAX-AC. Этот предел будет увеличен в будущем, чтобы соответствовать гибкому пределу кадрирования.


12. Какое максимальное поддерживаемое расстояние?

 

При фиксированном обрамлении, пока нет предела для поддерживаемого расстояния, мы внутренне ограничили его до 75 км или 46 миль. Это ограничение не зависит от ширины канала. Исходя из требований сообщества, этот предел может быть изменен.

Существует естественное снижение ожидаемой пропускной способности, основанной на расстоянии, из-за задержки распространения. Например, задержка распространения в оба конца для 75-километрового канала составляет 500 микросекунд, и это означает 10% -ное снижение производительности для кадра 5 мс и уменьшение на 6,25% при использовании кадра 8 мс.


13. Почему процесс ассоциации занимает больше времени?

При фиксированном обрамлении у нас есть дополнительный шаг между тем, когда CPE сначала регистрируется с AP, когда ему разрешено завершить процесс ассоциации с AP. Мы называем это «контролем за допуском». Во время этого шага, как и кабельный модем DOCSIS, CPE должен завершить измерения диапазона измерения с помощью точки доступа и синхронизировать время, прежде чем им будет разрешено отправлять данные.

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


14. Каковы рекомендуемые настройки?

Для максимальной пропускной способности мы рекомендуем использовать кадрирование 8 мс. Для наименьшей задержки рекомендуется использовать кадр 5 мс.

Обратите внимание, что из-за характера TCP, 5 мс могут обеспечить более высокую пропускную способность одного потока TCP для определенных операционных систем. Но коллективная пропускная способность нескольких станций будет выше с кадрированием 8 мс.

15. Как синхронизировать мои точки доступа?

Просто включите опцию GPS Sync из секции TDD Framing, на всех AP, которые вы хотите

для синхронизации, например:

На странице панели мониторинга AP будет отображаться статус кадрирования и синхронизации TDD:

Обратите особое внимание на следующее:

  1. Синхронизированные точки доступа должны использовать одни и те же рамки и отношения TDD.
  2. В настоящее время поддерживается только синхронизация с AP. Например, если AP1 находится совместно с устройством в режиме станции, которое, в свою очередь, подключено к AP2, синхронизация AP1 и AP2 приведет к помехам AP1 и станции.

В последующих выпусках для таких сценариев будет добавлен параметр смещения времени.


16. Могу ли я синхронизировать с AirFiber?

Да, при использовании 5 мс TDD кадрирования как на AC, так и на AF5 / AF5x. Пожалуйста, убедитесь, что используются одинаковые коэффициенты, и рассматривается точка (2) из вопроса 15 .

 Примечание. Для AF5s в режиме FDD синхронизация не актуальна, так как она передает и принимает в то же время.

17. Что происходит, когда сигнал GPS недоступен?

Если сигнал GPS отсутствует или если сигнал потерян, точки доступа должны продолжать работать в режиме фиксированного кадра TDD. Как только GPS-сигнал будет восстановлен, они должны автоматически повторно синхронизировать и продолжать работу.


18. Большинство данных в моей сети — «загрузка тяжелая», почему я не могу иметь более высокие коэффициенты, например 85/15 или 95/5?

Трафик загрузки на основе TCP требует, чтобы TCP ACK отправлялись с использованием UL. В сети PTMP будет выполняться несколько TCP-загрузок, каждый из которых требует, чтобы TCK ACK отправлялись с использованием UL. Имея достаточно времени на UL, чтобы позволить нескольким CPE отправлять TCP-подтверждения, уменьшает задержку, наблюдаемую TCP, тем самым увеличивая фактическую пропускную способность DL.

В качестве примера:

К AP подключено 50 клиентов. Если 10 из этих клиентов одновременно загружаются, а распределение UL очень мало, как в 95/5, время UL может быть достаточно для переноса ACK TCP одной из станций. Остальным придется ждать своей очереди, которая будет поступать в соответствии с циклом кадрирования TDD. Но в течение этого времени TCP может остановить свое окно и не отправлять дополнительный трафик до тех пор, пока не будут получены ACK. Это приводит к недоиспользованию DL.

Следовательно, чрезвычайно низкое распределение UL может привести к снижению эффективной пропускной способности DL в больших сетях PTMP.


19. Могу ли я попробовать фиксированную рамку TDD для продукта, отличного от GPS?

Да. Любой продукт airMAX-AC, когда он настроен на режим AirMAX-AC точки доступа, позволяет выбирать кадр TDMS и 5 мс. Единственное отличие — продукты, которые имеют компонент GPS, могут синхронизировать свои циклы.

Удобная синхронизация файлов / Habr

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

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

Да, скажете вы, есть облачные хранилища и зачем оно нужно когда есть Яндекс.Диск, Dropbox и куча облачных сервисов хранения файлов. Ну просто это не всегда приемлемо и удобно. Минусы:
1. Вы доверяете свои файлы третьей стороне без всяких гарантий.(Я не параноик, но вы ведь не оставите в таком хранилище ваши интимные данные)
2. Для доступа к ним нужен интернет. А это в России до сих пор не всегда возможно с необходимой скоростью.

Свято место пусто не бывает и компания BitTorrent выпустила нечто подобное, но в урезанном виде. Их программа просто синхронизирует файлы между разными платформами и системами как только они вышли в интернет или оказались внутри одной подсети. К сожалению нельзя гибко настраивать правила синхронизации, зато есть отличный клиент который администрируется через либо через нативный интерфейс(WIndows, MAC OS X, Android, iOS), либо через веб интерфейс(*NIX).

Я больше не лезу за фотками, документами и музыкой на мобилу и не лезу на сервер чтобы забрать редко обновляемый бэкап.
В домашнем компьютере есть несколько папок:
Телефон
Сервер
Общая
Авто

Чтобы закинуть что-то в телефон, я просто копирую нужный файл в папку «Телефон». На моем телефоне он появится через несколько секунд
Чтобы обменяться документами с ребятами по работе, я кидаю в папку общая. И через несколько секунд этот файл появлятся у всех нужных мне людей – локально а не в облаке.

В машине, в качестве медиа центра стоит Google Nexus, по 3G смотрит в интернет. На домашнем компьютере кидаю карты навигации и музыку в папку Авто. Все автоматом складывается в автомобиль. Из папки Авто/регистратор забираю интересные моменты снятые видео регистратором(девайс в машине всегда онлайн).
Экономит массу времени.

Пожелаем BotTorrent успехов в развитии их замечательного проекта.
Качаем.
Доступно в Google Play Market и Apple AppStor. Думаю скоро появится под мобильную версию Windows.

PS
Спасибо Мурину Саше за наводку )

Cкоростная синхронизация миллиарда файлов / Habr

Есть несколько идентичных серверов (4 ноды) на Amazon EC2 с Ubuntu. Каждый генерирует и хранит у себя на диске кэш, который хотелось бы синхронизировать. Но простой rsync тут не подойдет — файлов несколько миллиардов, nfs — слишком медлителен, и т. д. Полный список рассмотренных вариантов с пояснениями ниже.

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

После теста нескольких кластерных технологий и файловых систем, по совету старшего товарища, решили использовать тот же rsync, но в связке с inotify. Немного поискав в интернете готовое такое решение, дабы не изобретать велосипед, наткнулся на csyncd, inosync и lsyncd. На хабре уже была статья о csyncd, но он тут не подходит, т.к. хранит список файлов в базе SQLite, которая вряд-ли сможет сносно работать даже с миллионом записей. Да и лишнее звено при таких объемах ни к чему. А вот lsyncd оказался именно тем, что нам и было нужно.

UPD: Как показала практика, необходимо ощутимое измение и дополние в тексте. Я решил внести лишь незначительные правки в основную часть, а новыми выводами поделиться в конце статьи.

Rsync + inotify = lsyncd


Lsyncd — демон, который следит за изменениями в локальной директории, агрегирует их, и по прошествии определенного времени стартует rsync для их синхронизации.

Итак, rsync’ать все сразу мы не можем, зато можем обновлять только то, что изменилось. О последнем нам расскажет inotify, подсистема ядра, уведомляющий приложения об изменениях в файловой системе. Lsyncd следит за событиями изменения локального дерева файлов, собирает эту информацию за 10 секунд (можно указать любое другое время) либо пока не соберется 1000 событий (смотря какое событие произойдет первым), и запускает rsync для отправки этих файлов на остальные ноды в нашем кластере. Запускается rsync с параметром update, то есть файл на получателе будет заменен отправляемым только если последний новее. Это дает возможность избежать коллизий и лишних операций (например, если один и тот же файл был сгенерирован параллельно и на отправителе, и на получателе).

Реализация


Процесс установки описан для Ubuntu 11.10. В других версиях могут быть отличия.

1. Настроим ssh, чтобы можно было зайти с любой ноды на другую без авторизации. Скорее всего все знают как это делается, но на всякий случай опишу.

ssh-keygen

Passphrase оставляем пустой.

Далее добавляем содержимое ~/.ssh/id_rsa.pub на все остальные ноды в кластере в ~/.ssh/authorized_keys. Естественно выбираем $HOME того пользователя, который имеет права на запись в папку синхронизации. Проще всего, если это будет /root, но это не лучший выбор с точки зрения безопасности.
Желательно также прописать все ноды в /etc/hosts. Я назвал их node01, node02, node03.
Повторяем на всех нодах.

2. Устанавливаем lsyncd

apt-get install lsyncd

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

mkdir -p /etc/lsyncd
mkdir -p /var/log/lsyncd
vi /etc/lsyncd/lsyncd.conf.lua

Содержимое конфига с комментариями:

settings = {<br/>
  logfile    = "/var/log/lsyncd/lsyncd.log", <br/>
  statusFile = "/var/log/lsyncd/lsyncd.status", <br/>
  nodaemon   = true --<== лучше оставить для дебага. потом выключите.<br/>
} <br/>
--[[<br/>
sync { <br/>
  default.rsync, --<== используем rsync для синхронизации. по-идее, можно использовать и что-то другое.<br/>
  source="/raid", --<== локальная директория, которую синхронизируем<br/>
  target="node01:/raid", --<== dns-имя и директория на ноде-получателе через двоеточие<br/>
  rsyncOps={"-ausS", "--temp-dir=/mnt-is"}, --<== temp-dir нужна если синхронизация двухсторонняя.<br/>
  delay=10 --<== время, которое будет собираться список событий для синхронизации<br/>
} <br/>
]]<br/>
sync { <br/>
  default.rsync, <br/>
  source="/raid", <br/>
  target="node02:/raid", <br/>
  rsyncOps={"-ausS", "--temp-dir=/mnt-is"}, <br/>
  delay=10 <br/>
} <br/>
<br/>
sync { <br/>
  default.rsync, <br/>
  source="/raid", <br/>
  target="node03:/raid", <br/>
  rsyncOps={"-ausS", "--temp-dir=/mnt-is"}, <br/>
  delay=10<br/>
}

Конфиг проще сделать один раз и дальше разнести на все ноды, закомментировав лишний для каждого конкретного сервера блок. Комментарии — все что находится между «—[[» и «]]».

Используемые опции вызова rsync:
a — режим архивации; равносильно -rlptgoD, тоесть копировать рекурсивно, вместе с симлинками и специальными файлами, сохраняя права доступа, группу, владельца.
l — копировать симлинки;
u — не обновлять файлы на получателе если они новее;
t,p,o,g — копировать время, права доступа, владельца, группу соответственно.
s — на случай если в имени файла попадется пробел.
S — оптимизировать передачу данных состоящих из нулей.
Подробнее в man lsyncd или в документации.

4. Стартуем демон на всех нодах:

/etc/init.d/lsyncd start

Если Вы оставили «nodaemon = true» в конфиге, то сможете видеть что происходит.

Дальше копируем/создаем/удаляем что-нибудь в директории, которую мы указали для синхронизации (у мнея это /raid), ждем несколько секунд и проверяем результат синхронизации.

Скорость передачи данных достигает 300 Мбит/с и на загрузку сервера это мало влияет (по сравнению с тем же GlusterFS, например), да и задержка в данном случае сглаживает пики. Многое еще зависит от используемой ФС. Тут тоже пришлось провести маленькое исследование, с цифрами и графиками, так как ситуация довольно специфическая и результаты существующих опубликованных тестов не отражают того, что требуется в задаче.

Что еще было рассмотрено и почему не подходит в данном случае

Все исследование было нацелено на работу с Amazon EC2, с учетом ее ограничений и особенностей, поэтому полученные выводы в основном касаются только ее.
  • DRBD – репликация идет на блочном уровне. В случае деградации одного носителя убиваются оба. Ограничение в 2 ноды. (Больше можно, но 3 и 4-й можно подключить только как слейвы.)
  • Ocfs2 – используется либо поверх DRBD (о чем есть хорошая статья на хабре), либо нужно иметь возможность монтировать один раздел с нескольких нод. Невозможно на ec2.
  • Gfs2 – аналог ocfs2. Не пробовал, т. к. согласно тестам эта ФС медленней ocfs2, в остальном — ее аналог.
  • GlusterFS – вот тут все заработало практически сразу и как надо! Проста и логична в администрировании. Можно сделать кластер до 255 нод с произвольным значением реплик. Создал кластерный раздел из пары серверов и примонтировал его на них же но в другую директорию (то есть сервера были одновременно и клиентами). К сожалению на клиенте этот кластер монтируется через FUSE, и скорость записи оказалась ниже 3 МБ/сек. А так, впечатления от использования очень хорошие.
  • Lustre — чтобы запустить сие дело в krenel mode нужно патчить ядро. Как ни странно, в репозитории Ubuntu есть пакет с этими патчами, но вот самих патчей под нее или хотя-бы под Debian я не нашел. И судя по отзывам, понял, что завести это в deb-системе — шаманство.
  • Hadoop w/ HDFS, Cloudera — не пробовал, поскольку было найдено другое решение (см. ниже). Но первое что бросается в глаза — написано на Java, следовательно ресурсов кушать будет много, да и масштабы не как у Фесбука или Яху, всего 4 ноды пока.

UPD: Данное решение отлично себя показало на тестах (после чего и была написана статья), но в боевых условиях все оказалось совсем по другому. Минимальная продакшн-конфигурация — 584 тысячи вложенных директорий. А lsyncd навешивает inotify’и на каждую директорию. Сделать это сразу для всего дерева невозможно. Памяти, 584 тысячи нотифаев, съедают относительно немного, около 200 Мб (из 16 ГБ имеющихся), но вот процесс этот занимает 22 минуты. В принципе, не страшно: раз запустил и забыл. Но после этого, при стандартной конфигурации, lsyncd запускает синхронизацию всех файлов, которая в наших условиях либо глючила, либо занимала дни. В общем — не вариант. 100%-ная консистентность не требуется и без начальной синхронизации можно обойтись. Оставалось ее «выключить». Благо, демон написан так, что можно изменить практически все его функции прямо из конфига. Также, для увеличения производительности default.rsync был заменен на default.rsyncssh, а ядро натюнино на предмет лимитов inotify’а. То есть, для большинства задач подойдет конфиг выше, но в нашей конкретной ситуации работает следующее:


settings = {
  logfile    = "/var/log/lsyncd/lsyncd.log",
  statusFile = "/var/log/lsyncd/lsyncd.status",
  statusInterval = 5, --<== чтобы видеть что происходит без включения подробного лога
}

sync {
  default.rsyncssh,
  source = "/raid",
  host = "node02",
  targetdir = "/raid",
  rsyncOps = {"-ausS", "--temp-dir=/tmp"}, --<== описано выше
  delay = 3, --<== ставим по-меньше, чтобы очередь не забивать
  init = function(event) --<== перезагрузка функции инициализации. как она выглядела в оригинале можно посмотреть в документации или в исходниках
    log("Normal","Skipping startup synchronization...") --<== чтобы знать, что мы этот код вообще запускали и когда
  end
}

sync {
  default.rsyncssh,
  source = "/raid",
  host = "node03",
  targetdir = "/raid",
  rsyncOps = {"-ausS", "--temp-dir=/tmp"},
  delay = 3,
  init = function(event)
    log("Normal","Skipping startup synchronization...")
  end
}

Настройки ядра

У inotify есть три параметра (см. ls /proc/sys/fs/inotify/):
max_queued_events — максимальное число событий в очереди; default = 16384;
max_user_instances — сколько инстансов inotify может запустить один пользоваетль; default = 128;
max_user_watches — сколько файлов может отслеживать один пользоваль; default = 8192.

Рабочие значения:

echo "
fs.inotify.max_user_watches = 16777216 # 
fs.inotify.max_queued_events = 65536
" >> /etc/sysctl.conf
echo 16777216 > /proc/sys/fs/inotify/max_user_watches
echo 65536 > /proc/sys/fs/inotify/max_queued_events

Так все заработало уже в продакшине.

Спасибо за внимание!

Как синхронизировать файлы между устройствами без сторонних онлайн-сервисов

Чтобы иметь доступ к важным файлам на разных устройствах, вполне можно использовать облачные хранилища вроде Dropbox или «Google Диска». Но проблема конфиденциальности данных с каждым днём становится всё актуальнее. Поэтому было бы здорово синхронизировать файлы между компьютерами и телефонами напрямую, а не через серверы сторонних компаний.

В рамках одной сети с этим отлично справляется программа с открытым исходным кодом Syncthing. У неё есть клиенты для десктопных и мобильных операционных систем, поэтому вы легко можете загрузить данные со смартфона на ПК и наоборот. Главное — запастись терпением и всё это настроить.

Сперва зайдите на сайт Syncthing и загрузите программы для нужных платформ. Доступны официальные приложения для Windows и Android, а также масса неофициальных клиентов для других операционных систем.

Синхронизация файлов: Syncthing

Представим, что вы хотите синхронизировать файлы между компьютером на Windows 10 и смартфоном на Android. В клиенте для ПК нажмите на кнопку «Добавить удалённое устройство». Введите ID телефона, который должен отобразиться под соответствующей строкой. Если нет, отыщите ID в приложении на телефоне. После этого дайте устройству имя и сохраните изменения.

Синхронизация файлов. Как добавить устройство

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

Синхронизация файлов. ID устройстваСинхронизация файлов. Папки

После этого файлы начнут автоматически синхронизироваться между выбранными гаджетами.

Синхронизация файлов. Папки

Цена: Бесплатно

Читайте также

Microsoft SyncToy — удобное резервирование и синхронизация данных

Разработчики SyncToy замышляли эту программу как удобный инструмент для синхронизации фотографий на фотоаппарате, компьютере и внешних носителях. Однако получился весьма мощный и удобный инструмент, как для резервирования данных, так и для синхронизации файлов хранящихся на локальных  и внешних дисках (включая USB накопители) и сетевых папках.

Microsoft SyncToy

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

Sync  — синхронизация, при этом копируются новые и обновленные файлы в обоих направлениях.
Echo — дублирование операций произведенных в левой папке в правую
Subscribe — копирование обновленных файлов из правой папки в левую, причем только если файл уже существует в левой папке. Изменения в левой папке в правую не переносятся.
Contrbute — копируются только новые и обновленные файлы из левой папки в правую, удаления файлов игнорируются
Combine — копирование файлов с одного компьютера на другой (на котором этих файлов не существует). Удаление или переименование файлов не приводит к каким либо действиям на другом компьютере.

SyncToy результаты операций

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

К сожалению программа на данный момент не поддерживает выполнение операций по расписанию. Правда в справке приводится подробное описание как осуществлять запуск в нужное время для Windows Vista и Windows XP.

Скачать Microsoft SyncToy для Windows.

Отправить ответ

avatar
  Подписаться  
Уведомление о