Русский
Русский
English
Статистика
Реклама

Pdu

БРП с интеллектом

04.08.2020 16:15:07 | Автор: admin

Блоки распределения питания (PDU)


один из важнейших элементов системы распределения электропитания любого ЦОДа. В ЦОДе среднего размера используются сотни БРП. Сегодня поговорим о том, какую роль они играют как часть инженерной архитектуры дата-центра, какие параметры БРП наиболее важны для клиентов с точки зрения их функциональности.

Любой ИТ-шник знает, что к основным функциям БРП можно отнести поддержку надежного электропитания и защиту от перегрузок. Это базовый набор, который должен выполнять БРП любой модели от любого производителя. Тем не менее на рынке представлены разные виды изделий, которые отличаются друг от друга по параметрам и функциональности. Как сделать правильный выбор? Как разобраться в необходимых характеристиках?

Если говорить о ключевых параметрах БРП, прежде всего нужно понимать, что они эксплуатируется в достаточно жестких условиях: устанавливаются в задней части шкафа, где мало места, но много коммутационных шнуров, высокая (до 50С) температура и т. д. Это значит, что в первую очередь важны такие качества этих решений как надежность и удобство эксплуатации.

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



Параметр удобства предполагает компактность изделия: оно должно легко монтироваться в шкаф и не конкурировать за место с другими коммуникациями, не мешать их работе. В идеале БРП должен быть малогабаритным и низкопрофильным. Экономия полезного пространства машинного зала в силу компактности изделий и различных типов конфигурации БРП может составить до 10%.

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

С точки зрения функциональности всю линейку БРП решений можно разделить на три вида:

  • Базовые (без интеллектуальной составляющей),
  • БРП с мониторингом (позволяют вести учет потребления тока, контролировать показания датчиков и удаленно предоставляют заказчику полную картину по состоянию питания),
  • БРП с мониторингом и управлением, в том числе порозеточно.

Базовые модели


обычно выполняются в двух видах:

  • В горизонтальном исполнении, занимают 1U, поддерживают 1 или 2 типа разъемов, оснащены выключателями или термопредохранителями. Такие модели обычно востребованы компаниями из сегмента СМБ. Они обычно арендуют несколько юнитов в шкафу и не предъявляют повышенных требований к БРП.
  • В вертикальном исполнении (Zero U), имеют низкопрофильный дизайн корпуса и высокую плотность разъёмов, оснащены автоматами с защитой от случайного отключения и поддерживают разные типы разъемов. Для таких устройств главное это надежное питание для большого количества оборудования (до 42 розеток на борту).



Интеллектуальные БРП


выполняют такие же базовые функции, но не ограничиваются ими:

Блоки распределения питания (БРП) с мониторингом С3 Solutions реализуют мониторинг потребляемой мощности и параметров окружающей среды. БРП позволяют подключать несколько датчиков разного типа: температуры, влажности, контроля доступа, дымообнаружения, утечки воды



Пользовательские уставки позволяют предупреждать о слишком высоком или низком значении параметра до того, как произойдет критическое событие. Пользователи имеют доступ к настройке параметров через защищенный веб-интерфейс, с помощью протоколов SNMP или Telnet, а также с помощью клиентского программного обеспечения.

Умные БРП могут обеспечивать групповое управление несколькими устройствами (управление такой группой осуществляется через единый WEB-интерфейс с одного IP-адреса) и осуществлять многопользовательский доступ с настройкой политик доступа.



Управляемые БРП поддерживают вышеперечисленные функции мониторинга, но кроме того:
Управляемые Блоки распределения питания С3 Solutions могут использовать несколько сценариев управления. Розетки могут включаться и выключаться по расписанию, в определённой последовательности или по специальному алгоритму. Например, включается розетка А, и только через 1015 секунд розетка Б. Еще один вариант управления с помощью функции Super Ping. В этом случае БРП с помощью своей системы мониторинга постоянно обращается (посылает команду Ping) к определенному сетевому устройству и ждет от него ответа. Если устройство перестает отвечать, то БРП может, например, перезагрузить конкретную розетку.



Интеллектуальные БРП обеспечивают поддержку всех сетевых протоколов и могут интегрироваться с высокоуровневыми системами мониторинга, и в целом учитывать все технические возможности, которые нужны при эксплуатации в сложных инженерных средах. Такого рода модели пользуются спросом у продвинутых ИТ-компаний и в крупных ЦОДах.

C3 Solutions производит кастомизированные решения, которые могут настраиваться под задачи конкретного заказчика, если в этом есть необходимость. В качестве примера могу привести наш проект для одного из крупнейших банков России. Специально по их требованиям мы выпустили серию двухцветных БРП с фиксацией кабеля в разъеме и зеркальным расположением розеток для каждого цвета. БРП монтировались в стойку с двух сторон, при этом зеркальное расположение облегчало коммутацию эксплуатирующему персоналу. Также в рамках проекта в поставку были включены шнуры питания двух цветов: во избежание путаницы каждый из проводов был синего либо красного цвета и коммутировался в соответствующий БРП. Подобная цветовая маркировка помогает избегать ошибок при подключении оборудования.
Подробнее..

Многофункциональный сетевой контроллер управления и мониторинга Laurent-5G

30.11.2020 10:17:56 | Автор: admin
Название модуля перекликается, но не говорит, конечно, о поддержке 5G мобильной связи, это всего лишь название более продвинутой модели производителя, по сравнению с предшественником Laurent-2G. Однако, отсутствие пробела в нужном месте иногда является неплохим маркетинговым ходом.
image
Внешний вид модуля Laurent 5G компании KernelChip

Новый продукт компании КernelChip (www.kernelchip.ru) выполнен на печатной плате размерами 101 Х 135 мм. Качество платы и установки компонентов на высоком уровне, никаких следов пайки и флюса. Производителем заявлена гарантированная работа платы в диапазоне температур -30 +70 градусов Цельсия.
Модуль имеет весьма достойный набор аппаратных ресурсов: 4 управляемые реле 220В / 7А, 6 входных, гальванически развязанных линий сухой контакт, 5 выходных силовых линий 0,5А, способных коммутировать напряжение до 50В, 8 линий общего назначения GPIO, 4 канала ШИМ, связанных с первыми четырьмя выходными линиями, 5 каналов АЦП на высокостабильном ИОНе, порт RS-232, счетчики импульсов 14 шт., 2 канала 1-Wire, энергонезависимые часы реального времени (RTС), встроенный 2G модем.

Модуль может управляться через порт RJ45, имея приятный и удобный WEB-интерфейс. Причём поддерживается два WEB-интерфейса: аппаратно прошитый и альтернативный, пользовательский, загружаемый в энергонезависимую память. Также поддерживается прямое управление URL командами и через открытый API с обратной связью. Модуль имеет возможность настройки TCP-клиента на отдельном порту для подключения, например, нескольких модулей Laurent к централизованному серверу управления, не мешая при этом работе TCP-сервера каждого модуля. Между модулями kernelChip может быть настроено прямое M2M-взаимодействие.
Модуль имеет программный, постоянно расширяемый производителем, планировщик событий, позволяющий организовывать сценарии между определенными условиями и реакциями модуля. Среди последних нововведений CAT-планировщика поддержка динамических переменных, отражающих состояние отдельных аппаратных ресурсов модуля и датчиков, а также пользовательских переменных, с помощью которых можно вводить дополнительные условия для реакций на события.

GSM-модем модуля позволяет получать произвольные сообщения и отправлять собщения от модуля на заданные номера (пока только на английском языке) длиной до 70 символов. Благодаря гибкой интеграции с CAT-планировщиком можно задать любые имена для выполнения команд пользователя по CMC, а не использовать жестко запрограммированные команды, как в большинстве подобных продуктов других производителей. Также модем позволяет организовывать управление событиями на модуле через DTFM-команды с телефона и сразу по звонку. Имеется возможность настройки белых номеров (до 30-ти).
Laurent-5G поддерживает работу с множеством новых типов датчиков: цифровым датчиком температуры DS18B20 (до 20 датчиков), цифровым датчиком влажности и температуры DHT11, датчиками наличия 220 В, датчиками тока, герконовыми датчиками открытия / закрытия двери, протечки воды, превышения уровня шума, удара/вибрации, разбития стекла, освещенности, движения. Также поддерживаются обработка данных от RFID (Wiegand-26/42) и iButton (Touch Memory DS1990). Вероятно набор датчиков будет расширен, но и того, что имеется более чем достаточно.
Как и все продукты KernelChip, модуль Laurent 5G сертифицирован и производится в России.
Итак, в отличие от своего предшественника Laurent-2G новый Laurent-5G имеет много полезных новшеств и доработок: встроенные часы реального времени, чего явно не хватало предшественнику, поддержку многих новых типов датчиков, больше каналов АЦП, доработанный WEB-интерфейс с улучшенной системой планировщика событий CAT.
К сожалению, существующая последняя прошивка модуля от 02 ноября 2020 г. пока не поддерживает почтовый клиент, что не позволяет отправлять e-mail сообщения. Не поддерживается также DHCP-клиент (настраивается только статический IP-адрес). Также не поддерживается получение времени по NTP, не поддерживается внутреннее журналирование событий и нет поддержки Syslog и SNMP, что хотелось бы иметь любому админу. Обновление прошивки осуществляется специальной собственной утилитой, хотя предпочтительно, чтобы была возможность обновлять прошивку также через WEB-интерфейс.
Есть небольшие замечания и недочеты в редакторе системы CAT-событий, но ошибок в его работе не отмечено.
Устройство продается традиционно в виде печатной платы, а не готового устройства, что делает не корректным его сравнение с законченными отечественными устройствами мониторинга датчиков и управления электропитанием, такими, например, как Netping 4 SMS (ООО Алентис-Электроникс, www.netping.ru) или SNR-ERD-4s-GSM (ООО НАГ, https://nag.ru ), отличающихся также доступной ценой по сравнению с зарубежными аналогами. Однако, есть все основания надеяться, что при явно более богатой аппаратной базе, неустанной постоянной и оперативной работе коллектива разработчиков над улучшениями модуля, Laurent-5G в составе законченного устройства мониторинга и управления в скором времени займет достойное место среди данных устройств и явно может составить им конкуренцию.
Производитель выигрывает перед конкурентами тем, что не скрывает плату модуля от широкого обзора пользователя, предоставляя полные детальные описания и открытый SDK для создания собственного WEB-интерфейса. Возможность поддержки пользовательского WEB-интерфейса также является преимуществом данного модуля, позволяя поддерживать как функционально альтернативные прошивки, так и, например, поддержку в WEB двух языков, английского и произвольного национального.

Продаваемый в виде отдельной платы, Laurent-5G, может быть составной частью любой профессиональной системы мониторинга и управления. Для законченного отдельного устройства модулю не хватает хорошего стильного корпуса с индикацией и разъемами подключения питания и периферии. В корпусном исполнении хотелось бы также видеть встроенный блок бесперебойного питания с ёмким литиевым АКБ, зарядка и состояние которого контролировалась бы самим модулем.
В ожидании законченного корпусного устройства я решил собственными силами установить плату Laurent 5G в хороший алюминиевый корпус, дополнительно снабдив кнопками и пультом управления, но об этом в моей следующей статье.
А пока остается лишь поблагодарить коллектив разработчиков за хороший продукт и пожелать дальнейших успехов в скорейшей доработке Laurent-5G и создании новых модулей.
Подробнее..

Отправляем SMS из ErlangElixir. Короткая инструкция

30.12.2020 10:17:29 | Автор: admin


Photo by Science in HD


Если вам когда-либо приходилось решать задачу отправки SMS из кода вашего приложения, скорее всего, вы использовали готовое REST API поставщика дополнительных услуг. Но что происходит после того, как поставщик получит ваш запрос? Какие протоколы используются и какой путь проходит текст сообщения, прежде чем оказаться на экране мобильного терминала пользователя?


В этой статье вы найдёте:


  1. Немного теории и терминологии SMPP-протокола: SMSC, ESME, PDU, MO/MT SM.
  2. Краткий обзор существующих библиотек для работы с SMPP в Erlang/Elixir.
  3. Пример реализации асинхронного клиента при помощи библиотеки SMPPEX. Возможно, он будет полезен тем, кто ещё не использовал Elixir-библиотеки в Erlang-проектах.
  4. Информацию по обработке deliver_sm, MO SM.

Чего тут точно нет, так это информации по отправке коротких сообщений через SIGTRAN.


Определимся с терминами и понятиями


Прежде чем погружаться в протоколы и код, предлагаю разобраться в терминологии. Если быть придирчивым к определениям, то отправить SMS невозможно. Вспоминается момент из Джентльменов удачи: Кто ж его отправит он же сервис! SMS акроним от short message service, что на русский переводится как сервис/служба коротких сообщений. Если возвращаться к шутке, то отправляем мы SM, т. е. короткие сообщения, используя SMS сервис коротких сообщений.


У каждого оператора мобильной связи есть компонент, отвечающий за работу службы коротких сообщений. Это так называемый SMS-центр, он же SMSC, он же SMS-SC. Его задачами являются хранение, передача, конвертация и доставка SM-сообщений. Наиболее распространенным внешним протоколом взаимодействия с SMSC является SMPP. SMPP клиент-серверный протокол-комбайн, отвечающий за обмен короткими сообщениями в одноранговой сети. Источником SM могут быть устройства и приложения. В терминологии SMPP их называют ESME.


Давайте ответим на вопросы в начале статьи. Итак, ваше сообщение по REST API или SMPP попало к поставщику услуг, у которого заключён договор с одним или несколькими операторами связи или другими посредниками. Сервер поставщика подключается к SMSC и отправляет по SMPP ваше SM, затем получает отчёт о доставке или ответное SM. В процессе обработки SM могут проходить через маршрутизаторы RE. SMSC, сходив в HLR, узнает местоположение абонента и доставит SM абоненту. Общая картина и понимание проблемы, надеюсь, у вас появились. Давайте погрузимся в протокольные тонкости.


SMPP


Выше я сказал, что SMPP протокол-комбайн. Подобный эвфемизм я позволил себе из-за того, что SMPP применим не только для организации обмена SMS, с его помощью можно организовать различные сервисы: ESM, голосовой почты, уведомлений, сотового радиовещания, WAP, USSD и прочие. Весь обмен происходит с помощью пар запрос-ответ. Их называют PDU блоками данных или пакетами.


Инициализация подключения


Перед началом обмена мы должны указать, в каком направлении будет работать наше подключение. За это отвечают соответствующие команды:


  • bind_transmitter клиент может только отправлять запросы на сервер;
  • bind_receiver клиент только получает ответы от сервера;
  • bind_transceiver клиент работает в обоих направлениях, этот режим появился в SMPPv3.4.

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


При выполнении команды привязки мы должны передать параметры безопасности для идентификации нашего ESME: system_id, system_type и password.


SMPP в экосистеме OTP


Недавно у хорошего друга возник вопрос по работе с SMPP в Erlang. Собственно, благодаря этому и родился этот текст.


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



Но есть нюанс Найти адекватную реализацию оказалось непросто.


Наверняка все, кто пытался серьёзно работать с Erlang, знают про его недостаток, связанный с ограниченным выбором библиотек. С SMPP такая же история в OTP нет штатной поддержки этого протокола, а на первой странице выдачи Гугла творится что-то странное:


  • esmpp библиотека со странным API и отсутствующим сообществом;
  • древний OSERL проект стартовал 11 лет назад, последний коммит сделали более 5 лет назад;
  • неподдерживаемый smpp34 последний коммит был более 10 лет назад;
  • куча вопросов вида Какую библиотеку/клиента использовать для SMPP? на тематических форумах.

Лично я бы загрустил от такого разнообразия существующих решений. Особенно, когда хочется асинхронного режима, адекватной поддержки SMPP 3.4 и возможности написать как клиент, так и сервер. Но на помощь приходит Elixir и библиотека SMPPEX.


SMPPEX


Про сам проект скажу только то, что он активный и готов для продакшен-применения. Это стабильная, всесторонняя библиотека для SMPP с продуманным API, хорошей поддержкой разработчиков и отсутствием проблем с лицензией.


От слов к делу


Сначала можно ознакомиться с примерами синхронного и асинхронного клиента в документации. Затем можно перейти к более сложным вещам в контексте использования SMPPEX в Erlang-проекте.


Для иллюстрации возможностей библиотеки возьмём простой сценарий:


  1. Поднять линк.
  2. Отправить сообщение.
  3. Дождаться отчёта о доставке либо обработать входящие сообщения.

Придумаем дополнительные требования. Допустим, мы хотим отправлять MT SM, получать отчёты о доставке и MO SM. При этом по каким-то причинам нам нужны кастомные PDU и полный контроль над линком, поэтому за формирование submit_sm PDU и обработку всех входящих PDU мы будем отвечать сами. При этом мы не должны забывать про требование асинхронности.


Работа с линком


Надеюсь, что сложностей с установкой зависимости из hex.pm у вас не возникло и мы можем приступить к написанию кода. Как говорилось выше, работать мы будем в асинхронном режиме, поэтому запускаем клиента с помощью модуля SMPPEX.ESME:


'Elixir.SMPPEX.ESME':start_link(SmscHost, SmscPort, {?MODULE, [Opts]})

Для синхронного режима существует SMPPEX.ESME.Sync.


Наш клиент готов, и мы можем сделать привязку к SMSC. Предположим, что SMSC поддерживает SMPPv3.4 и мы можем использовать transceiver режим:


'Elixir.SMPPEX.Pdu.Factory':bind_transceiver(SystemId, Pass)

Если всё прошло хорошо, нам должен прийти PDU с командой bind_transceiver_resp:


bind_transceiver_resp = 'Elixir.SMPPEX.Pdu':command_name(Pdu)

Формирование PDU для MT SM


Линк поднят, и мы можем отправить наше сообщение. Соберём PDU для него:


submit_sm_pdu(SourceMsisdn, DestMsisdn, Message, Ttl) ->  {ok, CommandId} = 'Elixir.SMPPEX.Protocol.CommandNames':id_by_name(submit_sm),  {D, {H, M, S}} = calendar:seconds_to_daystime(Ttl),  VP = lists:flatten(io_lib:format("0000~2..0w~2..0w~2..0w~2..0w000R", [D, H, M, S])),  'Elixir.SMPPEX.Pdu':new(    CommandId,    #{      source_addr => SourceMsisdn,      source_addr_ton => 1,      source_addr_npi => 1,      destination_addr => DestMsisdn,      dest_addr_ton => 1,      dest_addr_npi => 1,      short_message => Message,      data_coding => 246,      protocol_id => 127,      %% For concatenated messages      esm_class => 64,      registered_delivery => 1,      validity_period => list_to_binary(VP)    }  ).

Обработка отчетов о доставке и MO SM


После отправки сообщения в линк SMSC ответит нам submit_sm_resp, в котором указан уникальный ID нашего сообщения:


MsgId = 'Elixir.SMPPEX.Pdu':mandatory_field(Pdu, message_id)

Теперь нам необходимо дождаться deliver_sm с этим message_id.


Чтобы отличить отчёты о доставке от MO SM, проанализируем esm_class:


EsmClass = 'Elixir.SMPPEX.Pdu':mandatory_field(Pdu, esm_class),case <<EsmClass>> of  <<_Head : 2, 0 : 1, 0 : 1, 0 : 1, 1 : 1, _Tail : 2>> -> handle_delivery_receipt(Pdu);  <<_Head : 2, 0 : 1, 0 : 1, 0 : 1, 0 : 1, _Tail : 2>> -> handle_standart_message(Pdu);  Some -> ?LOG_ERROR("unknown deliver_sm: ~p", [Some])end

При этом для обработки отчётов о доставке нам достаточно узнать ID доставленного сообщения:


SmsId = 'Elixir.SMPPEX.Pdu':field(Pdu, receipted_message_id)

А для входящих сообщений узнать номер отправителя:


Msisdn = 'Elixir.SMPPEX.Pdu':field(Pdu, source_addr)

и полезное содержимое сообщения:


Payload = 'Elixir.SMPPEX.Pdu':field(Pdu, short_message)

Как известно, спецификация SMPP требует deliver_sm_resp в ответ на deliver_sm. Поэтому после обработки отчёта о доставке и входящего сообщения мы должны ответить deliver_sm_resp. Создадим PDU для него:


deliver_sm_resp_pdu(MessageId) ->  {ok, CommandId} = 'Elixir.SMPPEX.Protocol.CommandNames':id_by_name(deliver_sm_resp),  CommandStatus = 0,  SeqNumber = 0,  'Elixir.SMPPEX.Pdu':new({CommandId, CommandStatus, SeqNumber}, #{message_id => MessageId}, #{}).

Я специально не указываю номер команды, добавим его автоматически:


ReplyPdu = 'Elixir.SMPPEX.Pdu':as_reply_to(deliver_sm_resp(SmsId), Pdu)

Весь код демопроекта можно найти в репозитории: https://github.com/Elzor/smpp_in_erlang.


OTP-тренды


В 2020 году на тренды развития OTP и BEAM всё большее влияние оказывает сообщество Elixir. Чаще и чаще хорошие инструменты и полезные библиотеки можно найти на Elixir, а не на Erlang. Это не повод для тревоги за Erlang, просто Elixir смог заинтересовать и привлечь больше людей в своё сообщество, и это прекрасно. А благодаря OTP для использования той или иной библиотеки нам не важно, на чём она написана. Надеюсь, пример из статьи смог показать гибкость SMPPEX как инструмента и удобство применения библиотек, написанных на Elixir в Erlang-проектах.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru