Привязка устройств FreeBSD

Диски с интерфейсом SCSI не всегда включаются в одном и том же порядке, но нумерация устройств SCSI в системе FreeBSD соответствует порядку, в каком они подключены к шине SCSI. Кроме того, если изменить порядок подключения устройств к шине SCSI, это приведет к изменению порядка, в каком они будут опрашиваться. Диск, который имел порядковый номер 0 при установке FreeBSD, после добавления нового диска может получить номер 1. Такое изменение может привести к тому, что разделы будут монтироваться в неверные точки монтирования, и может даже вызвать повреждение данных. Похожая проблема может возникнуть при добавлении нового контроллера SCSI, так как в этом случае произойдет переупорядочение шин SCSI! Например, устройство, имевшее имя /dev/daO при установке FreeBSD, может превратиться в устройство /dev/dal или даже /dev/dal7 после подключения нового накопителя на магнитных лентах. Это приведет к тому, что разделы будут монтированы в неверные точки монтирования.

Во избежание этих трудностей порядок нумерации дисков можно жестко закодировать в ядре. Процесс, избавляющий от подобной путаницы, называется привязкой (wiring down) устройств SCSI. Чтобы выполнить привязку устройств, надо знать SCSI ID, номер шины SCSI и LUN (если применяется) каждого устройства в цепочке SCSI, доступных в /var/run/dmesg.boot. Например, в моей тестовой системе есть следующие записи dmesg для адаптера SCSI:

ahcO: <Adaptec 2940В ultга2 SCSI adapters port OxeOOO-OxeOff mem 0xe8042000-

0xe8042fff lrq 11 at device 20.0 on pciO

aic7890/91: Ultra2 Wide Channel A, SCSI Id=7, 32/253 SCBs

В первой строке сообщается, что основная карта SCSI – это адаптер «Adaptec 2940В Ultra2». Во второй содержится дополнительная информация об адаптере на этой карте. На самом деле здесь есть только одна физическая карта. Хост-адаптер использует SCSI ID 7. LUN не применяется.

Далее, в файле dmesg.boot содержатся записи для всех дисков SCSI. Эти записи включают в себя такие сведения, как емкость диска, название модели, скорость и дополнительные особенности, но я приведу здесь только первые строки записей для каждого диска:

OdaO at ©ahcO ©bus 0 ©target 8 ©lun 0 da1 at ahcO bus 0 ©target 9 lun 0 da2 at ahcO bus 0 target 10 lun 0

Эти строки сообщают, что диск daO О подсоединен к карте SCSI ahcO ©, на шине 0 ©, SCSI ID 8 ©, LUN равен 0 ©. Диск dal расположен на той же самой карте SCSI и той же шине, однако SCSI ID равен 9 ©.

Чтобы выполнить привязку дисков, сообщите ядру, какой номер шины SCSI к какой карте подключается, SCSI ID и LUN для каждого диска. Эту информацию следует поместить в файл /boot/device.hints:

hint.0scbus._0. at="©ahcO" hint. Oda. 0. at="0scbusO" hint. da. 0. target="@8" hint.da.1.at="scbus0" hint. da. 1. target="©9"

Здесь ядру FreeBSD сообщается, что шина SCSI О с номером 0 © должна подключаться к карте ahcO ©. Диск daO © подключен к шине SCSI с номером 0 © и имеет SCSI ID 8 ©, а диск dal подключается к той же шине и имеет SCSI ID 9 ©. Во время следующей перезагрузки устройства будут нумероваться так, как указано здесь. Если добавить еще одну карту SCSI или дополнительные жесткие диски SCSI, FreeBSD присвоит номера новым шинам и устройствам с учетом номеров, зарезервированных для этих устройств. При наличии нескольких устройств с разными номерами LUN в файле /boot/device.hints можно использовать параметр lun.

Источник: ЛукасМ. FreeBSD. Подробное руководство, 2-е издание. – Пер. с англ. – СПб.: Символ- Плюс, 2009. – 864 е., ил.

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий