24 авг. 2020 г.

Прошивка SAS3-бэкплейна Supermicro

 Как-то раз мы пытались воспроизвести проблему клиента с мониторингом SAS-бэкплейна через sg_ses на JBOD'е 216BE2C-R741JBOD. Для это, прежде всего, понадобилось обновить прошивку экспандеров.

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

Так же, как и для бэкплейнов SAS-1 и SAS-2, Supermicro предоставляет три файла: основной образ прошивки с расширением fw и два так называемых MFG-образа, для первого и второго экспандера. В MFG прописана конфигурация экспандера: WWN, режимы портов, датчики и т.п.

В примечании к архиву с прошивкой рекомендовалось использовать не ExpanderXTools, а консольную утилиту CLIXTL. Подключаем наш JBOD к HBA 9300-8e, загружаем модуль ядра sg, выводим список экспандеров:
$ sudo ./CLIXTL -l
================================================================================
                        COMMAND-LINE INTERFACE XTOOL
                        version   6.10.C
                        Supermicro Computer ,Inc.
================================================================================
    PRODUCT ID          SAS ADDRESS             DEVICE NAME
01) SAS3x40             500304801F55FE7F        /dev/sg2
02) SAS3x40             500304801F55FEFF        /dev/sg4
Заливаем прошивку во все регионы флеша:
sudo ./CLIXTL -f all -t 500304801F55FE7F -d SAS3-EXPFW_66.16.13.00.fw

Firmware Region 0 - Finished
Firmware Region 1 - Finished
Firmware Region 2 - Finished
Please reset expander to activate
Перезагружаем экспандер, пытаемся прошить MFG (sudo ./CLIXTL -f 3 -t 500304801F55FE7F -d BPN-SAS3-216EL-PRI_16_13.bin -r), а он не шьётся. Нет у нас больше первого экспандера.

Восстановить его помогла статья Pieter'а Viljoen'а, в которой он столкнулся с аналогичной ситуацией на 836-м бэкплейне и подключился через USB-UART. Нужный разъём называется SDB, находится рядом с разъёмом UART. Но нам нужен именно SDB (видимо, это сокращение от sideband).
Переключаем переходник USB-UART на 3,3В и подключаем: RX, GND, TX к пинам 1, 2 и 3, соответственно.
После подключения с экспандером можно общаться через /dev/ttyUSB0. Экспандер присутствует, но без WWN:
sudo ./g3Xflash -s /dev/ttyUSB0 get avail

Initializing Interface..

INFO: Bootstrap is not present on board.

Downloading the Bootstrap
................................................................Download Bootstrap Complete.
..................
Expander: SAS3x40 (SAS_3X_40)

1) SAS3x40 (SAS_3X_40) (00000000:00000000)
Заливаем прошивку:
sudo ./g3Xflash -s /dev/ttyUSB0 down fw SAS3-EXPFW_66.16.13.00.fw 0

Initializing Interface....................
Expander: SAS3x40 (SAS_3X_40)


   Expander Validation: Passed
              Checksum: Passed
Target Firmware Region: 00
       Current Version: 66.16.13.00
   Replacement Version: 66.16.13.00
      Image Validation: Passed

Pre-Validation of image is successful.

Are you sure to download file to expander?(y/n):
***************
Downloading File...........................................................................Download Complete.

Post-validating........................................................Post-Validation of image is successful.

Download Successful.
Заливаем MFG:
sudo ./g3Xflash -s /dev/ttyUSB0 down mfg BPN-SAS3-216EL-PRI_16_13.bin 3

Initializing Interface....................
Expander: SAS3x40 (SAS_3X_40)

      Image Validation: Passed
              Checksum: Passed
       Current Version: 06.02
   Replacement Version: 10.0d

Pre-Validation of image is successful.

Are you sure to download file to expander?(y/n):y

Downloading File...........................Download Complete.

Post-validating........Post-Validation of image is successful.

Download Successful.
Перезагружаем экспандер:
sudo ./g3Xflash -s /dev/ttyUSB0 reset exp

Initializing Interface....................
Expander: SC216-P (SAS_3X_40)

Are you sure you want to reset Expander?(y/n):y

Expander reset successful.
Повторяем для второго экспандера. Далее мы столкнулись с той же проблемой, что и Питер — установился дефолтный WWN, поменять который нельзя. Если у вас только один бэкплейн, то проблемы это не представляет. Но если таких наберется несколько в одной топологии, то это приведет к конфликту адресов. В ReleaseNote к прошивке написано, что для смены WWN нужно использовать CLIXTL с ключом -s, но CLIXTL сообщает, что не знает про такой ключ.

Воспользуемся ExpanderXTools. Это всего лишь графический фронтенд для g3Xflash, но у него есть окно для смены WWN:
Увы, после Update WWN экспандер снова окирпичивается. Видно, что g3Xflash генерирует новый MFG и шьёт его. Видимо, в результате получается какой-то неправильный MFG.

Поддержка Supermicro сообщила удивительную вещь: те версии CLIXTL и g3Xflash, которые лежат в открытом доступе, лишены функционала смены WWN. Предлагают сгенерировать нужный MFG-файлы под конкретный бэкплейн. Это сработало, а для решения проблемы с sg_ses пришлось ещё и вернуть старую прошивку.

На будущее — для прошивки стоит использовать ExpanderXTools или g3Xflash, а использование CLIXTL в соответствии с описанием в ReleaseNotes приводит к окирпичиванию экспандера.

1 комментарий:

  1. Здравствуйте. Возникла аналогичная проблема с BPN-SAS3-216EL2 и sg_ses, полка периодически отваливается, как тут написано https://www.supermicro.com/support/faqs/faq.cfm?faq=33592 . Можете пояснить вот эту вашу фразу "а для решения проблемы с sg_ses пришлось ещё и вернуть старую прошивку."? Т.е. обновление с 66.16.13.00 до 66.16.14.00 не решит проблему? Новую прошивку с SAS\WWN никак кроме как у ТП вендора не получить?

    ОтветитьУдалить