вторник, 15 октября 2013 г.

Подключаем ленточную библиотеку на примере HP MSL2024+debian 7

Знакомимся с ленточными библиотеками на примере HP MSL2024, на 24 ленты, 2 RU, версия под LTO-5 c SAS выходом.
О начальном конфигурировании: Configuring the Tape Library

Библиотека достаточно капризная, например она не заводится со многими контроллерами, в частности с adaptec ServeRaid 8k не заработало. Точнее, увидело только читалку, но не робота (changer) и выдавало
[    1.869977] scsi 3:3:0:0: Sequential-Access HP       Ultrium 5-SCSI   Z58W PQ: 0 ANSI: 6
[    1.874392] scsi 3:3:0:0: Unexpected response from lun 1 while scanning, scan aborted



При попытке ручной загрузки (echo "- - -" > /sys/class/scsi_host/hostX/scan) чуть больше, то тоже с ошибкой
[ 3648.070131] scsi 3:3:1:0: Sequential-Access HP       Ultrium 5-SCSI   Z58W PQ: 0 ANSI: 6
[ 3648.070811] st 3:3:1:0: Attached scsi tape st1
[ 3648.070815] st 3:3:1:0: st1: try direct i/o: yes (alignment 4 B)
[ 3648.070935] st 3:3:1:0: Attached scsi generic sg12 type 1
[ 3648.075310] st 3:3:1:0: Unexpected response from lun 1 while scanning, scan aborted

В результате нашлось такое:
The HP StorageWorks MSL2024 tape library uses a single SCSI ID and dual LUNs to control the tape drive (LUN 0) and library robotic (LUN 1). The library requires an HBA that supports LUN scanning. If it is not enabled, your host system scan beyond LUN 0 fails to discover the library. It just sees the tape drive.

Может быть и можно завести штатно, но явно с бубном и возможно переписыванием драйверов рейд контроллера.
Решение: поставить контроллер из совместимых, например HP P411. Или работать чисто со стриммером, меняя ленты иными методами, например через веб-интерфейс curl/wget.

Для работы потребуются пакеты mt-st, mtx, lsscsi.
mt - работа с лентой
mtx - с роботом смены лент
lsscsi - просмотр SAS устройств
tapeinfo - просмотр свойств робота и лент

При нормальной работе в системе появляются /dev/sg* устройства, а также /dev/(n)st0, n=no rewind, без перемотки. Определяется через lsscsi, обычно sg0 - стриммер, sg1 - робот, но не всегда. В частности, у нас на sg0 сел сам рейд контроллер P411. /dev/st0 это stream tape (по сути стриммер), /dev/nst0 это оно же но без автоперемотки.

lsscsi с нормальной системой (начало):
[1:0:0:0]    storage HP       P411             5.14  -
[1:2:0:0]    tape    HP       Ultrium 5-SCSI   Z58W  /dev/st0
[1:2:0:1]    mediumx HP       MSL G3 Series    5.50  /dev/sch0

В данном случае видим /dev/sch0, это не совсем правильно, и mtx с ним работать не будет, нужно будет подбирать подходящее sgX устройство.
mtx -f /dev/sch0 status
/dev/sch0 is not an sg device, or old sg driver

При этом mtx будет активно говорить
mtx cannot open SCSI device '/dev/changer' - No such file or directory
Похоже, это косяк udev, в некоторых версиях udev оно не работает вообще, в некоторых просто со странностями.

The Linux kernel can see the tape library changer as /dev/sch0 with the new udev package, but the mtx package has no way of talking to this sort of device. Nor is there any other package in Debian (that I can find) that is able to talk to the /dev/sch0 device.

Therefore, in order to use the tape library I need to use the mtx package which is only able to talk to the /dev/sg* devices that used to be created.

Фиксы:

Ленты желательно брать с метками (barcodes), или наклеить их если не было, это облегчит потом выборку лент и работу с ними (с той же бакулой). Мы воспользовались простеньким бесплатным генератором http://www.orakelblog.de/tools/lto.html
На всякий случай про нумерацию лент: считается всегда с лицевой стороны,  нижнего ряда, сначала весь нижний ряд, в том же порядке средний ряд итд. Тонкость с mailslot: он в левом картридже, и пока выключен - имеет номер 1, но после включения становится 24 и вся нумерация сдвигается, то есть в левом картридже слоты 24, 1-11, а в правом 12-23.

Нюанс: LTO-5 стример с LTO-3 работает только на чтение, с 4 - чтение и запись.
При попытке записи на LTO-3 будет
3305 Autochanger "load slot 8, drive 0", status is OK.
3910 Unable to open device ""SL24" (/dev/nst0)": ERR=dev.c:506 Unable to open device "MSL2024" (/dev/nst0): ERR=Read-only file system

Первым делом надо найти, какое это sg устройство (запросы на st0/nst0 будут говорить cannot open SCSI device '/dev/nst0' - Read-only file system), и сказать
# tapeinfo -f /dev/sg1|grep WriteProtect
WriteProtect: yes

Как видим, записать не получается.

Примеры записи на ленту
1) tar -cf /dev/nst0 /backup

2) dd if=/root of=/dev/nst0 bs=1k

3) очистка ленты (быстрая)
mt -f /dev/sg1 rewind #перемотка на начало
mt -f /dev/sg1 weof # записать признак конца ленты
(медленная)
mt -f /dev/sg1 erase

2 комментария:

  1. "...не заводится со многими контроллерами, в частности с adaptec ServeRaid 8k не заработало..."
    Еще бы. Вы же сами обнаружили, что это там несколько LUN'ов на таргете висит, а такое даже не всякий SAS HBA понимает (например, SAS HBA Adaptec 6H/7H до сих пор не умеют с multi-LUN работать), не говоря уже о RAID контроллерах. Совместимые контроллеры можно глянуть в квикспеке на библиотеку: http://h18006.www1.hp.com/products/quickspecs/productbulletin.html#spectype=worldwide&type=html&docid=13258
    А еще лучше - дополнительно посмотреть совместимость в HP SPOCK.
    Классический вариант для подключения SAS библиотек (и других ленточных устройств) - HBA от LSI: 9200-8e и 9207-8e

    ОтветитьУдалить
    Ответы
    1. с адаптеками как-то печально у меня складывается, частенько то софта нет, то косяки в настройке.. хотя может контроллеры и нормальные.
      Сами НР как-то часто рекомендуют именно свои же контроллеры, что и было сделано. Более того, был найден SAS HBA от HP, чисто под ленты, с ценой порядка 800р. Если снова найду линк - обновлю заметку.

      Удалить