Плата управления сервером — зачем она и что внутри

    Всем привет! С вами снова Максим. Сегодня немного расскажу про плату управления для нашего сервера. В общем-то, она не отличается особенной сложностью, но и пропускать этот компонент тоже никак нельзя — мы с коллегами решили, что все существенные подсистемы и компоненты сервера должны быть освещены.

    Можно ли обойтись без этой платы?


    Тут, может быть, сразу последует вопрос — а зачем вообще выносить функции управления с материнской платы на отдельную карточку? Зачем умножать число компонентов, не проще ли всё засунуть на материнку, как это обычно делают производители серверов?

    Согласен, в обычных условиях и мы поступили бы именно так — но в этом проекте и в таком вопросе пришлось поступить нестандартно. Из-за плотности компоновки материнской платы просто не было лишнего места для размещения чипов BMC, USB-хоста, PCIe-коммутатора и разводки всех связанных с ними цепей. А кроме того, просто не было места на задней панели шасси для установки коннекторов Ethernet/USB напрямую на материнской плате. В общем, мы решили не усложнять и без того сложную системную плату, и вынесли все эти компоненты на отдельную плату управления. Этот способ, кроме всего прочего, даёт больше гибкости в плане будущих доработок и изменений.

    Что внутри?


    Собственно, структурная схема платы весьма проста:


    Структурная схема платы управления сервером.

    Главный компонент — чип BMC ASPEED AST2400, очень популярный и наверняка многим хорошо знакомый. У него есть своя выделенная память DDR3 объёмом 512 МБ.

    Под спойлером краткая ориентировка про BMC, вряд ли интересная опытным в этих сферах людям.
    BMC — это Baseboard Management Controller, контроллер управления системной платой. Он включается при подаче дежурного напряжения на системную плату (т.е. когда кабель подключается к блоку питания), загружает Linux из собственной ROM-памяти. В рабочем режиме мониторит работу системы — собирает информацию с датчиков (обороты вентиляторов, температуры, напряжения и токи на компонентах, датчик проникновения в корпус), считывает коды ошибок памяти, позволяет управлять компонентами системы как автоматически, так и вручную через сеть. Ведёт журналы мониторинга системы, может включать/выключать/перезагружать систему, обновлять прошивку ROM хоста, и т.д. В общем, недремлющая рабочая лошадка.

    К BMC подключен хост USB3.0, для которого мы используем чип TI7340. От него два порта USB3.0 выводятся наружу. Также к BMC прицеплен двухканальный контроллер Gigabit Ethernet (BCM5720), порты которого выведены наружу. Это очень распространённый контроллер, который отлично поддерживается архитектурой POWER.

    Всю эту компанию объединяет PCIe-коммутатор (по цене оптимально было поставить PEX8714), напрямую присоединённый к разъёму для подключения к системной плате. Он разводит PCIe x4 на x2 и 2 по x1.

    Разъём для подключения к системной плате имеет небольшую особенность. Сам-то коннектор полностью стандартный. Но чтобы полностью исключить установку платы управления в обычный PCIe-слот (на материнке у нас есть специальный выделенный слот для платы управления), мы развернули коннектор на 180 градусов и сдвинули его относительно стандартного для PCIe размещения.

    На схеме можно также заметить видеовыход VGA и два последовательных порта — их наружу не выводили, оставили в виде header-ов. Они нужны в основном для отладочных целей — да и на внешней панели низкопрофильной PCIe-карты просто не осталось места после размещения двух USB и двух Ethernet портов.

    Как выглядит плата


    Собственно, геометрия платы получилась такая (плата низкопрофильная, но длинная):


    В левой стороне изображения задняя панель платы — из неё выведены 2 порта USB3.0, а под ними — сдвоенные порты GbE.

    Покажу и нашу любимую техноживопись дорожками по плате:


    Сигналы и питание разведены по 8 слоям.

    Считаю, отлично годится, чтобы распечатать в цвете и повесить на стенку — нарядно, воодушевляюще, и очень жизненно! :)

    Пожалуй, стоит ещё немного сказать про BMC. Прошивку для него мы разрабатываем сами на основе OpenBMC. Собственно, задачи стоят простые:

    1. зафиксировать требования к прошивке и расставить приоритеты по их реализации;
    2. поднять исходный вариант на нашем сервере (адаптировав базовый функционал к нашему железу);
    3. добавить нужный для нас функционал.

    Получившуюся в результате версию, естественно, в OpenBMC будем коммитить.
    YADRO
    49,00
    Discover. Design. Develop.
    Поделиться публикацией

    Комментарии 25

      0
      простите, немного не понял: вы сами скомпоновали материнку и к ней ещё приделали такую плату с пачкой разъёмов?
        0
        ИМХО все очевидно:
        Есть мать — https://habrahabr.ru/company/yadro/blog/308508/
        На матери кроме разъемов памяти и слотов расширения нет ничего и быть не может, ибо не помещается.
        Есть отдельный Management модуль с BMC о котором эта публикация.
          0
          Да, все верно.
          0
          Выше уже правильно написали — в целом да, все именно так :)
          0
          Здравстуйте!

          Позвольте, пожалуйста, полюбопытствовать- как Вы и/или Ваши PCB Designer-ы/CAD librarian-ы, разрабатывают библиотеки футпринтов? Просто смотрю под увеличением на плату и вижу несколько принципиально разных методологий, в числе которых большой интерес представляют скругленные пады: возможно это глюк рендера Allegro, однако сравнивая с результатом PCB Library Expert PRO последней версии, пресловутое скругление в некоторых местах видится несколько с перебором.

          Также хотелось бы спросить вот что: правильно ли я понимаю, в Ваших библиотеках футпринтов не используется courtyard(особенно пропорциональный), при этом зазоры между партами контролируете только через DFA boundary?
            0
            Библиотеки — вещь во многом историческая (зачем заново рисовать футпринт который был нарисован еще пять лет назад?), отсюда может быть некоторый зоопарк конечно: что-то рисовалось давно и совсем другими людьми и даже в бытность нашу в других компаниях, где-то просто берутся футпринты от вендоров компонентов. Основной принцип простой: работает — не трогай!

            Зазор контролируется по DFA.
              0
              Правильно ли я понимаю, вы не следуете IPC-7351, и стало быть, никогда не устанавливаете компоненты courtyard edge-to-edge(т.е по-настоящему плотная упаковка)? И вытекающий вывод- в ваших платах возможны футпринты сделанные по «любой» методологии и/или с любой плотностью во вышеозначенному стандарту: главный критерий- раньше запаивалось и «заработало»?

              Что касается «новый футпринт vs. старый 5 летней давности»- очевидно что результат в пользу нового футпринта, ибо по вышеприведенному стандарту поменялся что land pattern, что courtyard: все это имеет критическое значение как в плане качества пайки, так и возможности устанавливать плотно компоненты. Говоря же о «футпринтах вендоров», очень часто бывает что они сделаны либо кривовато, либо попросту скопированы с сомнительных мест- особенно это касается платных библиотек американского происхождения.

                0
                Не совсем так. Мы в первую очередь ориентируемся на рекомендации производителей компонентов из документации на компоненты. Если там футпринт отсутствует — естественно делаем по IPC. Иногда футпринты слегка правятся при получении фидбека от наших партнеров — производителей PCB (это может быть вызвано их технологическими ограничениями или опытом).

                Если компонент пять лет назад прекрасно паялся и мы не имели брака с ним — нет повода считать, что брак появится сейчас из-за того, что в IPC изменились рекомендации. И здесь даже не то, что «лучшее — враг хорошего» — просто у нас и без перелопачивания по десять раз библиотек хватает занятий. И да, никакие платные библиотеки (или просто библиотеки скачанные непонятно откуда) мы не используем. Логика всегда простая, в порядке убывания предпочтительности — либо берется уже готовый футпринт от производителя компонента (кто-то выкладывает их в явном виде, где-то можно быстро выдрать из выложенных референс-дизайнов), или рисуем его сами по рекомендациям из datasheet'а, или рисуем сами по IPC. И естественно везде не выключаем голову (это насчет кривовато сделано — да, бывает, но редко довольно).
            0
            > Считаю, отлично годится, чтобы распечатать в цвете и повесить на стенку — нарядно, воодушевляюще, и очень жизненно! :)
            Так тогда сделайте картинку в высоком разрешении и raw/bmp/tiff-формате.
              0
              А PNG чем плох? Он же без потерь жмет.
              0
              Вы издеваетесь?
                0
                Нет.
                  +1
                  Я понимаю, что это блог компании и описываемая железка наверняка с кучей навешанных ярлыков авторских прав, патентов, NDA и т.д. Открывая статью на хабре в хабе Разработка с подобным названием (не от ализара) хочется прочесть что-то более техническое и более развернутое, а не упоминание пары чипов на пару картинок.
                  Вкратце: очень разочаровали.
                    –1
                    Зачем? Это мало кому интересно.
                    При всей своей технической направленности — данный ресурс является в первую очередь развлекательным. Поэтому тексты должны читаться легко а картинки быть красивыми.
                      +1
                      Мы описываем разработку сервера, и статьи в целом освещают его устройство (даже эта, хотя она конечно совсем поверхностная, но тем не менее). Можно начать описывать какие-то совсем узкие технические аспекты — но круг лиц, кому это хоть как-то может быть интересно будет совсем небольшим.

                      Для нас эти статьи в первую очередь — просто worklog, а не цикл мастер-классов.
                  0
                  А в какой программе сделана разводка платы, в которой (проге) сделаны скриншоты?
                    0
                    Cadence Allegro
                      0
                      Используете ли IFP/GRE а также опцию предоставляющую возможность одновременной работы нескольких человек?
                        0
                        Первое — да, а тимдизайн — нет.
                          0
                          Т.е по сути отдельно взятый проект серверной матплаты разводит также отдельно взятый человек?
                            0
                            Отдельно взятую серверную плату делает один человек, да.
                              0
                              Если не секрет, сколько по времени «в среднем» это занимает?
                                0
                                Единицы месяцев. Больше месяца назад у нас был первый пост, в котором были видны уже некоторые прикидки и наброски по плате. Они сами по себе, понятное дело, требовали времени. Сейчас работа по трассировке сильно продвинулась, но сказать что через две недели совсем закончим — точно нельзя. Плюс еще будет цикл ревью, как внутреннего, так и внешнего (IBM) — это тоже время.
                    0

                    а почему отказались от стандартного порта и сделали свой для платы?

                      0
                      Помимо PCIe через этот коннектор проходит еще много всяких специфических сигналов (например для подключения BMC к менеджмент-шине процессоров), не предусмотренных в стандартной распиновке PCIe слота.

                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                    Самое читаемое