Scroll to navigation

cciss(4) Device Drivers Manual cciss(4)

ИМЯ

cciss - блочный драйвер устройства HP Smart Array

СИНТАКСИС

modprobe cciss [ cciss_allow_hpsa=1 ]

ОПИСАНИЕ

Note: This obsolete driver was removed in Linux 4.14, as it is superseded by the hpsa(4) driver in newer kernels.

cciss — это блочный драйвер для старых контроллеров RAID HP Smart Array.

Параметры

cciss_allow_hpsa=1: этот параметр запрещает драйверу cciss пробовать управлять контроллерами, которыми может управлять драйвер hpsa(4). Другими словами, этим параметром драйвер cciss будет ограничен следующими контроллерами:


Smart Array 5300
Smart Array 5i
Smart Array 532
Smart Array 5312
Smart Array 641
Smart Array 642
Smart Array 6400
Smart Array 6400 EM
Smart Array 6i
Smart Array P600
Smart Array P400i
Smart Array E200i
Smart Array E200
Smart Array E200i
Smart Array E200i
Smart Array E200i
Smart Array E500

Поддерживаемое оборудование

Драйвер cciss поддерживает следующие платы Smart Array:


Smart Array 5300
Smart Array 5i
Smart Array 532
Smart Array 5312
Smart Array 641
Smart Array 642
Smart Array 6400
Smart Array 6400 U320 Expansion Module
Smart Array 6i
Smart Array P600
Smart Array P800
Smart Array E400
Smart Array P400i
Smart Array E200
Smart Array E200i
Smart Array E500
Smart Array P700m
Smart Array P212
Smart Array P410
Smart Array P410i
Smart Array P411
Smart Array P812
Smart Array P712m
Smart Array P711m

Особенности настройки

Для настройки контроллеров HP Smart Array используйте HP Array Configuration Utility (hpacuxe(8) или hpacucli(8)) или Offline ROM-based Configuration Utility (ORCA), которую можно запустить из ROM Smart Array при старте машины.

ФАЙЛЫ

Узлы устройства

Ниже приведена схема именования устройств:

Старшие номера:

104 cciss0
105 cciss1
106 cciss2
105 cciss3
108 cciss4
109 cciss5
110 cciss6
111 cciss7

Младшие номера:


b7 b6 b5 b4 b3 b2 b1 b0
|----+----| |----+----|
| |
| +-------- Идентификатор раздела (0=всё устройство,
1-15 раздел)
|
+-------------------- Номер логического тома

Порядок именования устройств:

/dev/cciss/c0d0 Controller 0, disk 0, whole device
/dev/cciss/c0d0p1 Controller 0, disk 0, partition 1
/dev/cciss/c0d0p2 Controller 0, disk 0, partition 2
/dev/cciss/c0d0p3 Controller 0, disk 0, partition 3
/dev/cciss/c1d1 Controller 1, disk 1, whole device
/dev/cciss/c1d1p1 Controller 1, disk 1, partition 1
/dev/cciss/c1d1p2 Controller 1, disk 1, partition 2
/dev/cciss/c1d1p3 Controller 1, disk 1, partition 3

Файлы в /proc

В файлах /proc/driver/cciss/cciss[0-9]+ содержится информация о настройке каждого контроллера. Пример:


$ cd /proc/driver/cciss
$ ls -l
total 0
-rw-r--r-- 1 root root 0 2010-09-10 10:38 cciss0
-rw-r--r-- 1 root root 0 2010-09-10 10:38 cciss1
-rw-r--r-- 1 root root 0 2010-09-10 10:38 cciss2
$ cat cciss2
cciss2: HP Smart Array P800 Controller
Board ID: 0x3223103c
Firmware Version: 7.14
IRQ: 16
Logical drives: 1
Current Q depth: 0
Current # commands on controller: 0
Max Q depth since init: 1
Max # commands on controller since init: 2
Max SG entries since init: 32
Sequential access devices: 0
cciss/c2d0:   36.38GB       RAID 0

Файлы в /sys

/sys/bus/pci/devices/dev/ccissX/cXdY/model
Модель логического устройства Y контроллера X со страницы 0 SCSI INQUIRY.
/sys/bus/pci/devices/dev/ccissX/cXdY/rev
Версия логического устройства Y контроллера X со страницы 0 SCSI INQUIRY.
/sys/bus/pci/devices/dev/ccissX/cXdY/unique_id
Серийный номер логического устройства Y контроллера X со страницы 83 SCSI INQUIRY.
/sys/bus/pci/devices/dev/ccissX/cXdY/vendor
Производитель логического устройства Y контроллера X со страницы 0 SCSI INQUIRY.
/sys/bus/pci/devices/dev/ccissX/cXdY/block:cciss!cXdY
A symbolic link to /sys/block/cciss!cXdY.
/sys/bus/pci/devices/dev/ccissX/rescan
При записи в этот файл драйвер повторно сканирует контроллер для обнаружения новых, удалённых или изменённых логических дисков.
/sys/bus/pci/devices/dev/ccissX/resettable
Значение 1 в файле показывает, что параметр ядра «reset_devices=1» (используемый kdump) был принят данным контроллером. Значение 0 показывает, что параметр ядра «reset_devices=1» принят не был. Некоторые модели Smart Array не способны принять этот параметр.
/sys/bus/pci/devices/dev/ccissX/cXdY/lunid
8-байтовый LUN ID, используемый для адресации логического устройства Y контроллера X.
/sys/bus/pci/devices/dev/ccissX/cXdY/raid_level
Уровень RAID логического устройства Y контроллера X.
/sys/bus/pci/devices/dev/ccissX/cXdY/usage_count
Счётчик использования (число открытий) логического устройства Y контроллера X.

Поддержка ленточных устройств SCSI и устройств смены носителя

Драйвер поддерживает устройства SCSI с последовательным доступом и смены носителя, и автоматически создаёт соответствующие узлы устройств (например, /dev/st0, /dev/st1 и т. д.; подробней смотрите в st(4)). Чтобы использовать ленточные устройства SCSI с контроллером Smart Array 5xxx в настройках ядра нужно включить «SCSI tape drive support for Smart Array 5xxx» и «SCSI support».

Также заметим, что драйвер не привлекает ядро SCSI во время инициализации. Драйвер должен динамически задействовать ядро SCSI через запись в файловой системе /proc, которую (/proc/driver/cciss/cciss*) «блочная» часть драйвера создаёт во время работы. Так сделано потому, что на момент инициализации драйвера ядро SCSI ещё может быть не инициализировано (так как драйвер — блочный) и попытка зарегистрировать его в ядре SCSI в этом случае вызывала бы зависание. Это лучше всего выполнять из сценария инициализации (обычно, в /etc/init.d, но в разных дистрибутивах по-разному). Пример:


for x in /proc/driver/cciss/cciss[0-9]*
do

echo "engage scsi" > $x done

После того, как драйвер подключил ядро SCSI, он не может быть выключен (за исключением выгрузки драйвера, если он собран в виде модуля).

Также заметим, что если устройства с последовательным доступом или смены носителя не обнаружены, то ядро SCSI не привлекается из показанного выше сценария.

Ленточные устройства SCSI, подключаемые во время работы (hot plug)

Поддерживается подключение ленточных устройств SCSI без выключения машины. Драйвер cciss должен быть уведомлён об изменениях на шине SCSI. Это можно сделать через файловую систему /proc. Пример:


echo "rescan" > /proc/scsi/cciss0/1

Это заставляет драйвер:

(1)
Опросить адаптер об изменениях на физических шинах SCSI и/или управляемой петли (arbitrated loop) fibre channel;
(2)
Определить все новые или удалённые устройства с последовательным доступом или смены носителя;

Драйвер выводит сообщения о добавленных или удалённых устройствах, а также контроллер, шину, назначение и lun каждого используемого устройства. Также, драйвер уведомляет промежуточный слой SCSI об этих изменениях.

Заметим, что по соглашению об именовании кроме имени драйвера, записи файловой системы /proc содержат номер (например, «cciss0» вместо «cciss», как вы могли бы ожидать).

Замечание: драйвер cciss на промежуточном слое SCSI представляет в виде устройств SCSI только устройства с последовательным доступом и смены носителя. Устройства для физических дисков SCSI не представляются на промежуточном слое SCSI. Дисковые устройства представляются ядром как логические устройства, который контроллер массива собрал из частей физических дисков. Логические устройства представляются на блочном уровне (не на промежуточном слое SCSI). Это важно для драйвера — не дать прямой доступ ядру к физическим дискам, так как устройства используются контроллером массива для сборки логических устройств.

Обработка ошибок SCSI для ленточных устройств и устройств смены носителя

Промежуточный слой Linux SCSI предоставляет порядок (protocol) обработки ошибок, который запускается, если команда SCSI выполнилась с ошибкой определённое количество раз (которое может зависеть от команды). Драйвер cciss следует этому порядку с некоторыми изменениями. Обычный порядок состоит из четырёх шагов:

(1)
Устройству указывается прервать работу команды.
(2)
Если это не сработало, устройство сбрасывается (reset).
(3)
Если это не сработало, сбрасывается шина SCSI.
(4)
Если это не сработало, сбрасывается адаптер шины узла.

Как драйвер SCSI, cciss является блочным и только ленточные устройства и устройства смены носителя представлены на промежуточном уровне SCSI. Кроме этого, в отличие от более простых драйверов SCSI, дисковый ввод-вывод продолжается через блочную часть во время процесса восстановления после ошибки SCSI. Поэтому драйвер cciss выполняет только первые два шага: прерывание команды и сброс устройства. Также заметим, что большинству ленточных устройств не поможет прерывание команды и, иногда, они даже не подчиняются этой команде, хотя очень редко. Если команда не может быть прервана и устройство не может быть сброшено, то устройство переводится в неактивный режим (offline).

Если событие обработки ошибок возникло и ленточное устройство успешно сброшено или последняя команда успешно прервана, то ленточное устройств может всё ещё продолжать не позволять выполнять ввод-вывод, пока какая-нибудь команда не поместит ленточное устройство в известное положение. Как правило, вы должны перемотать ленту (например, командной mt -f /dev/st0 rewind) перед тем как продолжить ввод-вывод снова в ленточное устройство, которое было сброшено.

СМОТРИТЕ ТАКЖЕ

hpsa(4), cciss_vol_status(8), hpacucli(8), hpacuxe(8)

http://cciss.sf.net, Documentation/blockdev/cciss.txt и файл Documentation/ABI/testing/sysfs-bus-pci-devices-cciss в дереве исходного кода ядра Linux

ПЕРЕВОД

Русский перевод этой страницы руководства разработал Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy S. Seregin <dseregin@59.ru>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Katrin Kutepova <blackkatelv@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

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

2 мая 2024 г. Linux man-pages (unreleased)