Adaptec Ultra-320 (AIC-7902W) Host-RAID on RedHat Linux.

© Alec Voropay, 2003

    Я потратил два чудесных дня, пытаясь поставить SCSI Ultra-320 Host-RAID на Adaptec AIC-7902W под Linux RedHat. Проблема состояла в том, что необходимо было поставить систему RedHat 7.3 на RAID.

    Во первых, о чем речь? Компания Adaptec выпустила новый чип: Adaptec AIC-7902W. Именно так называется сама микросхема (чип). Это полноценный одночиповый двухканальный SCSI-320 контроллер на шину PCI-X (64-бита 133Mhz).

    Чип очень хороший, быстрый и недорогой.

    Кроме того, по заявлениям Adaptec, этот чип умеет поддерживать RAID -0 и -1. Однако к сожалению, это всего лишь так называемый HostRAID. Что именно означает это наименование, Adaptec не поясняет, но по видимому, что-то типа "полу-аппаратного" RAID (по типу WinModem) или вообще чисто софтовое решение. То есть, обработка контрольных сумм RAID выполняется на процессоре сервера (Host) вместо спец-процессора контроллера (ControllerRAID). Естественно, Adaptec выпускает также и полноценные "железные" RAID-контроллеры (Adaptec SCSI RAID 2120S, 2200S и т.д.), но мы здесь их не рассматриваем. Кроме того Adaptec поддерживает ту же HostRAID-технологию еще и для IDE и SATA контроллеров, это еще больше укрепляет нашу уверенность в "софтовости".

    Этот "как-бы"-RAID размечается через Adaptec BIOS (SCSI-Select Utility), но увы, "обычный" драйвер AIC-7902W (aic79xx) увидит всего лишь набор отдельных дисков. То есть, для поддержки RAID-функций мы или можем работать в DOS через INT13 Adaptec BIOS (что, согласитесь несколько неудобно ;) либо искать специальный драйвер с поддержкой этих самых HostRAID функций.


"Дешевое RAID решение для вас".

    Самое веселое во всей этой истории это то, что чип AIC-7902 стал очень популярен у производителей серверных материнских плат (на процессорах Intel P-IV, Xeon и чипсете i875P/E7210/E7501/E7505).

Например:

и т.д. (Присылайте еще)

    Сама компания Adaptec выпускает несколько контроллеров, сделанных на чипе AIC-7902W : 39320D-R и 39320-R (оба двухканальные, отличия только в разъемах). Одноканальные 29320-R и 29320LP-R сделаны на чипе AIC-7901W.

ВНИМАНИЕ! : производители мамок встраивают Adaptec BIOS (SCSI-Select Utility) прямо в BIOS материнской платы, поэтому обновить BIOS Adaptec удается далеко не всегда, а при попытке воспользоваться родными утилитами Adaptec BIOS Flash Update (от контроллеров Adaptec) можно начисто убить BIOS мамки вообще.

    Утилита SCSI-Select Utility, необходимая для первоначальной разметки дисков в RAID в свободном виде (кроме как в Adaptec BIOS) похоже не встречается.

    В защиту компании Adaptec можно сказать, что она предлагает технологию "Zero Channel RAID", когда в выделенный PCI- слот мамки втыкается спец-контроллер RAID (RISC-процессор, без SCSI кабелей вообще), например ASR-2010S, который перехватывает управление и превращает встроенный AIC-7902-чип в полноценный "железный" SCSI контроллер (ControllerRAID). Но стоит это, конечно, отдельных денег (~270$ (oct. 2003г.)).

    Описания :


Драйвера Linux.

    Первое, что необходимо сказать, что существуют два драйвера для чипа Adaptec AIC-7902.

    Драйвер a320raid не существует в исходных текстах, более того, при загрузке (по insmod, так как это обычный модуль ядра) пишет, что не распространяется под лицензией GPL и наше ядро теперь того tainted, не GPL. Загляните на форум Adaptec.

    Драйвера Adaptec с поддержкой HostRAID доступны здесь.


Проблемы

    Проблема с этим драйвером связана именно с тем, что он выполнен в виде бинарного модуля ядра и поэтому требует ядро Linux строго определенной версии. Поэтому, например, установка HostRAID драйвера на RedHat Linux 7.3 вызывает очень серьезные проблемы.

    Самые первые версии драйверов Linux с поддержкой HostRAID появились на сайте тех-поддержки Intel для серверных мамок, например для мамки SE7501HG2. Это были драйвера для RedHat 8.0 и S.U.S.E.

    Локальная копия здесь :     ( RedHat 8.0 ставится без проблем )

    К счастью, сейчас Adaptec выложил драйвера на сайте и их не приходится искать. Однако проблема с бинарностью драйверов остается и они по-прежнему требуют точных версий ядра.


Техническая информация.

    Описанный выше файл - это инсталляционная дискета для RedHat 8.0, выполненная в стандарте RedHat Driver Disk и отформатированная в ext2fs (хотя можно было бы сделать и обычный vfat). Перенести img на флоп можно командой dd или rawrite. Подключается она в момент инсталляции RedHat c CD при загрузке командой:  linux dd

    Содержимое: 

[root@on ~]# mount -t ext2 -o loop a320raid_rh80.img /mnt/floppy/
[root@on ~]# ls -la /mnt/floppy
total 477
drwxr-xr-x    2 root     root         1024 Dec 21  2002 .
drwxr-xr-x    7 root     root         4096 Sep  2 18:31 ..
-rw-r--r--    1 root     root           50 Dec 19  2002 modinfo
-rw-r--r--    1 root     root       475629 Mar 29 05:45 modules.cgz
-rw-r--r--    1 root     root          962 Dec 19  2002 modules.dep
-rw-r--r--    1 root     root          571 Dec 19  2002 pcitable
-rw-r--r--    1 root     root           28 Dec  7  2002 rhdd-6.1

     Файл modules.cgz - это обычный запакованный cpio архив :

[root@on ~]# zcat /mnt/floppy/modules.cgz | cpio -i --list
2.4.18-14smp/a320raid.o
2.4.18-14/a320raid.o
2.4.18-14BOOT/a320raid.o
2155 blocks

    Таким образом, после инсталляции мы получаем нормально загружаемую с RAID /dev/hda1 систему RedHat Linux 8.0 c драйверами AIC-7902 c поддержкой HostRAID. Вот образец :

[root@on ~]# dmesg
...
...
scsi0 : Vendor: ADAPTEC  Model: AIC-7902(A4)
scsi1 : Vendor: ADAPTEC  Model: AIC-7902(A4)
  Vendor: ADAPTEC   Model: RAID 1            Rev: 1.0
  Type:   Direct-Access                      ANSI SCSI revision: 00
  Vendor: ADAPTEC   Model: RAID 1            Rev: 1.0
  Type:   Direct-Access                      ANSI SCSI revision: 00
Attached scsi disk sda at scsi1, channel 0, id 8, lun 0
Attached scsi disk sdb at scsi1, channel 0, id 10, lun 0
SCSI device sda: 71687297 512-byte hdwr sectors (36704 MB)
Partition check:
 sda: sda1 sda2
SCSI device sdb: 71687297 512-byte hdwr sectors (36704 MB)
 sdb: sdb1
...
...
[root@on ~]# lsmod
Мodule			Size	Used by	Not tainted
e1000		       56332	 2
a320raid	      392704	 3
sd_mod 		       13552	 6
scsi_mod	      110344	 2 [a320raid sd_mod]
...
[root@on ~]#
[root@on ~]# modinfo a320raid
filename: /lib/modules/2.4.18-14smp/kernel/drivers/scsi/a320raid.o
description: "Adaptec A320RAID HostRAID driver v1.0.11-1434"
author: "Adaptec A320RAID team: Mark Salyzyn, Madhuresh Naqshain,
Manjunath Narayanaswamy, Rakesh Sachdeva, Farrukh Burney, Satish
Vasudeva, Kartik Thangavelu, Parul Samdarshi, Robert Tarte, Terrence Hu ..."
license: "Adaptec"
[root@on ~]#


RedHat 9

Драйвера здесь.


Выводы.


ДОПОЛНЕНИЯ на скорою руку:

 *   Результаты тестов Hot-Swap: вытаскивание SCSI винта на ходу (стоит Intel Hot Swap Board, корпус SC5200) никак не отображается в системных логах Linux и т.д. После возврата винта на место, к нему начинаются интенсивные обращения, по видимому, восстанавливается RAID. В логах - пусто.

*    Ядро Linux само имеет неплохой бесплатный встроенный Software RAID (md). Во многом он не уступает HostRAID технологии, даже умеет грузится с RAID. Кроме того, у Linux RAID есть удобные программы администрирования RAID (raidtools, mdctl, mdadm), чего нету у a320raid.

*    Книжка Managing RAID on Linux

*    Самая последняя информация, что md поддерживает Adaptec Metadata в последних версиях ядра (не тестировалось).

*    Вместо md можно использовать Linux Volume Manager (LVM), он тоже поддерживает striping. См. LVM HOWTO и Logical Volume Manager HOWTO.

*    Windows NT 4.0 и Windows 2000 также имеют встроенный программный RAID-0 и RAID-1.

*    Кроме того :

*     Как похакать бинарный драйвер:

From: McMCC
Date: 24.10.2003 1:45:16

Вообще-то, эта проблема решается с помощью objcopy... Но если
не охота разбираться, то можно найти скрипт под именем fixscript ...
Делается это примерно так:

# fixscrip oldmodule.o newmodule.o
# insmod newmodule.o

P.S. Можно взять fixscript у меня, я его немного модернизировал и
выложил сюда:
http://mcmcc.bat.ru/mypatches/fixscript

Таким образом можно заставить работать любой модуль драйвера
собранный с одной версией ядра на каких угодно других версиях
кернеля, правда 100% гарантии нет, но все что я пробовал - работало!

*    3dnews: FAQ по практической реализации RAID

*    Чипы Adaptec : Adaptec PCI ID. Используйте lspci

*    Installing Debian 3.0 (woody) with Adaptec HostRAID support

*    Как установить ALT Linux Master 2.2 на SCSI-контроллер AIC-7920W фирмы
Adaptec (aic79xx)


--
-=AV=-


Last change : 26-02-2004