- PVSM.RU - https://www.pvsm.ru -
В этой статье мы рассмотрим особенности и уникальные преимущества Динамического кластера CommuniGate Pro для SaaS
CommuniGate Pro является платформой для организации облачных Интегрированных Коммуникаций (UC) и Динамический Кластер — самая надежная и масштабируемая конфигурация этой платформы.
Архитектура CommuniGate Pro – это единое ядро, предоставляющее все сервисы, в противовес стандартному подходу интеграции нескольких сервисов между собой. Это позволяет серьезно снизить операционные издержки, и подтверждено более чем 15,000-ми установками по всему миру с более чем 150 миллионами конечных пользователей. Отдельные установки CommuniGate Pro успешно управляют ресурсами более чем 100,000 доменов, у каждого из которых свой набор пользователей, логин страницы, набор сервисов, администраторы, все это умещается в одном Динамическом кластере.
Если Вам интересны нюансы архитектуры и настройки такого кластера, а также реальные оценки по аппаратному обеспечению на базе реализованных на нашей платформе проектов, прошу под кат.
Корпоративные решения и решения для малого бизнеса обычно не подходят для
Динамический кластер CommuniGate Pro реализует архитектуру, в которой все узлы кластера являются “активными”. Многие другие решения довольствуются схемами восстановления после падения или горячей замены, но не Динамический Кластер — в нем все системы работают вместе в виде одной логической сущности и все узлы берут на себя свою долю нагрузки. В то же время, каждый узел в любой момент можно извлечь из кластера или добавить новый в любой роли. Таким образом Динамический Кластер позволяет производить обслуживание любого его члена и увеличивать (и уменьшать) задействованные мощности прямо во время работы без перерывов в предоставлении сервисов.
Ключевыми преимуществами Динамического кластера, о которых мы будем говорить подробнее ниже, являются:
Обновления программного и аппаратного обеспечения на узлах могут резко ухудшить время доступности коммуникационной системы. Эти накладки часто называют “запланированные отключения” в мире корпоративных ИТ. К сожалению, такие отключения являются совершенно недопустимыми в области SaaS решений операторского уровня. Представьте ситуацию, в которой кабельный телефон отключался бы по субботам на обслуживание.
Для того чтобы убрать необходимость в отключениях, в Динамическом Кластере реализован механизм поочередных обновлений. Такой механизм обновлений позволяет администратору кластера деактивировать узел, распределяя при этом открытые соединения на другие члены кластера до тех пор, пока узел полностью не уйдет в оффлайн. После этого он доступен для обслуживания, и в дальнейшем его можно будет вернуть обратно в кластер.
Динамический Кластер CommuniGate Pro позволяет оператору рассматривать всю систему как единую сущность, даже если она состоит из более чем 40 серверов. Таким образом, управление масштабной инфраструктурой на порядки проще, чем в случае с системами корпоративного уровня.
SaaS провайдерам, предоставляющим услуги для малого бизнеса и индивидуальных предпринимателей, нужна легко масштабируемая система. И для наших клиентов использующих Динамический Кластер совершенно обычным делом являются облака, обслуживающие более 20,000 небольших (5-30 конечных пользователей) компаний.
В то же время, в случае с IP АТС и почтовыми решениями, которые не разрабатывались с прицелом на использование как SaaS платформы, управление резко усложняется с ростом пользовательской базы из-за того, что количество отдельный частей увеличивается — прокси сервера, базы данных, LDAP сервера, медиа шлюзы и т.д.
Динамический Кластер — элегантное решение, без лишних затрат растущее вместе с Вашей пользовательской базой.
Платформа CommuniGate Pro очень эффективно использует аппаратные ресурсы. Как следствие, провайдер может достигнуть гораздо большей плотности пользователей на каждом сервере по сравнению с корпоративными решениями. Плотность пользователей критична в дата-центрах, так как позволяет сильно снизить расходы на администрирование, электричество, охлаждение.
На большинстве 64-битных систем операторского класса (Solaris, Linux, BSD) CommuniGate Pro может достичь 90,000 сессий на одну систему. Также существуют проверенные на практике работающие конфигурации для более чем 450 000 конечных пользователей на одной системе.
Динамический Кластер — это система с минимальными накладными расходами на масштабирование. Для увеличения емкости системы достаточно простых дешевых серверов форм-фактора 1U или блейд-серверов. В отличие от других архитектур с высокими требованиями на вычислительные мощности, для CommuniGate Pro не рекомендовано использование слишком мощных серверов (таких как 8-way). Например, Динамический Кластер 4х4 с 2-ух процессорными серверами лучше, чем 2х2 с 4-ех процессорными серверами, так как в первом случае удельная нагрузка на один сервер гораздо ниже.
Так как исходный код CommuniGate Pro хорошо распараллелен, вычислительные ресурсы и память используются максимально эффективно и прогнозирование объема необходимых ресурсов при увеличении пользовательской базы прозрачно и близко к линейной зависимости. Все узлы кластера CommuniGate Pro используют один и тот же исполняемый файл, и поэтому отсутствуют различия в производительности узлов, характерные для неоднородных архитектур.
Элегантная структура Динамического Кластера позволяет провайдерам анализировать и прогнозировать свои затраты с высокой точностью, будь то сервера или хранилища данных.
Одним из основных свойств и целей разработки Динамического Кластера является сведение к нулю времени отсутствия сервиса. Все ноды кластера активные, и при падении одной из них другие члены кластера берут на себя пользовательскую нагрузку.
Основные элементы архитектуры кластера CommuniGate Pro включают в себя:
В кластер входит несколько серверов, поэтому для того, чтобы пользователи могли заходить на него по одному URL или IP адресу, нужен балансировщик нагрузки. В мире существует множество работающих Динамических Кластеров, и на них используются самые разные балансировщики. Мы рекомендуем использовать только качественные L4 устройства с хорошей пропускной способностью от Cisco, F5, Foundry. Более детальная информация по конфигурации балансировщиков доступна в мануале [2].
Кроме того, фронтенды на Linux сами могут выполнять функции балансировщиков с помощью встроенной в ядро технологии IPVS [3].
При организации Динамического Кластера используются по крайней мере 4 отдельные сети и несколько высокоскоростных свитчей для достижения оптимальной производительности. Мы рекомендуем Cisco, F5, Foundry, HP или другие свитчи похожего уровня, которые обеспечивают гигабитные скорости. При этом это должны быть максимально простые и надежные устройства, для примера укажем серию Cisco Catalyst 2960 [4].
Каждый сервер в кластере должен иметь по крайней мере 3 сетевых интерфейса. Следующий набор сетевых конфигураций необходим для корректной работы Динамического Кластера:
Балансировщик, 64.10.1.1, uc.domain.com
frontend1.domain.com ->64.10.1.11
frontend2.domain.com ->64.10.1.12
frontend3.domain.com ->64.10.1.13
Конечные пользователи при этом в своих клиентских приложениях используют только uc.domain.com. А балансировщик, в свою очередь, раскидывает запросы по активным фронтендам. ДНС записи для фронтендов нужны для удобства администраторов.
В кластере фронтенды выполняют следующие функции:
В Динамическом Кластере бэкенды — ядро платформы.
Они ответственны за:
Технология синхронизации на уровне учетной записи, используемая в бэкендах, гарантирует, что только один сервер имеет доступ к файлам аккаунта в каждый момент времени (6-ти секундные интервалы). Кластер CommuniGate Pro таким образом убирает необходимость в блокировке файлов на уровне файловой системы (за исключением одного — heartbeat.data, блокировку которого которого осуществляет Контроллер Кластера). Из-за того, что кластер не рассчитывает на механизмы блокировки в файловой системе, производительность NFS увеличивается в 5-7 раз.
Динамический кластер поддерживает поочередное обновление узлов и автоматическое восстановление после падения любого узла в любое время; рекомендуемая конфигурация в этом случае — кластер 3х3 (3 фронтенда, 3 бэкенда). Но для запланированного отключения рекомендуется использовать “мягкое” отключение — настройка “Make Not-Ready” в WebAdmin интерфейсе на странице Monitors->Clusters.
Самая критичная часть Динамического Кластера это хранилище данных.
Рекомендуется использовать либо NAS, либо SAN решения в зависимости от операционной системы и доступных возможностей, таких как NFS протоколы и различные файловые системы (CFS).
Сам процесс установки состоит из следующих шагов:
Кластер CommuniGate Pro позволяет определенную гибкость в настройках сети, есть возможность:
CommuniGate Pro может управлять сотнями IP адресов и присваивать их конкретным доменам, которые обслуживает.
Иногда администратор может добиться большей производительности от узла кластера, просто перенастроив немного операционную систему. Типичные настройки, подлежащие корректировке:
Конкретные настройки и значения различны в каждом отдельном случае.
Всегда уточняйте у вендора ОС побочные эффекты настроек.
Выбор файловой системы зависит от выбора ОС и системы доступа к данным. Но в любом случае файловая система должна:
Помимо перечисленного настоятельно рекомендуется тщательно проверить бэкенды на производительность до установки CommuniGate Pro и монтирования хранилища.
Выбор аппаратного обеспечения зависит, разумеется, от многих факторов. Примеры в этом разделе основаны на двух стандартных вариантах использования кластера с целью сформировать общее представление о том, какое оборудование и архитектура оптимально и стабильно работает на практике. Следующие параметры влияют на расчет необходимой емкости и производительности “железа”:
Все эти факторы должны быть оценены для формирования требований к аппаратному обеспечению. Основываясь на них и на практике развертывания множества Динамических Кластеров, команда CommuniGate Systems может помочь с выбором платформы и ее параметров.
Тип пользователя | Число пользователей |
---|---|
Всего | 70 000 |
POP | 70 000 |
IMAP/MAPI | 70 000 |
WebMail & Pronto! (Flash) | 70 000 |
Синхронизация с мобильными устройствами | 5 000 |
Сообщения (XMPP/SIP) и статусы (Presence) | 70 000 |
Предполагаемый трафик в процентном соотношении:
Протокол | Доля в трафике (%) |
---|---|
POP | 20 |
IMAP | 20 |
MAPI | 5 |
WebMail | 35 |
Сигналы (XMPP/SIP) | 20 |
Предполагаемое количество одновременно подключенных пользователей: 4 000.
Динамический кластер 3х3.
Фронтенды
HP DL380G6 X5550
CPU: 2 x Intel® Xeon® Processor X5550 (2.66 GHz, 8MB L3 Cache, 95W, DDR3-1333, HT, Turbo 2/2/3/3)
Память: 12 GB
Сетевые контроллеры: 2 x HP NC382i Dual Port Multifunction Gigabit Server Adapters
Контроллер хранилища: HP Smart Array P410i/512MB, BBWC
Операционная система: SuSE or Redhat Linux 64bit
Бэкенды
HP ProLiant DL580G5 X7460 16GB (4P)
CPU: Intel® Xeon® X7460 (6 core, 2.67 GHz, 16 MB L3, 130W)
Память: 16 GB
Сетевые контроллеры: 1GbE NC373i Multifunction 2 Ports
Контроллер хранилища: Smart Array P400i/512MB, BBWC
Операционная система: SuSE or Redhat Linux 64bit
При увеличении количества пользователей до 100 000 конфигурацию нужно усилить одним фронтендом (4х3). При увеличении до 200 000 — 6 фрондендов и 4 бэкенда.
Тип пользователей | Количество пользователей |
---|---|
Всего | 2 000 000 |
VoIP | 90 000 |
Соотношение типов трафика:
Протокол | Доля трафика(%) |
---|---|
RTP | 80% |
XIMSS (Pronto! — сигнализация, почта, календари) | 20% |
Общее число одновременных звонков: 9 000.
Число одновременно открытых пользовательских сессий: 90 000.
Динамический кластер 3х3.
Фронтенды
DELL PowerEdge R710
CPU: 2 x Intel® Xeon® Processor X5550 (2.66 GHz, 8MB L3 Cache, 95W, DDR3-1333, HT, Turbo 2/2/3/3)
Память: 24 GB
Сетевые контроллеры: 2 x HP NC382i Dual Port Multifunction Gigabit Server Adapters
Контроллер хранилища: HP Smart Array P410i/512MB with BBWC
Операционная система: SuSE or Redhat Linux 64bit
Бэкенд
DELL PowerEdge R710
CPU: 2 x Intel® Xeon® Processor X5550 (2.66 GHz, 8MB L3 Cache, 95W, DDR3-1333, HT, Turbo 2/2/3/3)
Память: 16 GB
Сетевые контроллеры: 1GbE NC373i Multifunction 2 Ports
Контроллер хранилища: Smart Array P400i/512MB BBWC
Операционная система: SuSE or Redhat Linux 64bit
В кластерном домене все учетные записи пользователей должны быть доступны всем бэкендам. Мы рекомендуем использовать для организации хранилища NAS с NFS протоколом, так как кластер CommuniGate Pro не использует блокировку файлов на уровне файловой системы, NFS является самым подходящим протоколом для него.
Несколько точек доступа и несколько NFS серверов могут использоваться в одном и том же кластере. Примеры используемых решений:
NETAPP FAS2000 | EMC Celerra NS-120 | SUN Storage 7110 |
---|---|---|
Учетные записи в общем домене сохраняются в папках с подобным путем:
SharedDomains/domainName/accountName.macnt/
Например:
SharedDomains/company.com/aivanov.macnt/
Сохранять десятки тысяч учетных записей в одной директории неудобно (большинство файловых систем медленно открывают папки с большим количеством объектов). Поэтому был придуман механизм “Account-level foldering”, он заключается в том, что учетные записи сохраняются в набор подпапок:
SharedDomains/company.com/a.sub/aivanov.macnt/
или
SharedDomains/company.com/a.sub/i.sub/aivanov.macnt/
или
SharedDomains/company.com/ai.sub/v.sub/aivanov.macnt/
Если на кластере размещается много доменов (примерно от 5 000), то имеет смысл задействовать “Domain-level foldering”:
SharedDomains/c.sub/company.com/aivanov.macnt/
SharedDomains/c.sub/o.sub/company.com/aivanov.macnt/
Или в случае большого количества больших доменов:
SharedDomains/c.sub/company.com/a.sub/i.sub/aivanov.macnt/
Лучше всего выбрать способ разбиения на папки, как только станет известно число пользователей и доменов. Но менять эти настройки можно и в процессе работы кластера.
У CommuniGate Pro есть особенность, которую можно использовать для оптимизации хранилища с помощью SSD.
У каждой учетной записи в папке есть файлы account.setting и account.info. Эти файлы считываются каждый раз, когда пользователь заходит под этой учетной записью, и .info файл изменяется каждый раз, когда метаданные учетной записи меняются (например, при регистрации SIP устройства).
Для повышения общей эффективности хранилища можно сохранить эти файлы отдельно на более дорогом и эффективном носителе(SSD). Для 1 миллиона учетных записей суммарный размер всех таких файлов будет 5-20 Гб.
Например, пусть при стандартной конфигурации кластера файлы хранятся в папке:
SharedDomains/company.com/a.sub/aivanov.macnt/account.settings
SharedDomains/company.com/a.sub/aivanov.macnt/account.info
Тогда если мы включим использование “Fast Storage Type” (установим его на ненулевое значение, например, 1), тогда путь к .info и .settings файлам станет:
SharedDomains/company.com/fast/a.sub/aivanov.settings
SharedDomains/company.com/fast/a.sub/aivanov.info
Таким образом, можно установить быстрое хранилище по адресу
SharedDomains/company.com/fast/, и все .settings и .info файлы будут на него сохранены.
Кластер CommuniGate Pro можно сконфигурировать таким образом, что каждый узел работает и как фронтенд, и как бэкенд. Это называется симметричной конфигурацией:
Эта конфигурация применяется, когда необходимо обеспечить:
Региональное распределение мощностей для лучшего качества соединения и локальный доступ для пользователей.
Сервис для очень большого количества пользователей (более 15 млн. учетных записей) для разделения нагрузки между несколькими Динамическими Кластерами.
SIP ферма это технология компании CommuniGate Systems для кластеризации VoIP и достижения времени доступности сервиса 99.999%, запаса прочности и масштабируемости.
И обычный Динамический Кластер, и Супер Кластер могут быть настроены как SIP ферма (в этом случае мы говорим, что часть узлов выделены в SIP ферму).
Входящие SIP UDP пакеты или TCP соединения распределяются, как обычно, через балансировщики нагрузки. Сервер, получивший пакет, определяет, не должен ли он обрабатываться на другом члене SIP фермы (если это ответ или ACK для уже существующего запроса или пакет для задачи, созданной на конкретном сервере), и пересылает его при необходимости.
Пакеты, не предназначенные конкретным узлам, распределяются между членами фермы по внутрикластерным алгоритмам в соответствии с нагрузкой и доступностью узлов в SIP ферме.
Динамический Кластер по праву считается флагманом всех возможных конфигураций сервера CommuniGate Pro. Исторически, именно «use cases» подобные приведенным в статье — высокопроизводительные сервисы, предназначенные для массового использования, всегда являлись основой дизайна продукта.
Если у Вас есть какие-либо вопросы по продукту, не стесняйтесь обращаться на почту russia@communigate.com. Для сложных технических вопросов — support@communigate.com
Скачать бесплатную (до 5-ти пользователей, без кластера) версию можно на нашем сайте [5].
Автор: stalkersoft
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/voip/45277
Ссылки в тексте:
[1] хостинг: https://www.reg.ru/?rlink=reflink-717
[2] мануале: http://www.communigate.com/CommuniGatePro/ClusterSignals.html#SIPSingleIP
[3] IPVS: http://www.linuxvirtualserver.org/software/ipvs
[4] Cisco Catalyst 2960: http://www.cisco.com/en/US/products/ps6406/index.html
[5] сайте: http://communigate.com/ru/main/purchase/download.html
[6] Источник: http://habrahabr.ru/post/196660/
Нажмите здесь для печати.