Русские Блоги
Русские Блоги
Синхронизация данных в реальном времени с помощью rsync под Linux
Один, Описание программного обеспечения (контент поступает из Интернета)
По сравнению с традиционными методами резервного копирования cp и tar, rsync обладает преимуществами высокой безопасности, быстрого резервного копирования и поддержки инкрементного резервного копирования. С помощью rsync можно решить требования к резервному копированию данных, которые не требуют высокой производительности в реальном времени, такие как регулярное резервное копирование. передачи данных файлового сервера на удаленные серверы, регулярное зеркальное отображение данных на локальных дисках и т. д. По мере того, как масштабы прикладных систем продолжают расширяться, также выдвигаются более высокие требования к безопасности и надежности данных. Rsync постепенно обнажил многое в высокотехнологичном бизнесе. Недостаточность, прежде всего, когда rsync синхронизирует данные, ему нужно сканировать все файлы и сравнивать их для дифференциальной передачи. Если количество файлов достигнет миллионов или даже десятков миллионов, сканирование всех файлов займет очень много времени. И то, что меняется, часто бывает очень маленькой частью, что очень неэффективно. Во-вторых, rsync не может отслеживать и синхронизировать данные в реальном времени. Хотя он может запускать синхронизацию через демон Linux, между двумя действиями триггера должна быть разница во времени, что может привести к несогласованности между данными сервера и клиента. Полностью восстановите данные в событие сбоя приложения. По указанным выше причинам появилась комбинация rsync + inotify!
Inotify — это мощный, детализированный механизм отслеживания событий асинхронной файловой системы. В ядре Linux с версии 2.6.13 добавлена поддержка Inotify. С помощью Inotify вы можете отслеживать добавление, удаление, изменение и перемещение файловой системы. Событие, Используя этот интерфейс ядра, стороннее программное обеспечение может отслеживать различные изменения файлов в файловой системе, и inotify-tools является таким сторонним программным обеспечением. В предыдущих главах мы упоминали, что rsync может обеспечить синхронизацию файлов по триггеру, но при запуске демоном crontab синхронизированные данные и фактические данные будут отличаться, в то время как inotify может отслеживать различные изменения в файловой системе. Запускается синхронизация rsync, которая просто решает проблему синхронизации данных в реальном времени.
Примечание:
Rsync inotify требует обратного мышления.Когда только rsync не синхронизирует в реальном времени, мы обычно синхронизируем данные с сервера rsync с клиентом rsync. Когда нам нужно добавить inotify для синхронизации данных в реальном времени, нам нужно синхронизировать данные от клиента rsync на каждый сервер rsync, чтобы клиент rsync стал основным сервером, а сервер rsync стал вторичным сервером.
Принцип: когда локальный каталог, отслеживаемый inotify, то есть каталог, который необходимо синхронизировать, претерпевает изменения, такие как переименование файлов, обновление, удаление и изменения разрешений, используйте команду inotify, чтобы найти эти изменения и выполнить соответствующую работу по синхронизации. .
2. Системная среда:
Операционная система
r sync
i notify
Синхронизация баз удаленных офисов в реальном времени
Посоветуйте, как реализовать работу в TCRM двух удаленных офисов, пусть даже находящихся в одном городе? Что для этого требуется?
— В каждом офисе по 20 сотрудников. Будет ли приемлемой скорость работы программы с БД, находящимся в другом офисе?
— Какова должна быть скорость канала?
— Есть ли примеры такой работы среди ваших клиентов?
— Если скорость будет неприемлема, как решается данная проблема? Интересует синхронизация данных между офисами в реальном времени.
— Есть ли требования к типу БД, сервера?
Софт на сервере планируется FreeBSD + Firebird.
Касательно Ваших вопросов:
1.Удаленный доступ к базе данных можно предоставить несколькими способами:
а. Настройка web-сервисов Terrasoft (настройка web-сервера для доступа к конфигурации по сети Internet) – самый оптимальный вариант. Плюсы – хорошая скорость при наличии широкого Internet-канала, после настройки требует минимума администрирования, не требует дополнительных настроек на клиентском ПК после настройки конфигурации, пользователь просто открывает клиентское приложение у себя на ПК и в качестве конфигурации выбирает web. Для работы web-сервисов необходимо наличие клиентской части приложения на пользовательском ПК.
Рекомендации по настройке web-сервисов доступны в руководстве администратора Terrasoft, а также тут.
б. Настройка репликации – обмен данными между несколькими точками, на каждой из которых хранятся копии базы данных. Довольно сложна в настройке и администрировании. Плюсом является то, что пользователю нет необходимости постоянно быть подключенным к сети Internet. Минусы: необходимо хранить часть базы данных (а также SQL сервер) непосредственно на пользовательском ПК, что увеличивает аппаратные требования к клиентскому ПК, в случае большого объема данных синхронизация может проходить довольно долго.
в. Настройка удаленного подключения путем администрирования сервера (по протоколу rdp – стандартный удаленный рабочий стол, либо настройка терминального доступа путем настройки терминального сервера) – задача системного администрирования. Плюсы – простота в настройке и администрировании, при использовании терминального доступа клиентское приложение выполняется полностью на стороне сервера. В этом случае хранить клиентское приложение на пользовательском ПК нет необходимости. При использовании VPN неплохое шифрование данных.
2. Скорость работы зависит от нескольких факторов:
— аппаратные характеристики сервера и клиентских ПК
— скорость и стабильность интернет соединения
Прикрепляю к данному сообщению документ, в котором описаны аппаратные требования и требования к ширине канала.
3. СУБД Вы можете использовать любую, из доступных (MS SQL, Firebird, Oracle). Вслучае использования Firebird, ОС FreeBSD вполне может быть использована в качестве сервера СУБД. Но стоит учитывать тот факт, что web-сервер (при использованиии web-сервисов) должен быть под управлением ОС семейства Windows, т.к. на данном сервере должна быть преднастроена конфигурация клиентского приложения Terrasoft (для возможности подключения к БД посредством web-сервисов), которое, как известно, работает исключительно на ПК под управлением операционных систем семейства Widnows.
В случае настройки VPN Firebird на FreeBSD также может использоваться.
Влад, спасибо за развернутый ответ.
Если офисы связаны VPN-соединением и как бы находятся в одной локальной сети, тогда по идее, удаленный клиент будет соединяться с базой как локальный, и ничего дополнительно настраивать не нужно, я правильно понимаю? В таком режиме можно работать 20-ти удаленным сотрудникам при достаточной ширине канала?
В чем преимущества web-сервисов перед VPN-соединением, что они из себя представляют?
Да, при VPN соединении клиентское приложение соединяется с БД также, как и в локальной сети.
В преимущества web-сервисов следует выделить следующее:
1. Удаленному пользователю нет необходимости дополнительно настраивать VPN-соединение, соединяться с VPN-тунелем для подключения.
2. Сравнительно легкая настройка
3. Простота в администрировании
Однако все эти преимущества относительны. В основном выбор основывается на предпочтениях администратора. Хочу заметить, что в случае, если критическим для Вас является защищенность (шифрование) данных, то VPN обеспечивает большую степень защиты чем web-сервисы, даже при условии использования https (ssl-сертификатов).
Большое спасибо, Влад. Удачной работы! 🙂
Хотелось бы заметить что требования касаются коробочной версии, а в случае самостоятельного изменения клиентской части требования могут возрасти. Так что сразу нужно ориентироваться не на минимальные, а на рекомендуемые значения.
Из личного опыта доработанной конфигурации.
Вопрос:
«Какие требования к аппаратной части сервера Terrasoft CRM?
— размер базы 15-40ГБ
— количество клиентов до 30
А также рекомендованные параметры клиентской системы?
«
Комментарии после ответа:
«Далее, можно отказаться от использования фильтрации, сортировки, и т.д., что облегчит выполнение запросов к базе данных. В принципе, такие вопросы рассматриваются комплексно. Анализируется, что является причиной возникновения проблем (нехватка ресурсов, медленная обработка запросов и т.д.).
Также при больших объемах данных, а также в случае, если количество пользователей системы превышает 10, мы крайне рекомендуем не использовать Firebird, а советуем обратить внимание на Express (бесплатную) версию MS SQL 2008.
данное поведение системы довольно нестандартно и требует детального изучения. Однако в любом случае, при работе с БД такого объема и при Вашем количестве пользователей, Firebird использовать не рекомендуется.»
Синхронизация файлов и обмен ими между офисами
В эпоху глобализации все больше компаний имеют офисы в разных регионах, при этом им требуется общий доступ к одним и тем же файлам. Решение Synology позволяет с легкостью синхронизировать файлы и обмениваться ими между офисами, что помогает сотрудникам сосредоточить внимание на достижении результатов.
Эффективный обмен файлами между несколькими офисами
- Обеспечение простого локального доступа
- Удаленная площадка аварийного восстановления
- Работа, как в облачной среде
Обеспечение доступа к данным на глобальных файловых серверах
Synology NAS может служить не только в качестве локального файлового сервера, но и обеспечивать наличие актуальной версии на всех системах NAS за счет синхронизации определенных папок в реальном времени. Для этого достаточно установить пакеты Synology Drive.
- Настройки синхронизации В зависимости от целей можно использовать однонаправленную или двунаправленную синхронизацию для отправки файлов в филиалы.
- Сокращение потребления пропускной способности и ускорение доступа по локальной сети Нужно просто один раз синхронизировать файлы на системах NAS в каждом офисе и все сотрудники получат доступ к ним на сетевом диске со скоростью локальной сети.
- Изменение передачи При внесении изменений в файл на Synology NAS реплицируются только изменения, а не весь файл, чтобы свести к минимуму использование полосы пропускания.
- Гибкие возможности хранилища Филиалы различных размеров могут выбирать из широкого спектра моделей — от настольных NAS с одним отсеком до стоечных серверов с 180 отсеками.
Улучшенное управление версиями и разрешениями
Принимая во внимание объем данных, которыми ежедневно обмениваются разные офисы, компания Synology предлагает инструменты для разработки оптимальных мер по предотвращению случайной потери данных.
- Предыдущие версии Благодаря возможности хранения и восстановления до 32 версий у сотрудников всегда есть доступ к данным за определенный период, а технология Intelliversioning позволяет сохранять наиболее важные изменения.
- Управление учетной записью ИТ-администраторы головного офиса могут самостоятельно управлять всеми учетными записями сотрудников компании, подключив все системы NAS к центральному домену Windows AD (включая Azure AD) или домену LDAP, или предоставить управление администраторам местных офисов, разрешив настройку учетных записей для их серверов.
- Windows ACL и квоты на данные Поддержка Windows ACL позволяет администраторам назначать гранулированные разрешения различным отделам, в то время как квоты для пользователей и общих папок помогут снизить вероятность того, что кто-либо займет слишком много пространства в хранилище.
Применение облачных технологий для работы на локальных серверах
Все чаще сотрудники компаний используют удобные функции общедоступных облачных сред. Благодаря Synology вы можете предложить те же преимущества на базе частного облака.
- Круглосуточный доступ к файлам из любой точки мира Благодаря Synology Drive во время командировок сотрудники отдела продаж могут получать доступ к файлам через веб-портал, мобильное приложение, а также синхронизировать нужные папки с компьютерами для автономной работы с ними.
- Совместная работа и внешний доступ к данным в реальном времени Благодаря Synology Office несколько пользователей могут одновременно работать над одними документами, электронными таблицами или слайдами. Для предоставления доступа к выполненной работе внешним клиентам можно создать общую ссылку к любому файлу или любой папке.
План резервного копирования
Поскольку данные синхронизируются с несколькими системами Synology NAS, это решение обеспечивает дополнительную избыточность для файловых серверов в небольших филиалах.
Обеспечение бесперебойного доступа к файлам
Централизованное резервное копирование данных филиалов
Дополнительная защита данных
Истории клиентов
Узнайте, как эти организации добились большего с помощью решений Synology.
Процесс создания мультимедийного контента — это зачастую ограниченное время, необходимость удаленного доступа к данным и непрерывного обмена ими. Система Synology NAS и программное обеспечение помогают нам соответствовать требованиям различных постоянно изменяющихся рабочих процессов в сфере создания контента.
Использование Synology NAS позволяет не только ускорить обмен обучающими материалами и их синхронизацию, но и упростить резервное копирование данных преподавателей и учащихся.
Мы используем продукты Synology уже много лет, и системы DiskStation стали универсальным решением для наших ИТ-специалистов.
Процесс создания мультимедийного контента — это зачастую ограниченное время, необходимость удаленного доступа к данным и непрерывного обмена ими. Система Synology NAS и программное обеспечение помогают нам соответствовать требованиям различных постоянно изменяющихся рабочих процессов в сфере создания контента.
Подробнее
Использование Synology NAS позволяет не только ускорить обмен обучающими материалами и их синхронизацию, но и упростить резервное копирование данных преподавателей и учащихся.
Подробнее
Мы используем продукты Synology уже много лет, и системы DiskStation стали универсальным решением для наших ИТ-специалистов.
Подробнее
Начало работы
Контакты
Для получения дополнительной информации обратитесь в региональный отдел продаж
Синхронизация данных
Синхронизация данных (от древне-греч. σύγχρονος — одновременный) — поддержание двух и более копий данных в согласованности друг с другом, поддержание целостности информации.
Примеры включают, но не ограниивают:
- Синхронизацию файлов, (например, портативного MP3-плеера и компьютера, электронной читалки и компьютера);
- Кластерные файловые системы, т.е. файловые системы , которые поддерживают данные или индексы последовательно во всем вычислительном кластере;
- Когерентность кэша, поддержание нескольких копий данных в синхронизации с несколькими кеш;
- RAID-массив, данные записываются в резервной копии на нескольких дисках, так что потеря одного диска не приведет к потере данных;
- Репликация баз данных, копии данных на базе синхронизируются, несмотря на возможные большие географического разделения;
- Журналирование — техника, используемая многими современными файловыми системами, чтобы убедиться, что метаданные обновляются на диске в логичном, последовательном порядке.
Содержание
Способы
Способ синхронизации данных зависит от предполагаемых дополнительных предположений. Главной проблемой является то, что независимо сделанные изменения могут быть несовместимы друг с другом (т.н. «конфликт правок») и общего способа разрешения подобных ситуаций не существует даже теоретически.
- Наиболее простой способ — предполагается, что изменения вносятся в одну копию — т.н. «рабочую» — а друга я копия просто перезаписывается ее содержимым. Этот способ применяется в большинстве приложений.
- Случай, когда данные представляют собой набор независимых записей (например, телефонная книга) — можно применить объединение множества записей. Что минимизирует риск потери данных, однако приводит к возможному появлению множественных записей одинаковых данных под разными ярлыками (напр. один телефонный номер, записанный под фамилией и прозвищем) и к сложностям при удалении
- Случай множественной синхронизации наборов — можно автоматически вводить в них дополнительную служебную информацию: датавремя последних правок, отметки об удаленных записях и прочее. Такой подход реализован в частности в Outlook.
- Обработка конфликтов автоматически или вручную — применяют, если вышеперечисленные способы не работают, например в системах управления версиями.
Например, CVS при обнаружении двух независимых правок объявляет о «конфликте» и либо разрешает его автоматически, либо предоставляет пользователю разрешить его вручную. Аналогичным образом ведет себя SVN.
- Отдельно выделяют способ репликации — в частности для синхронизации баз данных.
Классические проблемы синхронизации
Некоторые классические проблемы синхронизации:
- Задача поставщика-потребителя;
- Взаимная блокировка (т.н. deadlock и livelock);
- Проблема чтение-запись;
- Проблема обедающих философов;
Задача поставщика-потребителя
Задача поставщика-потребителя ( англ. Producer-consumer problem), также известная как задача ограниченного буфера ( англ. Bounded-buffer problem ) — это классический пример задачи синхронизации нескольких процессов . Задача описывает два процесса, поставщик и потребитель, которые совместно используют буфер установленного размера. Задачей поставщика является создание фрагмента данных, запись его в буфер и повторение этих действий раз за разом. Одновременно с этим потребитель потребляет данные (то есть, удаляет их из буфера) по одному фрагменту за раз. Задача состоит в том, чтобы не дать поставщику записать данные, когда буфер полон, а потребителю не дать удалить данные из пустого буфера.
Взаимная блокировка
Взаи́мная блокиро́вка (англ. deadlock) — ситуация в многозадачной среде или СУБД, при которой несколько процессов находятся в состоянии бесконечного ожидания ресурсов, занятых самими этими процессами.
Livelock — ситуация близкая к deadlock, но с существенным отличием: система не «застревает» (как в обычной взаимной блокировке), а занимается бесполезной работой, её состояние постоянно меняется — но, тем не менее, она «зациклилась», не производит никакой полезной работы. Жизненный пример такой ситуации: двое встречаются лицом к лицу. Каждый из них пытается посторониться, но они не расходятся, а несколько секунд сдвигаются в одну и ту же сторону.
Проблема чтение-запись
« | Есть область памяти, позволяющая чтение и запись. Несколько потоков имеют к ней доступ, при этом одновременно могут читать сколько угодно потоков, но писать — только один. Как обеспечить такой режим доступа? | » |
Проблема обедающих философов
Задача обедающих философов (англ. Dining philosophers problem) — классический пример, используемый в информатике для иллюстрации проблем синхронизации при разработке параллельных алгоритмов и техник решения этих проблем. Сформулирована в 1965 году Эдсгером Дейкстрой как экзаменационное упражнение для студентов. В качестве примера был взят конкурирующий доступ к ленточному накопителю. Вскоре проблема была сформулирована Ричардом Хоаром в том виде, в каком она известна сегодня
Задача о курильщиках
Задача о курильщиках (англ. Cigarette smokers problem) — проблема синхронизации в информатике, первоначально описанная в 1971 году Сухас С. Патилом.
Изначально есть три заядлых курильщика, сидящих за столом. Каждому из них доступно бесконечное количество одного из трёх компонентов: у одного курильщика — табака, у второго — бумаги, у третьего — спичек. Для того чтобы делать и курить сигары, необходимы все три компонента. Также, кроме курильщиков, есть бармен, помогающий им делать сигареты: он недетерминированно выбирает двух курильщиков, берёт у них по одному компоненту из их запасов и кладёт их на стол. Третий курильщик забирает ингредиенты со стола и использует их для изготовления сигареты, которую он курит некоторое время. В это время бармен, завидев стол пустым, снова выбирает двух курильщиков случайным образом и кладёт их компоненты на стол. Процесс повторяется бесконечно. Курильщики, по условию проблемы, честные: они не прячут компоненты, выданные барменом, — они лишь скручивают сигарету тогда, когда докурят предыдущую. Если бармен кладёт, например, табак и бумагу на стол, пока поставщик спичек курит, то табак и бумага останутся нетронутыми на столе, пока курильщик со спичками не докурит сигарету и только затем не возьмёт табак и бумагу.
Проблемы синхронизации данных
Некоторые проблемы, специфичные для синхронизации именно данных: Some of the challenges which user may face in data synchronization:
- Сложность форматов данных data formats complexity;
- Работа в реальном времени real-timeliness;
- беопасность данных data security;
- качество данных data quality;
- производительность performance.
Сложность форматов данных
В самом начале при появлении системы данные представлены в достаточно простой форме, которая изменяется с течением времени и ростом организации, что приводит к появлению не только таких проблем как постоение взаимодейсвия между целевой системой и системой-источником и проблемы преобраования данных при их передачи между системами.
Одно из решений — применение ETL-тулзов (от английского Extract, Transform, Load — дословно «извлечение, преобразование, загрузка»).
Пролема работы в реальном времени
Сейчас наступила эра реального времени. Пользователи хотят знать состояние системы в настоящий момент времени, клиенты — видеть текущее состояние заказа в интернет-магазине, отслеживать текущее состояние посылки по ее трек-номеру, контроллировать текущие остатки по счетам и т.д. и т.п. Соответсвенно возникает необоходимость взаимодейсвия и синхронизации в режиме реального времени и постостроения системы, которая не только могла бы обновляться, но и обеспечивать непрерывный произодсвенный процесс в реальном времени — как ьто (например) заказ материала, синхронизация заказов с процессом производства и отгрузки готовых продуктов и т.д.
Проблема безопасности данных
Правила и политики безопасности могут различаться в зависимости от системы, которая используется. Однако даже в случае, когда безопасность данных (хранение, права доступа и прочее) обеспечивается абсолютно корректно в исходной системе, эта политика должна быть транспанирована и на целевые системы, а так же необходимо также обратить внимание на потоки информации (например, ввести то или иное шифрование при передаче данных меж системами), чтобы предотвратить возможное возникновение злоупотреблений информацией.
Этот вопрос обенно важен в случае работы с грифованной информацией и персональными данными.
Проблема качества данных
Еще одно серьезное препятствие — качество данных. Данные должны быть не противоречивы, должно выполняться свойство целостности. Хорошей практикой является хранение данных в одном месте с последующим их перенаправлением в целевые системы, что помогает предотвратить нестыковки в данных и в конечном счете приводит к более эффективному управлению и поддержанию хорошего качетва данных.
Проблема производительности
Синхронизация данных в общем виде состоит из пяти различных фаз:
- извлечение данных из источника мастер данных иили из основной системы;
- передача данных;
- преобразование данных;
- загрузка данных в целевую систему.
Каждый из этих шагов очень важен и является критичным. В случае синхронизации больших объемов данных, каждый процесс должен быт тщательно спроектирован и произведен, чтобы не обрушить производительность и работу систем(ы) в целом.