Живучий SCSI
Раз уж мы начали рассматривать историю хранения данных — познакомимся поближе с одной из технологий, которую мы в прошлой статье упомянули только вскользь. Удивительно в этой технологии то, что, появившись в самом начале 80-х, она с разными изменениями дожила до современности, и не собирается уступать позиции. Речь пойдет о SCSI.
«Отцами-основателями» SCSI можно считать компанию Shugart Associates, стандарт из которого родился впоследствии SCSI изначально носил слегка неблагозвучное для русского уха название SASI (Shugart Associates System Interface). Компания эта, ныне не так широко известная, в конце 70-х практически доминировала на рынке дисководов, и именно эта компания предложила популярный формат 5¼ дюймов. Контроллеры SASI обычно были размером в половину диска и подключались 50-пиновым плоским кабелем, который впоследствии стал коннектором SCSI-1.
За переименованием стандарта стоял ANSI, к 1982 году разработавший стандарт этого интерфейса. Дело в том, что политика ANSI не разрешает использовать названия компаний названии стандартов, поэтому SASI был переименован в «Small Computer System Interface», что и дало знакомую нам аббревиатуру. «Отец» стандарта Ларри Бушер (Larry Boucher) хотел, чтоб эта аббревиатура читалась как «сэкси», но прочтение от Дал Аллана (Dal Allan) «сказзи» прижилось больше.
Несмотря на то, что в основном SCSI ассоциируется с жесткими дисками, этот стандарт позволяет создавать практически любые устройства, подключаемые по данному интерфейсу. Со SCSI выпускалась масса устройств: жесткие диски, магнитооптические накопители, CD и DVD приводы, стриммеры, принтеры и даже сканеры (LPT порт был слишком медленным для работы цветных сканеров высокого разрешения).
Несмотря на то, что в большинстве «простых компьютеров» SCSI как интерфейс не встречается, набор команд этого стандарта широко используется. Например, набор команд SCSI программно реализован в едином стеке Windows для поддержки устройств хранения данных. Так же, практически стандартом стала реализация команд SCSI поверх IDA/ATA и SATA интерфейсов, используемых для работы с CD/DVD и BlueRay, названная ATAPI. Так же эта система команд, реализованная поверх USB, стала частью стандарта Mass Storage Device, что позволяет использовать любые внешние USB хранилища данных.
Исторически, первым интерфейсом стал Parallel SCSI, использующий коннекторы на 50, 68 и 80 пин, расположенные на плоском кабеле, часто экранированном. Этот стандарт развивался на протяжении многих лет, пройдя путь от 40 МБит/с в SCSI-I до 5120 МБит/с в Ultra-640 SCSI. Несмотря на этот прогресс, данный интерфейс уже признан устаревшим, и заменяется более продвинутым решением в виде Serial Attached SCSI (SAS), но про SAS — немного позже. Пока давайте посмотрим, какие еще интерфейсы кабелей использовались в SCSI.
Реализация протокола SCSI по оптическим волоконным каналам, получившая название FCP (Fibre Channel Protocol или FC), позволяет добиваться высоких скоростей и использовать соединительные провода большой длины (до десятков километров с использованием одномодовой оптики). Из-за высокой стоимости используется в больших сетях обработки данных. Сегодня FC используется только для так называемого «фронт-энда», то есть для подключения компьютеров (в основном серверов) к системам хранения данных.
iSCSI, как понятно из первой буквы в названии — служит для обработки SCSI комманд через Интернет, но чаще всего используются все-таки в локальных IP-сетях компаний. Так как этот стандарт, в отличие от FCP, не требует дорогостоящего оборудования, он часто выступает в роли более дешевой замены «оптики». Основные два сценария применения данного стандарта — консолидация хранения данных (данные вместо разрозненных сетевых хранилищ собираются в одном месте, чаще всего в датацентрах) и защита от сбоев (iSCSI позволяет прозрачно для потребителей перемещать дисковые массивы по глобальной сети). iSCSI сильно зависит от физического и канального уровней сетевой модели, определяющих скорость и максимальные задержки в среде. Так, iSCSI на 1Gb/s Ethernet позволял передать всего лишь до 100МБ/с. Гораздо лучше дела обстоят в сетях 10GE, но технологии 10GE только сейчас отвоевывают себе значительные сегменты в корпоративных сетях.
SCSI RDMA Protocol (часто сокращаемый до remote SCSI) позволяет одному компьютеру подключиться к ресурсам другого, используя протокол удаленного прямого доступа к памяти. Так как RDMA отличается низкой латентностью и высокой пропускной способностью — наибольшее применение он получил в кластерах.
USB Attached SCSI — тоже понятно из названия. Реализует подключение SCSI через USB-интерфейс. В теории способен обеспечивать скорость до 3200 МБит/с.
Serial Attached SCSI — наиболее распространенный сейчас вид интерфейса, вытесняющий старый параллельный вариант. Обеспечивает скорость до 6 Гбит/с (вариант на 12 Гбит/с находится в активной разработке и будет выпущен летом 2013 года). Этот протокол является «ближайшим родственником» используемого сейчас повсеместно SATA, более того — SATA устройства можно подключать к SAS контроллерам. В обратную сторону, правда, это не работает, и даже разъем SAS сконструирован так, чтоб не дать это сделать (разве что сборщик системы будет ну очень сильным).
В отличие от старого параллельного SCSI, SAS системы обладают следующими достоинствами:
— меньшее количество сигнальных линий, поэтому более компактные провода;
— использование соединения точка-точка, в отличии от P-SCSI, использовавшего шину, из-за чего одновременно с контроллером могло работать только одно устройство;
— SAS не нуждается в специальной насадке-терминаторе на кабель;
— новый протокол не страдает от проблемы не одновременного прохождения сигнала по разным проводам в шине;
— разительно выросло количество одновременно поддерживаемых устройств, старые SCSI поддерживали от 8 до 32, новые — более 16384;
— SAS дает более высокую пропускную способность, а что особенно хорошо — эта пропускная способность эффективно используется между каждым инициатором и целевым устройством, в то время как на параллельном SCSI пропускная способность шины делилась поровну между всеми устройствами;
— совместимость с устройствами SATA
Неразрывно с историей хранения данных, SCSI и SAS связанна и история компании LSI. Будучи одной из первых в мире компанией, внедривших устройства ASIC (Application Specific Integrated Circuit) — специализированные микросхемы, направленные на выполнение выделенных задач, LSI не могла пройти мимо настолько бурно развивающейся области. Для LSI история SCSI началась с приобретения в 1998 году подразделения Symbios, в свое время бывшей частью NCR, AT&T и Hyundai. Это подразделение было основано в NCR в 1971 году и на момент приобретения было производителем SCSI-адаптеров. Спектр устройств, выпущенных LSI, начинается с микросхемы LSI53C825AE, позволявшей пропустить до 20MB/s данных и соответствовала стандарту Fast Wide SCSI. В процессе развития была разработана так называемая архитектура Fusion-MPT (Message Passing Technology), позволяющая максимально «облегчить» драйвер устройства в операционной системе и ускорить процесс общения между компонентами подсистемы ввода-вывода. Эта технология дожила и до сегодняшних устройств SAS-3 (12Gbit/s), более чем на три порядка превосходящих по скорости первые чипы SCSI. Кроме контроллеров, для SCSI LSI также производила и другие микросхемы, такие как хост-адаптеры и конвертеры (расширители) SCSI.
Нельзя не упомянуть и еще один интересный факт. Совсем недавно компания Seagate анонсировала выпуск двухмиллиардного жесткого диска. Жесткий диск – это очень высокотехнологичное устройство, содержащее большое количество различных компонентов. LSI выпускала и продолжает выпускать довольно много микросхем для жестких дисков. Традиционно это был «Read Channel», сейчас для этого есть так называемые SOCs (System on Chip).
Еще одним крупным игроком на рынке SCSI была компания Adaptec. В отличие от LSI, всегда плотно работавшей с OEM-каналом, компания Adaptec в основном ориентировалась на готовые продукты, и поэтому более известна в мире IT под собственным именем. Около двух лет назад компания была приобретена производителем полупроводниковых устройств PMC и сейчас продукция компании носит название Adaptec by PMC. Компания также успешно пережила все поколения SCSI и теперь выпускает устройства для SAS.
История Parallel SCSI была долгой и бурной, но, в конце концов, закончилась. Уже более двух лет адаптеры P-SCSI не выпускаются, уступив технологии SAS, уже насчитывающей 2 поколения.
Надеемся, что наше знакомство с миром SCSI устройств было вам интересно, и в следующей статье мы продолжим его, рассмотрев SAS более подробно и в деталях.
Источник
Интерфейс wide scsi использует кабель
Почти все о SCSI
Введение в SCSI
Small Computer Systems Interface (системный интерфейс для малых компьютеров) интерфейс, разработанный для объединения на одной шине различных по своему назначению устройств, таких как жёсткие диски, накопители на магнитооптических дисках, стримеры, сканеры и т.д. Интерфейс предназначен для соединения устройств различных классов: памяти прямого и последовательного доступа, CD-ROM, оптических дисков однократной и многократной записи, устройств автоматической смены носителей информации, принтеров, сканеров, коммуникационных устройств и процессоров. Применяется в различных архитектурах компьютерных систем, а не только в PC. Стандарт определяет не только физический интерфейс, но и систему команд, управляющих устройствами SCSI. За время своего существования стандарт активно развивался.
Стандарты, описывающие SCSI
- Стандарт SCSI-1 был стандартизован ANSI ещё в 1986 г.
- Стандарт SCSI-2.
- Стандарт SCSI-3 описывается документами: SIP (SCSI Interlock Protocol), SPI (SCSI Parallel Interface).
- Стандарт SPI, 1995 г. Определяет Fast SCSI (Fast Wide SCSI).
- Стандарт SPI-2, 1999 г. Определяет Ultra2 SCSI (Wide Ultra2 SCSI).
- Стандарт SPI-3, 2000 г. Определяет Wide Ultra3 SCSI (Ultra 160).
- Стандарт SPI-4, 2001 г. Определяет Ultra320 SCSI.
- Стандарт EPI (Enhanced Parallel Interface). Описывает построение SCSI-систем.
Извечный спор «Что лучше, Windows или Unix?» можно перенести и на интерфейсы IDE и SCSI. Однако этот вопрос в такой постановке неразрешим. Каждый должен выбирать для себя сам. На долю SCSI-дисков приходится чуть менее 30% мирового рынка. В нашей стране процент использования SCSI-интерфейса по сравнению с IDE, по моему мнению, несколько ниже. Это объясняется тем, что установка на компьютер SCSI-адаптера обойдется минимум на 100 долларов США дороже, чем установка на тот же компьютер IDE.
Сравнивая эти два интерфейса, нетрудно прийти к выводу, что основные преимущества SCSI проявляются при работе в мультизадачных средах (многие тесты, проведённые под Windows NT, показывают несомненное преимущество SCSI; задачи, связанные с обработкой видео, тоже не могут обойтись без SCSI). И ещё один вывод: наблюдая за развитием IDE, нетрудно заметить, что он приобретает многие черты SCSI.
Существует множество вариантов классификации интерфейса SCSI. Остановимся на одном из вариантов.
Классификации интерфейса SCSI
Стандарт | Вид | Скорость на шине, Мбайт/сек | Ширина шины, биты | Максимальная длина кабеля, метров | Максимальное кол-во устройств | Внешние разъемы, кол-во контактов | Внешние разъемы, кол-во контактов | ||
SE | LVD | HVD | |||||||
Narrow/Wide | N/W | N/W | N/W | N/W | N/W | N/W | N/W | N/W | |
SCSI-1 | 5/ | 8/ | 6/ | 12/ | 25/ | 8/ | DB-25/ CX-50/ | LD50/- | |
SCSI-2 | Fast | 10/20 | 8 /16 | 3/6 | 12/12 | 25/25 | 16/16 | HD-50/HD-68 | LD50/HD68 |
Ultra | 20/40 | 8/16 | 3(1,5)/3(1,5) | /12 | 25/25 | 4(8)/4(8) | HD-50/HD-68 | LD50/HD68 | |
Ultra 2 | 40/80 | 8/16 | | 12/12 | 25/25 | 8/16 | HD-50/HD-68 | LD50/HD68 | |
SCSI-3 | Ultra 160 | /160 | /16 | | /12 | | HD-68, VHDCI-68 | HD68,HD80 | |
Ultra 320 | /320 | /16 | | /12 | | HD-68, VHDCI-68 | HD68,HD80 |
Single-Ended SCSI | Differential SCSI | HD-68 | Single-Ended SCSI | Differential SCSI | HD-68 |
Signal name | Signal name | Pin# | Signal name | Signal name | Pin# |
Ground | + Data Bit 12 | 1 | Data Bit 12 | Data Bit 12 | 35 |
Ground | + Data Bit 13 | 2 | Data Bit 13 | Data Bit 13 | 36 |
Ground | + Data Bit 14 | 3 | Data Bit 14 | Data Bit 14 | 37 |
Ground | + Data Bit 15 | 4 | Data Bit 15 | Data Bit 15 | 38 |
Ground | + Parity Bit 1 | 5 | Parity Bit 1 | Parity Bit 1 | 39 |
Ground | + Data Bit 0 | 6 | Data Bit 0 | Data Bit 0 | 40 |
Ground | + Data Bit 1 | 7 | Data Bit 1 | Data Bit 1 | 41 |
Ground | + Data Bit 2 | 8 | Data Bit 2 | Data Bit 2 | 42 |
Ground | + Data Bit 3 | 9 | Data Bit 3 | Data Bit 3 | 43 |
Ground | + Data Bit 4 | 10 | Data Bit 4 | Data Bit 4 | 44 |
Ground | + Data Bit 5 | 11 | Data Bit 5 | Data Bit 5 | 45 |
Ground | + Data Bit 6 | 12 | Data Bit 6 | Data Bit 6 | 46 |
Ground | + Data Bit 7 | 13 | Data Bit 7 | Data Bit 7 | 47 |
Ground | + Parity Bit 0 | 14 | Parity Bit 0 | Parity Bit 0 | 48 |
Ground | Ground | 15 | Ground | Ground | 49 |
Ground | Diffsens | 16 | Ground | Ground | 50 |
Term-n Power | Term-n Power | 17 | Term-n Power | Term-n Power | 51 |
Term-n Power | Term-n Power | 18 | Term-n Power | Term-n Power | 52 |
Reserved | Reserved | 19 | Reserved | Reserved | 53 |
Ground | Ground | 20 | Ground | Ground | 54 |
Ground | + Attention | 21 | Attention | Attention | 55 |
Ground | Ground | 22 | Ground | Ground | 56 |
Ground | + Busy | 23 | Busy | Busy | 57 |
Ground | +Acknowledge | 24 | Acknowledge | Acknowledge | 58 |
Ground | + Reset | 25 | Reset | Reset | 59 |
Ground | +Message | 26 | Message | Message | 60 |
Ground | + Select | 27 | Select | Select | 61 |
Ground | +Com./Data | 28 | Com./Data | Com./Data | 62 |
Ground | + Request | 29 | Request | Request | 63 |
Ground | +Input/Outpt | 30 | Input/Output | Input/Output | 64 |
Ground | + Data Bit 8 | 31 | Data Bit 8 | Data Bit 8 | 65 |
Ground | + Data Bit 9 | 32 | Data Bit 9 | Data Bit 9 | 66 |
Ground | + Data Bit 10 | 33 | Data Bit 10 | Data Bit 10 | 67 |
Ground | + Data Bit 11 | 34 | Data Bit 11 | Data Bit 11 | 68 |
Внешние разъемы LD50 и HD50 SCSI
Single-Ended SCSI | Differential SCSI | HD-50 | Single-Ended SCSI | Differential SCSI | HD-50 |
Signal name | Signal name | Pin# | Signal name | Signal name | Pin# |
Ground | + Data Bit 0 | 1 | Data Bit 0 | Data Bit 0 | 26 |
Ground | + Data Bit 1 | 2 | Data Bit 1 | Data Bit 1 | 27 |
Ground | + Data Bit 2 | 3 | Data Bit 2 | Data Bit 2 | 28 |
Ground | + Data Bit 3 | 4 | Data Bit 3 | Data Bit 3 | 29 |
Ground | + Data Bit 4 | 5 | Data Bit 4 | Data Bit 4 | 30 |
Ground | + Data Bit 5 | 6 | Data Bit 5 | Data Bit 5 | 31 |
Ground | + Data Bit 6 | 7 | Data Bit 6 | Data Bit 6 | 32 |
Ground | + Data Bit 7 | 8 | Data Bit 7 | Data Bit 7 | 33 |
Ground | + Parity Bit 0 | 9 | Parity Bit 0 | Parity Bit 0 | 34 |
Ground | Ground | 10 | Ground | Ground | 35 |
Ground | Ground | 11 | Ground | Ground | 36 |
Reserved | Reserved | 12 | Reserved | Reserved | 37 |
Ground | Ground | 13 | Term-n Power | Term-n Power | 38 |
Reserved | Reserved | 14 | Reserved | Reserved | 39 |
Ground | Ground | 15 | Ground | Ground | 40 |
Ground | + Attention | 16 | Attention | Attention | 41 |
Ground | Ground | 17 | Ground | Ground | 42 |
Ground | + Busy | 18 | Busy | Busy | 43 |
Ground | + Acknowledge | 19 | Acknowledge | Acknowledge | 44 |
Ground | + Reset | 20 | Reset | Reset | 45 |
Ground | + Message | 21 | Message | Message | 46 |
Ground | + Select | 22 | Select | Select | 47 |
Ground | + C/D | 23 | C/D | C/D | 48 |
Ground | + Request | 24 | Request | Request | 49 |
Ground | + I/O | 25 | I/O | I/O | 50 |
Разъем HE50 SCSI
Single-Ended SCSI | Differential SCSI | HE-50 | Single-Ended SCSI | Differential SCSI | HE-50 |
Signal name | Signal name | Pin# | Signal name | Signal name | Pin# |
Ground | + Data Bit 0 | 1 | Term-n Power | Term-n Power | 26 |
Ground | Data Bit 0 | 2 | Reserved | Reserved | 27 |
Ground | + Data Bit 1 | 3 | Reserved | Reserved | 28 |
Ground | Data Bit 1 | 4 | Ground | Ground | 29 |
Ground | + Data Bit 2 | 5 | Ground | Ground | 30 |
Ground | Data Bit 2 | 6 | Ground | + Attention | 31 |
Ground | + Data Bit 3 | 7 | Attention | Attention | 32 |
Ground | Data Bit 3 | 8 | Ground | Ground | 33 |
Ground | + Data Bit 4 | 9 | Ground | Ground | 34 |
Ground | Data Bit 4 | 10 | Ground | + Busy | 35 |
Ground | + Data Bit 5 | 11 | Busy | Busy | 36 |
Reserved | Data Bit 5 | 12 | Ground | + Acnowledge | 37 |
Ground | + Data Bit 6 | 13 | Acknowledge | Acknowledge | 38 |
Reserved | Data Bit 6 | 14 | Ground | + Reset | 39 |
Ground | + Data Bit 7 | 15 | Reset | Reset | 40 |
Ground | Data Bit 7 | 16 | Ground | + Message | 41 |
Ground | + Parity Bit 0 | 17 | Message | Message | 42 |
Ground | Parity Bit 0 | 18 | Ground | + Select | 43 |
Ground | Ground | 19 | Select | Select | 44 |
Ground | Ground | 20 | Ground | + C/D | 45 |
Ground | Ground | 21 | C/D | C/D | 46 |
Ground | Ground | 22 | Ground | + Request | 47 |
Ground | Reserved | 23 | Request | Request | 48 |
Ground | Reserved | 24 | Ground | + I/O | 49 |
Ground | Ground | 25 | I/O | I/O | 50 |
Фазы шины
В каждый конкретный момент времени шина SCSI может находиться только в одной из перечисленных фаз:
1. Bus Free шина находится в состоянии покоя.
2. Arbitration устройство (ИУ) может получить право на управление шиной.
3.1. Selection инициатор, выигравший арбитраж, выбирает ЦУ (только одно), с которым он будет работать.
3.2. Reselection аналогична предыдущей, но её вводит целевое устройство. Т.е. ИУ и ЦУ меняются ролями ЦУ вызывает ИУ.
4. Command In (Out), Data In (Out), Status, Message In (Out) информационные фазы (по шине данных передается информация).
Последовательность фаз представлена на рис. 9.
Рис. 9. Последовательность фаз шины SCSI
После фазы Selection ИУ может проводить процедуру тайм-аута выбора (Selection Time-Out), которая может быть реализована двумя методами:
2. Переход в фазу Bus Free.
Для реализации фазы Reselection во всех вышеприведенных фазах Initiator и Target меняются местами в вопросах выполнения действий.
В любом случае завершающей фазой является фаза Message In, в которой передается сообщение Disconnect или Command Complete, после чего шина переходит в состояние Bus Free.
В любой системе SCSI предусмотрена возможность сброса системы (Reset), для чего имеется линия Reset, на которую может быть выставлен сигнал сброса в любое время и любым устройством. Обработка сигнала Reset может быть реализована двумя методами:
1. Жёсткий сброс (Hard Reset) аналогичен отключению питания для всех устройств системы SCSI.
2. Мягкий сброс (Soft Reset) позволяет одному инициатору выполнить сброс шины SCSI, не нарушая работы других инициаторов в системе, где таких инициаторов несколько.
Сигналы управления шины SCSI
В шине SCSI используются девять сигналов управления, активным уровнем которых является низкий уровень сигнала: BSY (Занят), SEL (Выбор), C/D (Управление/Данные), I/O (Ввод/Вывод), MSG (Сообщение), REQ (Запрос), ACK (Подтверждение), RST (Сброс), ATN (Внимание).
Источники вышеприведённых сигналов приведены в табл. 5.
Источники сигналов управления шины SCSI
Сигнал | BSY | SEL | C/D | I/O | MSG | REQ | ACK | RST | ATN |
Источник | ИУ, ЦУ | ИУ, ЦУ | ЦУ | ЦУ | ЦУ | ЦУ | ИУ | ИУ, ЦУ | ИУ |
Между фазами передачи информации сигналы Busy, Select, REQ, ACK должны оставаться в неизменном состоянии, меняться могут только значения сигналов Msg, C/D, I/O.
Информационные фазы передачи информации Data Out (In), Command, Status, Message Out (In)
Target управляет сигналами Msg, C/D, I/O, в зависимости от комбинации которых идентифицируются фазы шины Data Out (In), Command, Status, Message Out (In).
Информационные фазы SCSI
Сигнал | Фаза | Направление | ||
MSG | C/D | I/O | ||
0 | 0 | 0 | Data Out | ИУ -> ЦУ |
0 | 0 | 1 | Data In | ИУ ЦУ |
0 | 1 | 1 | Status | ИУ ЦУ |
1 | 1 | 1 | Message In | ИУ Target, I/O = «1» передача Initiator * (Destination Count) удалённый индекс; Cat ** (catenate bit [optional]) связывающий бит; Source LUN номер исходного логического блока; Destination address адрес назначения; Reserved зарезервировано для последующих стандартов, должны быть записаны нули; Destination LUN номер логического блока назначения; Number of Blocks число блоков; Source Logical Block Address адрес исходного логического блока; Destination Logical Block Address адрес логического блока назначения; MSB старший байт; LSB младший байт. * Если DC = 1, то поле числа блоков (Number of Blocks) относится к логической единице источника (Source Logical Unit). Если DC = 0, то поле числа блоков (Number of Blocks) относится к логической единице назначения (Destination Logical Unit). ** Если Cat = 1, то устройство, управляющее копированием, будет связывать последний блок сегмента источника с первым блоком следующего сегмента источника, если последний блок источника не заканчивается точно в конце блока назначения. Cat = 0 зависит от установки pad bit в блоке дескриптора команды. Источник |