Мини-HOWTO: Аппаратный RAID DPT в Linux

Аннотация

Процесс настройки аппаратного RAID под Linux.


Введение

В этом документе описывается процедура установки и настройки аппаратного SCSI RAID, в основном, на примере хост-контроллеров фирмы DPT, хотя принципы, приведенные здесь, применимы и в других случаях.

Используйте информацию, приведенную здесь, на собственный страх и риск. Я не несу никакой ответственности за то, что вы можете натворить после прочтения этого документа. Наиболее свежую версию этого документа можно найти по адресу http://www.ram.org/computing/linux/dpt_raid.html.

В этом документе я предполагаю, что у вас установлен Linux. Также заметьте, что я испытывал только контроллеры DPT Smartcache IV PM2144UW и PM3334UW, со стойками DPT SmartRAID tower и Wetex, и не пробовал другие настройки. Поэтому, в случае использования другого оборудования, процедура может отличаться.


Поддерживаемые контроллеры

На настоящий момент существует только один хорошо поддерживаемый Linux хост-контроллер RAID (т.е. контроллер, для которого есть драйвер для Linux) - это контроллер фирмы DPT. Однако, существуют другие хост-контроллеры и контроллеры SCSI-SCSI, которые могут работать под Linux. Их производят фирмы Syred, ICP-Vortex, а также BusLogic. К тому же, существуют различные SCSI-SCSI контроллеры. Смотрите страницу "RAID в Linux".

Если в будущем будет реализована поддержка других контроллеров, я приложу все усилия, чтобы внести информацию об этих контроллерах в этот документ. Пожалуйста, посылайте мне любую информацию, которая, как вы считаете, имеет отношение к этому HOWTO.


Контроллеры DPT

Этот документ ориентирован исключительно на контроллеры фирмы DPT. Описана поддержка, практически, всех контроллеров серии SmartRAID IV.


Контроллеры Vortex фирмы ICP

Серия Vortex фирмы ICP представляет из себя полный набор всевозможных контроллеров, поддерживающих Linux. Драйвер ICP встроен в ядро Linux, начиная с версии 2.0.31. Все основные дистрибутивы Linux содержат этот драйвер; S.u.S.e., LST Power Linux, Caldera и Red Hat поддерживают контроллеры фирмы ICP в процессе загрузки и установки. RAID-система легко настраивается при помощи ROMSETUP (для настройки не надо загружать MS-DOS!).

Утилита мониторинга GDTMON позволяет управлять всей системой ICP RAID (узнать скорость передачи, настроить параметры контроллера и жестких дисков, менять сломавшиеся диски и т.п.). На текущий момент существуют следующие модели: одно- и двухканальные Wide- и Ultra-SCSI контроллеры для RAID 0 и RAID 1; одно-, двух-, трех- и пятиканальные Wide- и Ultra-SCSI контроллеры для RAID 0, 1, 4, 5 и 10; одно- и двухканальные Wide- и Ultra2-LVDS SCSI контроллеры для RAID 0 и RAID 1; одно-, двух-, трех- и пятиканальные Wide- и Ultra2-LVDS SCSI контроллеры для RAID 0, 1, 4, 5 и 10; одно- и двухпортовые оптоволоконные контроллеры для RAID 0, 1, 4, 5 и 10; скоро должны появиться 64-битные UW-SCSI контроллеры.


Какое оборудование использовать?

Контроллер

Имея настолько богатый выбор, вам, при необходимости установить RAID, придется серьезно и аккуратно решить, что же вам надо. В зависимости от ваших потребностей и уровня RAID, который вы собираетесь использовать, некоторые контроллеры могут быть лучше, некоторые хуже. Адаптеры SCSI-SCSI может быть не настолько хороши, как хост-контроллеры (смотрите Сравнение хост- и SCSI-SCSI адаптеров фирмы DPT). Michael Neuffer (neuffer@kralle.zdv.uni-mainz.de), автор драйвера EATA-DMA, прекрасно описал эту разницу на странице Высокопроизводительные SCSI и RAID в Linux.


Стойки

От типа стойки зависит возможность горячей замены винчестеров, системы предупреждения (т.е. существует ли система индикации сбоев, и отображается ли повреждение конкретного носителя), и дополнения к самим носителям (например, система воздушного охлаждения или система дополнительного питания). Сначала мы использовали стойки фирмы DPT - RAID-5 на 18 Гб, но они достаточно дороги. Теперь у нас установлена стойка фирмы Wetex (http://www.wetex.com/), имеющая такие же возможности, но стоящая почти вчетверо дешевле. Теперь у нас установлена стойка Wetex на 14 слотов, из которых мы сделали 2 RAID-5, размерами 45 Гб и 63 Гб соответственно.


Установка

Установка и настройка оборудования

Внимательно прочтите инструкции по установке карты контроллера и винчестеров. В случае с контроллерами фирмы DPT, менеджер контроллера для Linux для них до сих пор не написан. Вам понадобится системная MS-DOS дискета (обычно ее можно сделать командой format /s из приглашения MS-DOS. Затем вы можете использовать менеджер контроллера фирмы DPT для MS-DOS (сделайте на всякий случай его резервную копию).

После установки контроллера, загрузите DOS при помощи этого диска. Далее вставьте дискету с менеджером контроллера и запустите его командой:

a:\ dptmgr

После минуты ожидания (или около того), вы увидите красивое меню с большим количеством опций. Настройте ваш набор дисков, как аппаратный RAID (один логический массив). Выберите "прочая" ("other") в пункте "операционная система".

Менеджер контроллера для MS-DOS значительно проще использовать с мышью, поэтому вам может понадобиться драйвер мыши на первом (загрузочном) диске.

В принципе, существует теоретическая возможность запустить менеджер контроллера DPT для SCO Unix под Linux, но это может оказаться сложнее, чем это того стоит. Скорее всего, будет проще запустить под Linux все тот же менеджер контроллера для MS-DOS.


Настройка ядра

Вам надо будет встроить в ядро поддержку SCSI и соответствующий драйвер низкого уровня. Читайте "HOWTO: Ядро", чтобы узнать, как собрать ядро. После того, как вы включите поддержку SCSI (SCSI support), в разделе драйверов низкого уровня, выберите соответствующий драйвер (EATA DMA или EATA ISA/EISA/PCI для большинства EATA DMA-совместимых карт (DPT), EATA PIO для очень старых карт моделей PM2001 и PM2012A фирмы DPT). Многие драйверы, включая EATA DMA и EATA ISA/EISA/PCI, должны быть в новых версиях ядер.

После сборки ядра перезагрузите систему, затем проверьте, все ли правильно настроено. Вы должны увидеть драйвер, распознающий RAID, как один SCSI-диск. Если у вас RAID-5, то размер этого диска будет равен 2/3 суммарного объема дисков, входящих в массив.


Сообщения при загрузке

Ниже приведены примерные сообщения, выдаваемые драйвером EATA DMA при загрузке:

EATA (Extended Attachment) driver version: 2.59b
developed in co-operation with DPT
(c) 1993-96 Michael Neuffer, mike@i-Connect.Net
Registered HBAs:
HBA no. Boardtype    Revis  EATA Bus  BaseIO IRQ DMA Ch ID Pr QS  S/G IS
scsi0 : PM2144UW     v07L.Y 2.0c PCI  0xef90  11 BMST 1  7  N  64 252 Y
scsi0 : EATA (Extended Attachment) HBA driver
scsi : 1 host.
  Vendor: DPT       Model: RAID-5            Rev: 07LY
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sda at scsi0, channel 0, id 8, lun 0
scsi0: queue depth for target 8 on channel 0 set to 64
scsi : detected 1 SCSI disk total.
SCSI device sda: hdwr sector= 512 bytes. Sectors= 35591040 [17378 MB] [17.4 GB]

(Приведенный выше пример выдается ядром при загрузке системы с одним SCSI-контроллером фирмы DPT, настроенным в режиме RAID-5, с тремя дискам, по 9 Гб каждый.)

Ниже приведены примерные сообщения, выдаваемые драйвером EATA ISA/EISA/PCI при загрузке:

aic7xxx: <Adaptec AHA-294X SCSI host adapter> at PCI 15
aic7xxx: BIOS enabled, IO Port 0x7000, IO Mem 0x3100000, IRQ 15, Revision B
aic7xxx: Single Channel, SCSI ID 7, 16/16 SCBs, QFull 16, QMask 0x1f
EATA0: address 0x7010 in use, skipping probe.
EATA0: 2.0C, PCI 0x7410, IRQ 11, BMST, SG 252, MB 64, tc:y, lc:y, mq:62.
EATA0: wide SCSI support enabled, max_id 16, max_lun 8.
EATA0: SCSI channel 0 enabled, host target ID 6.
EATA/DMA 2.0x: Copyright (C) 1994-1997 Dario Ballabio.
scsi0 : Adaptec AHA274x/284x/294x (EISA/VLB/PCI-Fast SCSI) 4.1.1/3.2.1
scsi1 : EATA/DMA 2.0x rev. 3.11.00
scsi : 2 hosts.
scsi0: Scanning channel A for devices.
  Vendor: IBM OEM   Model: DFHSS2F           Rev: 1818
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sda at scsi0, channel 0, id 0, lun 0
  Vendor: SEAGATE   Model: ST41650       TX  Rev: DG01
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sdb at scsi1, channel 0, id 0, lun 0
  Vendor: TEAC      Model: FC-1     GF   00  Rev: RV L
  Type:   Direct-Access                      ANSI SCSI revision: 01 CCS
Detected scsi removable disk sdc at scsi1, channel 0, id 3, lun 0
  Vendor: SONY      Model: CD-ROM CDU-541    Rev: 2.6a
  Type:   CD-ROM                             ANSI SCSI revision: 02
Detected scsi CD-ROM sr0 at scsi1, channel 0, id 5, lun 0
EATA0: scsi1, channel 0, id 0, lun 0, cmds/lun 21, sorted, tagged.
EATA0: scsi1, channel 0, id 3, lun 0, cmds/lun 21, sorted.
EATA0: scsi1, channel 0, id 5, lun 0, cmds/lun 21, sorted.
scsi : detected 1 SCSI cdrom 3 SCSI disks total.
SCSI device sda: hdwr sector= 512 bytes. Sectors= 4404489 [2150 MB] [2.2 GB]
SCSI device sdb: hdwr sector= 512 bytes. Sectors= 2779518 [1357 MB] [1.4 GB]
SCSI device sdc: hdwr sector= 256 bytes. Sectors= 4160 [1 MB] [0.0 GB]

(Приведенный выше пример выдается ядром при загрузке системы с двумя SCSI-контроллерами, DPT PM3224W и Adaptec AHA2940.)


Использование

fdisk, mke2fs, mount, и т.п.

После всех вышеописанных процедур можно воспринимать RAID как обычный диск. Сначала разбейте диск на разделы (используя команду fdisk). Затем отформатируйте диск, создав на нем файловую систему ext2. Это можно сделать следующей командой:

% mkfs -t ext2 /dev/sdxN

где /dev/sdxN - это имя вновь созданного SCSI-раздела. После этого подключите разделы и используйте точно также, как любой другой диск (в том числе, добавьте соответствующие строки в файл /etc/fstab).


Горячая замена

Мы сначала намеревались проверить горячую замену, просто достав диск, а затем вернуть его в стойку фирмы DPT (которую необходимо покупать отдельно). Но, еще до начала наших экспериментов, у нас прошел сбой диска (пока я это пишу, писк от массива сводит меня с ума). Несмотря на то, что один диск сломался, все данные на RAID были доступны.

Вместо замены диска, мы просто подождали немного и поставили этот диск обратно. Диск был восстановлен и все вроде бы нормально. Пока диск был нерабочим, а также в процессе восстановления данных, все данные были доступны. Правда, надо заметить, что если бы сломался еще один диск, то у нас были бы серьезные проблемы.


Быстродействие

Ниже приведен результат работы программы Bonnie, на контроллере 2144 UW с 9x3=17 Гб RAID-5, с использованием драйвера EATA DMA. RAID-массив установлен на двухпроцессорной системе Pentium Pro с Linux с ядром версии 2.0.33. Для сравнения приведены результаты работы программы Bonnie с IDE диском на той же машине.

           -------Sequential Output-------- ---Sequential Input--  --Random--
           -Per Char- --Block--- -Rewrite-- -Per Char- --Block---  --Seeks---
        MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU   /sec  %CPU
RAID   100  9210 96.8  1613  5.9   717  5.8  3797 36.1 90931 96.8 4648.2 159.2
IDE    100  3277 32.0  6325 23.5  2627 18.3  4818 44.8 59697 88.0  575.9  16.3

Некоторые спорят об этих замерах (и, кстати, частично правы - у меня не было возможности замерить подобные цифры на наших машинах - они слишком перегружены) из-за того, что размер используемого файла мог привести к тому, что он просто остался в кэше (как результат - поразительно хорошие показатели скорости). Вот подобные замеры с контроллером 3344 UW:

        -------Sequential Output-------- ---Sequential Input-- --Random--
        -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks---
     MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU  /sec %CPU
   1000  1714 17.2  1689  6.0  1200  5.7  5263 40.2  7023 12.1  51.3 2.2

И некоторые замеры с хост-контроллером RAID:

     -------Sequential Output-------- ---Sequential Input-- --Random--
     -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks---
MB   K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec %CPU
64   7465 100.0 70287 98.7 37012 97.7 8074 99.2 *****100.3 ***** 196.6
128  7289 99.3  67595 98.5 35294 98.6 7792 97.6 *****100.3 ***** 195.8
256  7222 98.8  44844 69.6 16096 51.8 5787 72.7 ***** 99.8 ***** 85.2
512  7138 98.4  13871 23.2 7888  29.3 7183 89.3 16488 27.2 1585. 11.5
1024 6908 95.8  12270 21.5 7161  25.4 7373 90.4 16527 28.2 123.8 1.8
2047 6081 84.1  12664 22.6 7191  25.6 7289 89.5 16573 28.5 75.0  1.2

***** results exceed column width (> 100 MB/sec, > 10000 seeks/sec)

host:   Два PII 400 MHz, 2 x U2W, 512 Мб ОЗУ, без внутренних дисков
RAID:   IFT 3102 UA 128 Мб кэш, RAID-5, 6 x 9 Гб
OS:     SuSE Linux 6.0 с ядром версии 2.2.3


Возможности драйвера EATA DMA

В этом разделе описаны некоторые команды, которые можно использовать в Linux, для проверки конфигурации вашего RAID-массива. В примерах мы опять ссылаемся на драйвер EATA DMA, но действия для других драйверов будут аналогичны.

Чтобы просмотреть настройку вашего драйвера, наберите:

% cat /proc/scsi/eata_dma/N

где N - это идентификатор хоста контроллера (host id). Вы увидите примерно следующее:

EATA (Extended Attachment) driver version: 2.59b
queued commands:         353969
processed interrupts:    353969

scsi0 : HBA PM2144UW
Firmware revision: v07L.Y
Hardware Configuration:
IRQ: 11, level triggered
DMA: BUSMASTER
CPU: MC68020 20MHz
Base IO : 0xef90
Host Bus: PCI
SCSI Bus: WIDE Speed: 10MB/sec.
SCSI channel expansion Module: not present
SmartRAID hardware: present.
    Type: integrated
    Max array groups:              7
    Max drives per RAID 0 array:   7
    Max drives per RAID 3/5 array: 7
Cache Module: present.
    Type: 0
    Bank0: 16MB without ECC
    Bank1: 0MB without ECC
    Bank2: 0MB without ECC
    Bank3: 0MB without ECC
Timer Mod.: present
NVRAM     : present
SmartROM  : enabled
Alarm     : on
Host<->Disk command statistics:
         Reads:      Writes:
    1k:           0            0
    2k:           0            0
    4k:           0            0
    8k:           0            0
   16k:           0            0
   32k:           0            0
   64k:           0            0
  128k:           0            0
  256k:           0            0
  512k:           0            0
 1024k:           0            0
>1024k:           0            0
Sum   :           0            0

Чтобы увидеть более подробную статистику, наберите:

% echo "eata_dma latency" > /proc/scsi/eata_dma/N

А затем снова:

% cat /proc/scsi/eata_dma/N

и увидите более подробную статистику.

Чтобы выключить этот режим, наберите:

% echo "eata_dma nolatency" > /proc/scsi/eata_dma/N


Разрешение проблем

SCSI-хосты не находятся при загрузке системы

Это может происходить по ряду различных причин, но, скорее всего, в ядро не встроен соответствующий драйвер. Проверьте и убедитесь в том, что нужный драйвер встроен в ядро (EATA-DMA или EATA ISA/EISA/PCI для большинства карт фирмы DPT).


Сконфигурированный RAID виден как N различных дисков

RAID не настроен должным образом. Если у вас стойка фирмы DPT, то вам надо настроить один логический RAID-массив. Michael Neuffer (neuffer@kralle.zdv.uni-mainz.de) пишет: "При настройке контроллера с SM запустите его с ключом /FW0 и/или выберите Solaris в качестве ОС. В результате этого, массив будет управляться напрямую контроллером."


Машина/контроллер выключился в середине процесса форматирования

Как сказано в "Руководстве пользователя контроллера DPT", это очень большая проблема и, возможно, потребуется возвратить диск производителю, потому что менеджер контроллера DPT скорее всего не сможет его отформатировать. Однако, вам, возможно, удастся отформатировать его на низком уровне, при помощи программы фирмы DPT, которая называется clfmt; ее можно найти на их сайте в разделе утилит (http://www.dpt.com/techsup/sr4utils.htm). Прочтите инструкции к программе после разархивирования файла clfmt.zip (используйте эту программу очень аккуратно). После низкоуровневого форматирования диск можно воспринимать как новый. Еще раз, используйте эту программу с опаской!


Если ничего не помогло...

Снова прочтите SCSI-HOWTO. Проверьте кабели и терминаторы. Попробуйте на другом компьютере, если это возможно. Основная причина проблем со SCSI-устройствами - неправильно настроенное оборудование. В конце концов, вы можете обратиться в различные группы новостей или написать мне, и я постараюсь вам помочь.


Благодарности

Создание этого документа было бы невозможно без:


Авторские права

Авторские права на русский перевод этого текста принадлежат ╘ 2000 ASPLinux Все права зарезервированы.

Этот документ является частью проекта Linux HOWTO.

Авторские права на документы Linux HOWTO принадлежат их авторам, если явно не указано иное. Документы Linux HOWTO, а также их переводы, могут быть воспроизведены и распространены полностью или частично на любом носителе, физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но, так или иначе, автор текста и автор перевода желали бы знать о таких дистрибутивах.

Все переводы и производные работы, выполненные по документам Linux HOWTO, должны сопровождаться этой заметкой об авторских правах. Это делается в целях предотвращения случаев наложения дополнительных ограничений на распространение документов HOWTO. Исключения могут составить случаи получения специального разрешения у координатора Linux HOWTO, с которым можно связаться по адресу, приведенному ниже.

Мы бы хотели распространить эту информацию по всем возможным каналам. Но при этом сохранить авторские права и быть уведомленными о всех планах распространения HOWTO. Если у вас возникли вопросы, пожалуйста, обратитесь к координатору проекта Linux HOWTO по электронной почте: , или к координатору русского перевода Linux HOWTO компании ASPLinux по адресу