5 мар. 2014 г.

Прошивка SAS2 экспандеров Supermicro

Еще в середине прошлого года Supermicro выпустила прошивку 55.14.18.0 для своих SAS2 экспандеров. Помимо решения нескольких проблем с SES, данный релиз исправляет известную проблему совместимости с контроллерами Adaptec.
Процедура прошивки подробно описана в краткой инструкции к пакету Expander Xtools Lite. Все замечательно работает, можно использовать обычные прошивки для Adaptec и заодно устранить постоянное появление в логах сообщений "Fan failed" (вентиляторы обычно подключают не к бэкплейну, а к материнской плате, в результате бэкплейн через SES постоянно сообщает контроллеру о выходе из строя вентиляторов).
Как выяснилось, при прошивке 2-экспандерных конфигураций в корпусах 216-й серии (бэкплейн BPN-SAS2-216EL2) штатным способом нарушает совместную работу экспандеров (подробности будут ниже). Решение проблемы — прошивать при помощи консольного xflash напрямую, без использования GUI.

Суть проблемы

В dual-domain топологии используется доступ к SAS дискам через два экспандера. SAS диски имеют по два PHY, один из них выходит на первый экспандер, другой — на второй.
Такой способ подключения поддерживают все современные RAID-контроллеры Adaptec и LSI. Помимо некоторого увеличения производительности (что можно получить, просто подключившись к единственному экспандеру через x8 линк вместо x4), такая топология позволяет создать отказоустойчивое подключение. В пределах сервера это малоинтересно, но при подключении нескольких SAS JBODов (дисковых полок) каскадом это является крайне необходимым. Чтобы отключение кабеля или питания на любой из дисковых полок не приводило к потере доступа к другим полкам, подключенным ниже по цепочке, для второго порта применяется обратное каскадирование: экспандеры №1 каскадируются по-порядку (контроллер->полка_1->полка_2->полка_3), а экспандеры №2 — в обратном порядке (контроллер->полка_3->полка_2->полка_1).
Контроллеру для осознания того факта, что оба подключенных к нему экспандера находятся на одном бэкплейне (т.е. для корректной работы SES) и являются частью топологии с общими дисками нужны две вещи:

  • корректные SAS-адреса на экспандерах (заканчивающиеся на 7F и FF для первого и второго экспандера)
  • разные т.н. enclosure id

После прошивки FW 55.14.18.0 штатным способом мы получаем удручающую картину:
Это скриншот LSI MSM, из которого видно, что доступ к дискам осуществляется только через один экспандер. По отдельности они работают, но при совместном подключении один из них "повисает в воздухе". Скриншот здорового человека должен выглядеть так:

Прошивка
Для работы понадобятся:

  • Linux или Windows Server 2008/2008R2.
  • Контроллер SAS2 HBA LSI 9211-4i/-8i или другой HBA на базе чипов LSI 2004/2008 c IT или IR прошивкой или SAS2 RAID контроллер LSI 9260/9261/9265/9266/9271 или другой на базе чипов LSI 2108/2208.
  • Бэкплейн с SAS2 экспандером или экспандерами ("SAS2" в партномере. Например BPN-SAS2-216EL2). Будьте осторожны, можно случайно взять и прошить SAS1 экспандер и получить кирпич.

Мы не можем выложить образы прошивок в открытый доступ, только индивидуально, по запросу.
Процесс:
  1. Получаем WWN экспандеров:
    xflash -i get avail
    
    c:\smc>xflash -i get avail
    
    ********************************************************************************
        Xflash
    
        LSI SAS Expander Flash Utility
    
        Version: 7.0.0.0
    
        Copyright (c) 2010 LSI Corporation.  All rights reserved.
    ********************************************************************************
    
    Initializing Interface.
    Expander: SAS2x36
    
    
    1) SAS2x36 (50030480:00CF9E7F)  (0.0.0.0)
    2) SAS2x36 (50030480:00CF9EFF)  (0.0.0.0)
    
  2. Закачиваем FW в region 0 и в region 2 первого экспандера и ресетим его. После ресета может появится окно MSM с сообщением о том, что "communication with enclosure lost".
    xflash -i 5003048000CF9E7F down fw sas2xfw_55.14.18.0.fw 0
    xflash -i 5003048000CF9E7F down fw sas2xfw_55.14.18.0.fw 2
    xflash -i 5003048000CF9E7F reset exp
    
  3. Ждем пока экспандер перезагрузится (секунд 10) и шьем MFG. В данном случае выбран файл с "nofan", так как все вентиляторы будут подключены к материнской плате.
    xflash -i 5003048000CF9E7F down mfg sc216mfg_primary_fw55_14_18_0_mfg_2_38_nofan.bin
    xflash -i 5003048000CF9E7F reset exp
    
  4. Опять ждем перезагрузки и проверяем версию.
    xflash -i 5003048000CF9E7F get ver 1
    
  5. Повторяем то же самое для второго экспандера.
    xflash -i 5003048000CF9EFF down fw sas2xfw_55.14.18.0.fw 0
    xflash -i 5003048000CF9EFF down fw sas2xfw_55.14.18.0.fw 2
    xflash -i 5003048000CF9EFF reset exp
    
    xflash -i 5003048000CF9EFF down mfg sc216mfg_secondary_fw55_14_18_0_mfg_2_38_nofan.bin
    xflash -i 5003048000CF9EFF reset exp