Small Computer System Interface (Системный Интерфейс Малых Компьютеров), больше известный как SCSI, это интерфейс, разработанный для соединения потоковых устройств, таких как ленточные и блочные устройства хранения типа дисков, CD-ROM или DVD приводов. Он также используется для других устройств, таких как сканеры и принтеры. SCSI произносится как “скази”. SCSI был разработан для размещения нескольких устройств на одной шине. Одно устройство, называемое контроллер отвечает за управление шиной. SCSI-устройства могут быть как внутренними, так и внешними.
Имеется три главных версии стандартов SCSI от Американского Института Национальных Стандартов (American National Standards Institute — ANSI).
- SCSI
- это оригинальный стандарт (X3.131-1986), сечас обычно называется SCSI-1. Он появился благодаря усилиям Shugart Associates в создании стандартного интерфейса подключения дисковых устройств. Этот стандарт поддерживал до 8 устройств на одном кабеле. SCSI-1 использует пасивную оконечную схему [passive termination] (более подробно об этом далее). Это стандарт в настоящее время исчез, хотя SCSI-1 устройства могут все еще работать на современных SCSI кабелях, предполагающих соответствующую оконечную схему. Интерфейс данных был параллельным и 8-битным с максимальной скоростью передачи 5 МБ/с (Мегабайт/сек.). Стандарт SCSI был разработан для дисков, но был очень гибок и использовался для других устройств, преимущественно сканеров и медленных устройств, таких как Zip(™). FConnection использовал 50-ти жильный кабель, обычно Centronics, а позднее с 50-котнтактный D-shell, похожий на DB-25 RS-232 последовательного соединения,
- SCSI-2
- был принят как стандарт ANSI X3.131-1994 в 1994. Эта версия удвоила скорость шины до 10МБ/с, а также ввела так называемую широкую или 16-битную передачу данных. 16-битная шина работая на скорости 10МБ/с могла передавать 20МБ/с данных. Для 8-битных или узких SCSI-устройств использовался 50-жильный кабель, а для новых широких устройств — 68-жильный. Была также повышена плотность кабеля, что позволило использовать более миниатюрные и дешевые соединители. SCSI-2 также стандартизировал набор команд SCSI и ввел раздельную передачу сигнала (differential signaling) для улучшения качества на высоких скоростях. Позднее это было названо Передача сигналов с High Voltage Differential (Высоковольтным разделением) или HVD. HVD требует активной оконечной схемы. 8-битные и 16-битные устройства можно подсоединять к одному и тому же кабелю, если позаботиться о соответсвующей оконечной схеме. SCSI-2 поддерживает до 16 устройств на одном кабеле из которых по крайне мере 8 могут быть узкими.
- SCSI-3
- это набор стандартов, а не один стандарт. Это позволяет улучшать стандарты для быстроизменяющихся технологических областей, избегая необходимости пересмотра стандартов стабильной технологии. Итоговая архитектура определяется стандартом ANSI X3.270-1996, который также известен как SCSI-3 Architecture Model или SAM. Ранние стандарты SCSI теперь преобразованы в стандарты SCSI Parallel Interface (Параллельный интерфейс SCSI) или SPI. Скорость была вновь увеличена и современные 16-битные устройства способны передавать данные со скоростью до 320МБ/с при скорости шины 160МБ/с.SCSI-3 ввел Оптоволоконные каналы SCSI (Fiber Channel SCSI) с поддержкой до 126 устройств на одну шину, поддерживающей соединение свыше 1ГБ/с или 2ГБ/с по оптоволоконным каналам на расстояния в несколько километров. Это помогает смягчить имеющиеся ограничения, связанные с использованием стандартных SCSI-кабелей. Другим важным нововведением было Single Connector Attachment или SCA, используемое только для широких (16-битных) устройств. SCA это 80-контактное соединительное звено, которое включало контакты от 68-контактного звена, а также питание и некоторые дополнительные контакты. SCA разрабатывалась для безопасного горячего подключения устройств в работающей системе и часто используется в устройствах объединенных в систему хранения Redundant Array of Independent disks (Избыточный массив независимых дисков) или RAID, а также в сетевых устройствах хранения и серверных стойках.
Выше мы упомянули оконечную схему, не объяснив что это такое. Электрические спецификации шины SCSI требуют, чтобы каждый конец шины был корректно завершен. Вы должны использовать соответствующий тип терминатора для вашей шины: пассивный, HVD или LVD. Если вы смешиваете широкие и узкие устройства, то будьте внимательны, поскольку теримнатор для узких устройств может располагаться в месте отличном от терминатора для широких устройств. Если контроллер работает только с внутренней шиной или только с внешней, то он обычно обеспечивается терминатором, автоматическим или настраиваемым через BIOS. Просмотрите руководство к вашему конкретному контроллеру. Если контроллер управляет обоими и внешним и внутренним сегментами, то обычно он не должен оборудоваться терминатором.
Некоторые устройства способны играть роль терминатора, что выставляется перемычками или переключателями. И вновь обратитесь к руководству вашего устройства. В противном случае завершение (termination) обычно реализуется оконечным блоком, подсоединяемым к кабелю. Какой бы тип терминатора вы не использовали, будьте очень осторожны если вы совместно используете и широкие и узкие устройства на одной шине, поскольку завершение для узких и широких устройств может оказаться в разных местах кабеля.
Теперь вы можете удивиться как же система управляет таким количеством устройств на одном кабеле. Каждое устройство, включая контроллер имеет свой ID, выражаемый числом. Для узких (8-битных) SCSI, ID-номера находятся в диапазоне от 0 до 7. Широкие SCSI добавляют номера от 8 до 15. Узкие устройства могут использовать только номера от 0 до 7, в то время как широкие могут использовать номера от 0 до 15. Контроллеру обычно присваивается номер 7. ID устройств могут назначаться при помощи перемычек, переключателей или при помощи циферблата на устройстве, а также программно. Устройствам, использующим Single Connector Attachment (SCA), ID обычно присваиваются автоматически, поскольку эти устройства могут подкючаться во время работы.
Устройства на SCSI шине имеют приоритет. Приоритет для узких устройств изменяется от 0 (наинизший) до 7 (наивысший), так что контроллер с адресом 7 имеет наивысший приоритет. Дополнительные ID для широких устройств имеют приоритет от 8 (наинизший) до 15 (наивысший), но 15 имеет приоритет меньше 0. Поэтому реальная шкала приоритета выглядит так 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, 4, 5, 6, 7. Более медленные устройства и устройства, которые не могут допускают задержек (такие как записывающие CD или DVD приводы) должны иметь высокоприоритетные ID, чтобы гарантированно иметь значительные ресурсы.
Устройства, подобные RAID контроллерам могут выделять единственный ID для шины, но могут объединять несколько дисков. В добавок к ID, адресация SCSI допускает a Logical Unit Number (Логическую Нумерацию Устройств) или LUN. Ленточные и отдельные дисковые приводы или не сообщают LUN, или выдают LUN равный 0.
SCSI адаптер может поддерживать более одного кабеля или канала, а также в системе может быть несколько SCSI-адаптеров. Таким образом, полный ID устройства состоит из номера адаптера, номера канала, ID устройства и LUN.
Такие устройства как пишущие CD приводы использующие ide-scsi эмуляцию и USB устройства хранения также будут появляться словно имеют свой собственный адаптер.
Имена и файлы Linux для SCSI устройств
Вернемся к разделу о BIOS когда мы обсуждали имена, присваиваемые Linux IDE приводам, такие как /dev/hda и /dev/hdc. Для IDE контроллера, который может поддерживать один или два жестких диска это просто. Второй IDE привод на втором адаптере это всегда /dev/hdd, даже если еще одним диском является ведущий (primary) на первом адаптере (/dev/hda). Для SCSI ситуация становится более сложной, поскольку мы можем подсоединить к одному кабелю жесткие диски, ленточные устройства, CD и DVD приводы, а также другие устройства.
Linux присваивает имена устройствам по мере того, как они обнаруживаются во время загрузки. Поэтому первый жесткий диск на первом канале первого адаптера станет /dev/sda, второй — /dev/sdb, и так далее. Первое ленточное устройство будет /dev/st0, второе — /dev/st1, и так далее. Первое CD-устройство станет /dev/sr0 или /dev/scd0, а второе — /dev/sr1 или /dev/scd1. Устройствам, использующим эмуляцию SCSI, вроде USB устройств хранения и (вплоть до ядра 2.6) IDE CD или DVD приводам будут также выделяться имена в пространстве имен.
Хоть мы и не хотим полностью разбираться во всех сложностях со SCSI именованием, очень важно помнить, что эта нумерация производится заново при каждой перезагрузке. Если вы добавляете или удаляте жесткий диск SCSI, то все приводы выше него при последующей перезагрузке получат другие имена. То же происходит и с устройствами других типов. В другом учебнике этой серии мы более подробно изучим разбиение дисков, метки и файловые системы, но сейчас мы хотим предостеречь вас от одной вещи. Поскольку диски могут иметь до 15 разделов, каждый из которых имеет имя, связанное с именем устройства (например, /dev/sda1, /dev/sda2 и так далее до /dev/sda15), это может стать причиной путаницы, когда ваша система попытается смонтировать файловые системы. Очень тщательно планируйте добавление нового или удаление имеющегося SCSI устройства и по возможности вместо имен устройств используйте метки SCSI дисков.
Мы познакомились с файловой системой /proc в разделе Настройки BIOS . Файловая система /proc также содержит информацию о SCSI устройствах. В Листинге 19 приведено содержимое /proc/scsi/scsi для системы с двумя SCSI устройствами: жестким диском с ID 0 и контроллером с ID 8.
Листинг 19. /proc/scsi/scsi
[root@waratah root]# cat /proc/scsi/scsi
Attached devices:
Host: scsi1 Channel: 00 Id: 00 Lun: 00
Vendor: IBM-PSG Model: DPSS-336950M F Rev: S94S
Type: Direct-Access ANSI SCSI revision: 03
Host: scsi1 Channel: 00 Id: 08 Lun: 00
Vendor: IBM Model: YGLv3 S2 Rev: 0
Type: Processor ANSI SCSI revision: 02
Если вы хотите узнать какое реальное устройство соответствует скажем /dev/sda, то вы можете использовать команду scsi_info. Листинг 20 подтверждает, что наш первый (и единственный) SCSI жесткий диск это /dev/sda.
Листинг 20. Команда scsi_info
[root@waratah root]# scsi_info /dev/sda
SCSI_ID="0,0,0"
MODEL="IBM-PSG DPSS-336950M F"
FW_REV="S94S"
Однако, заметьте, что некоторые системы, такие как Fedora Core 2, не содержат команды scsi_info (являющейся частью пакета kernel-pcmcia-cs).
Более поздние системы используют драйвер SCSI Generic или sg (Универсальный драйвер). При использовании sg драйвера вы сможете найти дополнительную информацию в ветке /proc/scsi/sg вашей файловой системы. Вы также будете иметь устройства вроде /dev/sg0, /dev/sg1, /dev/sg2 и так далее. Универсальные устройства обычно соответствуют другим типам устройств, типа жесткого диска как /dev/sda или ленты вроде /dev/st0.
Пакет sg3_utils содержит несколько утилит для манипулирования и определения параметров подсистем SCSI. В действительности, команда sg_map выводит таблицу соответствий (map) sg-имен и других имен устройств если они существуют. Заметьте, что сканеры не имеют другого имени, только универсальное. Листинг 21 содержит результат выполнения sg_map в системе c оптическим диском IDE, который использует SCSI эмуляцию и двумя USB-дисками.
Листинг 21. Команда sg_map
[root@lyrebird root]# sg_map
/dev/sg0 /dev/scd0
/dev/sg1 /dev/sda
/dev/sg2 /dev/sdb
Для sg, соответствующая scsi_info утилита называется sginfo. Вы можете использовать либо универсальное имя устройства, либо более знакомое имя от sginfo. Листинг 22 содержит вывод команды sginfo для трех устройств Листинга 21. Заметьте, что sginfo не предоставила информацию о /dev/sg1, хотя как видно из листинга, команда scsi_info показывает его как USB-диск. В данном случае устройство было извлечено из системы. Информация о нем осталась (и ее можно найти в /proc/scsi/scsi). Команда sginfo для получения информации опрашивает устройства, в то время как scsi_info использует связанную информацию. Поэтому sginfo должна выполняться из под root, а scsi_info не требует этого, хотя не-root пользователям может потребоваться указать полный путь /sbin/scsi_info.
Листинг 22. Команда sginfo
[root@lyrebird root]# sginfo /dev/scd0
INQUIRY response (cmd: 0x12)
---------------------------
Device Type 5
Vendor: SONY
Product: DVD RW DRU-700A
Revision level: VY08
[root@lyrebird root]# sginfo /dev/sg1
INQUIRY reponse (cmd: 0x12)
---------------------------
Device Type 0
Vendor:
Product:
Revision level:
[root@lyrebird root]# sginfo /dev/sg2
INQUIRY reponse (cmd: 0x12)
---------------------------
Device Type 0
Vendor: WD
Product: 2500JB External
Revision level: 0411
[root@lyrebird root]# scsi_info /dev/sg1
SCSI_ID="0,0,0"
MODEL=" USB DISK 12X"
FW_REV="2.00"
SCSI BIOS и последовательность загрузки.
В то время как SCSI является стандартом для большинства серверов, многие настольные компьютеры и ноутбуки обычно не поддерживают SCSI. Такие системы обычно загружаются с флоппи дисков, CD или DVD приводов или первого жесткого диска IDE в компьютере. Порядок загрузки обычно настраивается в окне настройки BIOS, так как мы видели в разделе Настройки BIOS, и иногда динамически при помощи нажатия клавиш или их комбинаций во время старта системы.
Загрузочная спецификация BIOS (смотри Ресурсы) определяет метод добавления карт, таких как SCSI-карты, выводит сообщение при включении и вызывает BIOS карты для ее конфигурирования. SCSI карты обычно используют ее для настройки подсистем SCSI, управляемых картой. Например, карта Adaptec AHA-2930U2 выводит сообщение
Press <ctrl><A> for SCSISelect (TM) Utility!
(Нажмите Ctrl+A для запуска утилиты SCSISelect), позволяющее пользователю, нажав одновременно клавиши ctrl и A, войти в BIOS адаптера. Другие карты имеют сходную процедуру входа в BIOS карты для ее настройки.
Оказавшись в BIOS карты, вы увидите экраные страницы, при помощи которых часто можно настроить адрес SCSI контроллера (обычно 7), загрузочное SCSI устройство (обычно ID 0), скорость шины и должен ли контроллер обеспечивать оконечную схему или нет. Некоторые старые карты могут потребовать, чтобы загрузочное устройство имело ID 0, но большинство современных карт позволяют вам выбрать любое устройство. Вы можете, и вероятно захотите, настроить и другие параметры, такие как возможность форматирования жесткого диска. За потробностями обратитесь к документации производителя вашей карты. После настройки поведения шины SCSI вы обычно должны еще указать BIOS ПК на необходимость загрузки со SCSI диска, а не IDE. Проконсультируйтесь с руководством к вашей системе для определения можете ли вы загрузиться с не-IDE диска и как это можно настроить.
Взято на ibm.com