© 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 функций.
Самое веселое во всей этой истории это то, что чип 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г.)).
Описания :
Первое, что необходимо сказать, что существуют два драйвера для чипа 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 ~]#
Драйвера здесь.
ДОПОЛНЕНИЯ на скорою руку:
* Результаты тестов 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=-