четверг, 5 марта 2009 г.

Linux и ленточный привод

Будучи у клиента с настройкой ПО EMC Networker под SLES 9 sp3 x86_64, получил ситуацию, когда для нормальной работы привода требуется его настройка как в solaris st.conf.
Только в отличие от солярис тут нет в поставке этого механизма для настройки. Что делать:
1. искать и ставить пакет mt-st (ftp://metalab.unc.edu/pub/Linux/system/backup/). Там даже не пакет (под слес я не нашел сходу пакет), собрать его из исходников дело нескольких секунд.
2. В пакете будет файлик stinit. Но сам по себе он пока бесполезен. Нужна база настроек для конкретного устройства.
3. Создаём базу настроек: /etc/stinit.def
Я сделал так:
# LTO Generation 3
#
# TVM: here's what Sun/STK recommended:
#
# manufacturer=HP model="Ultrium 3-SCSI" {
# can-bsr scsi2logical drive-buffering auto-lock
# timeout=800
# long-timeout=14400
# mode=1
# blocksize=0
# density=0x00
# fast-eom=1
# }

manufacturer="HP" model = "Ultrium 3-SCSI" {
scsi2logical=1
can-bsr=1
auto-lock=0
two-fms=0
drive-buffering=1
buffer-writes
read-ahead=1
async-writes=1
can-partitions=0
fast-eom=1
#
# If your stinit supports the timeouts:
timeout=3600 # 1 hour
long-timeout=14400 # 4 hours

# 400 GB + compression
mode1 blocksize=0 density=0x44 compression=1

# 400 GB, no compression
mode2 blocksize=0 density=0x44 compression=0

# LTO2 ~= 220 GB + compression
mode3 blocksize=0 density=0x42 compression=1

# LTO2 ~= 220 GB, no compression
mode4 blocksize=0 density=0x42 compression=0
}
# end of LTO-3

}

4. Теперь запускаем stinit /dev/nst0. Кстати, если подключен привод был без перезагрузки, сделать стоит сначала rescan-scsi-bus.sh, что бы устройство нашлось.
5. Далее запускаем Networker и всё работает.

Если stinit не делать, то у меня было так - при попытке записать метку на ленту, делается 90% операции а далее зависает. Так же в журналах можно увидеть ошибки по невозможности позиционирования головки и неправильного блока.

МОжно кстати говоря обойтись попробовать только этим:
mt -f /dev/nst0 setblk 0
Это установит variable block size что вообщем то нам и надо.

Не забыть поставить на выполнение эти операции при загрузке сервера! Например прописать сценарий запуска stinit и поставить его в rc3.d ДО запуска Networker.

Комментариев нет: