Статья
Версия для печати
Обсудить на форуме (12)
Перепрошивка контроллера LSI SAS 1068E для работы с Linux.


Автор: RXL (rxl@mail.ru)
Дата написания: 24.07.2010


Надеюсь, что описание моих злоключений поможет вам сэкономить время.

Знакомство.

Мое знакомство с контроллером LSI SAS 1068E, который встроен в материнскую плату X8DTL-3 сервера Supermicro, началось не слишком приятно. Для начала, у него неприятное название — «Software Raid». Почему "программный", если используется специальный чип? Вставил два SAS диска, создал через конфигуратор BIOS-а RAID1 и попробовал начать установку CentOS 5.5 x86_64.

Первая шишка.

Установщик не увидел собранного рейда совсем.
На диске прилагаются драйвера для RHEL 5.3 - CentOS его полный аналог, но этот модуль не подойдет, так как собран под версию ядра полуторалетней давности. Подход с предкомпиленными драйверами не годится совсем — что с ними делать при обновлении ядра? Это как-то несерьезно.
Порылся в интернете и прежде всего на сайте производителя — LSI. Там предлагается то же самое.
В сети утверждают, что поддержка есть в ядрах, начиная с 2.6.22, а RHEL 5/CentOS 5 используют ядро 2.6.18. А ждать CentOS 6 с ядром 2.6.32 можно еще полгода.
На всякий случай почитал мануал на предмет, что этот рейд вообще может, и какие его преимущества перед программным рейдом Linux (mdadm). Утилиты управления у контроллера — только GUI — это неудобно. Упомянутые в мануале Command Line Tools ни на прилагаемом диске, ни на сайте LSI не существуют. Ну, вообще никакого сервиса...
Даже если найти нужный драйвер и сконфигурировать массив через BIOS, то управление и мониторинг исключаются. Вижу, что смысла использовать такой рейд никакого! Значит, не будем мучать себя и сделаем софтовый рейд средствами Linux.

Шишка вторая.

Выключаю сервер, снимаю перемычку, которая переводит контроллер из режима SR (Software Raid) в режим IT (Integrated Target mode), снова включаю и начинаю установку CentOS. Ура! Linux увидел это чудо природы и даже установился на него!
Радость закончилась при перезагрузке по завершении установки: BIOS не видит дисков в режиме IT. Ну и бяка...

Попытка исправить контроллер.

Я снова порылся в Интернете и нашел, что не первый с этим сталкиваюсь и нужно перепрошить контроллер, лишив его возможности создавать рейд-массивы, но дав возможность загружаться как с обычных дисков. Замечу, прошивка фирменная. И тут не обошлось без шишек: множество найденных рецептов перепрошивки (по сути, они все одинаковые) предлагают скачать «самую свежую» firmware, но реальная ее свежесть — 2006-2007 год. Кстати, так и не удалось мне перешить с этой «свежей» прошивкой.

Борьба с DVD. Дискеты.

Еще одна бяка оказалась в том, что производитель предлагает выполнить процедуру перешивки путем записи ее на дискету: сперва грузимся с загрузочной дискеты в DOS, потом вставляем дискету с прошивкой и далее по инструкции. Не тут то было — материнская плата не поддерживает флопик!
Выход — создание загрузочного CD или DVD (разницы в формате никакой). Беру Nero 8 и пробую сделать загрузочный диск с его образом DosBootimage.IMA (на нем бесплатный DR-DOS). Создал проект, накидал туда файлы для перепрошивки, записал, гружусь. Странное дело — файлы загрузочного образа есть, а моих файлов нет. И нет никакого диска от B до Z, где они могли бы быть. Ну, не приходилось мне еще делать загрузочные болванки...
Поступил так: перебросил образ дискеты на рабочую Linux-машину и смонтировал ее в директорию:

mount -t vfat -o loop,rw /tmp/DosBootimage.IMA /tmp/img

После работы "дискету" надо отмонтировать:

umount /tmp/img

После переносим ее на Windows и предлагаем Nero создать проект загрузочного диска, где подсовываем наш образ дискеты.
Некоторая проблема была в том, что firmware просто не умещалось вместе с DR-DOS на стандартных 1.44 МБ - пришлось удалить все, что не требовалось для загрузки.

Вторая попытка. Успешная.

После долгих поисков мне удалось найти подходящую прошивку. Человек, который ее выложил, написал, что получил ее от службы поддержки Supermicro. Спрашивается, почему тогда на их сайте лежит старье?...
Повторил все операции по созданию образа дискеты и записи его на DVD. Загрузился и далее пошел по инструкции. И счастье наступило!

Инструкция.

Процесс перешивки firmware такой:

  • Перемычка в положении SR. Грузимся и запускаем clear.bat.
  • Выключаем сервер и снимаем перемычку (переходим в режим IT). Рекомендуется выдернуть шнур питания и подождать секунд 30.
  • Загружаемся и запускаем l8i.bat.
  • Выключаем сервер (аналогично п.2, только перемычку назад не ставим).
  • Можно пользоваться.

Вместо входа в конфигуратор RAID по Ctrl+M появился вход по Ctrl+C. Там ничего особо интересного. И рейда больше нет. Зато BIOS теперь видит все SAS диски и позволяет с них грузиться!
Дабы вам не мучиться, прилагаю образ дискеты. Скачать можно тут. Файлы я положил в директорию «A:\fw», так что после загрузки сперва делаем cd fw, а потом уже запускаем батники.

Борьба в dmraid.

Следующей проблемой становится установщик CentOS: он обнаруживает на дисках метки рейд-массива и с помощью dmraid собирает их в софтовое подобие аппаратного массива. Зачем? Я же хочу mdadm! Видимо, надо было перед перепрошивкой расформировать массив.
Лечение сводится к затиранию меток на дисках. Для этого можно в установщике переключиться на вторую виртуальную консоль комбинацией Alt+F2 (если установщик графический, то Ctrl+Alt+F2).
Еще удивление вызвал факт, что утилита dmraid умеет только использовать эти метки, но отказывается их создавать и удалять. Затер с помощью dd и перезагрузился. Больше dmraid не безобразничает. И слава Богу! Утилита mdadm намного удобнее, проще и позволяет собирать не только из целых дисков, а также из разделов и даже дискет или loop-устройств.
Версия для печати
Обсудить на форуме (12)