Каждый из составляющих документов редактируется независимо, хотя и с учетом состояния других документов. Порядковый номер стандарта опускается, и, таким образом, SCSI-3 именуется просто SCSI. В случае же, когда речь идет о предшествующем стандарте, в документах используется его соответствующе обозначение — SCSI-2. Ниже мы будем следовать этому соглашению. Мы опишем только общую архитектурную модель и составляющие ее объекты, так как каждый из реализующих ее протоколов SCSI представляет собой независимый протокол и заслуживает отдельного описания.
СЕМЕЙСТВО СТАНДАРТОВ SCSI
Вся совокупность стандартов SCSI состоит из общей архитектурной модели SCSI (SCSI Architectural Model, SAM) и конкретных реализующих ее стандартов (implementation standards). Структура и множество стандартов SCSI-3 представлены на Рисунке 1. Взаимосвязь архитектурной модели с другими стандартами показана на Рисунке 2.
Рисунок 1. Структура и множество стандартов SCSI-3. |
SAM определяет функциональное разбиение комплекса стандартов SCSI, общую модель поведения устройств SCSI и применимые ко всем реализациям и соответствующим стандартам требования.
Стандарт на общий метод доступа (Common Access Method) определяет архитектуру хоста и набор используемых им для доступа к устройству сервисов.
Стандарты на специфический для данного типа устройств набор команд (Device-Type Specific Command Set) описывают конкретные типы устройств, в том числе модель устройства для каждого из них. Кроме того, каждый из данного набора стандартов определяет специфические для данного типа устройств команды, а также правила, которым должен следовать инициатор при обращении к ним. Поддерживаемые определенным типом устройств команды могут включать команды, общие для всех SCSI-устройств.
Рисунок 2. Архитектурная модель SCSI-3. |
Специфические наборы команд включают блочные команды для интерфейса с жестким диском (Block Commands, SBC), потоковые команды для накопителей на магнитной ленте (Stream Commands, SSC), команды контроллера для массивов RAID (Controller Commands, SCC), мультимедийные команды (Multimedia Commands, MMC), команды для автозагрузчика (Media Changer Commands, MCC) и команды для кабинета с устройствами (Enclosure Service Commands, SES).
Стандарт на общий набор команд определяет общую для всех типов устройств SCSI модель, а также команды и поведение, общие для всех устройств, независимо от типа. Кроме того, он содержит правила, которым инициатор должен следовать при обращении к любому устройству SCSI.
Стандарты на транспортные протоколы определяют правила обмена информацией между устройствами SCSI, чтобы они могли взаимодействовать между собой. Стандарты на физические межсоединения задают электрические интерфейсы и правила сигнализации для конкретных физических соединений. Они включают такие самостоятельные стандарты, как Ultra SCSI, Firewire и Fibre Channel.
АРХИТЕКТУРНАЯ МОДЕЛЬ SCSI
Архитектурная модель SCSI служит своего рода ориентиром для разработки всех остальных стандартов. Благодаря ей каждый стандарт занимает строго определенное место в общей модели и может разрабатываться независимо от остальных. В конечном итоге следование архитектурной модели гарантирует совместимость приложений независимо от конкретных используемых межсоединений и протоколов SCSI благодаря описываемым ей общим требованиям к стандартам SCSI в каждой из функциональных областей. Данный стандарт определяет только внешнее поведение систем SCSI и не затрагивает вопросы их внутренней реализации.
Архитектурная модель SCSI описывается в терминах объектов, уровней протоколов и сервисных интерфейсов между объектами. Объект является некоторой абстракцией — совокупностью функций, типов данных и других объектов. Распределенные объекты взаимодействуют между собой через сервисные интерфейсы в соответствии с клиент-серверной моделью. Клиент-серверные отношения несимметричны: клиент может только генерировать запрос на обслуживание, а сервер — только отвечать на запрос. Запросы и ответы доставляются с помощью системы доставки.
Все устройства SCSI делятся на два типа — инициатор и получатель. Каждое конкретное устройство может выступать как в одной из этих ролей, так и в обеих. Любое целевое устройство SCSI предоставляет два вида сервисов — выполняемые логическим устройством (Logical Unit) сервисы устройства и выполняемые диспетчером задач функции управления задачами. Логическое устройство — это объект, реализующий одну из функциональных моделей SCSI, описанных в стандартах на команды SCSI. Оно выполняет команды SCSI, такие, как чтение или запись на носитель. Все запросы порождаются клиентом приложения (Application Client) на инициирующем устройстве. В реальности клиент приложения соответствует драйверу устройства. Он независим от конкретной реализации межсоединения или протокола SCSI.
СТРУКТУРНАЯ МОДЕЛЬ SCSI
Структурная модель SCSI описывает составляющие систему ввода/вывода SCSI элементы с точки зрения клиента приложения. Модель описывается как иерархия объектов (см. Рисунок 3). Основным объектом является домен SCSI, он представляет систему ввода/вывода. Домен состоит из устройств SCSI и сервисной подсистемы доставки. Последняя служит для доставки команд и данных. В свою очередь, устройство SCSI может состоять из логических единиц и т. д. Ниже мы познакомимся с этими элементами более подробно.
Рисунок 3. Структурная модель SCSI-3 |
Домен SCSI должен иметь по крайней мере два устройства SCSI, причем одно из них должно быть инициатором (Initiator), а другое — получателем (Target). Инициатор подает команды, а получатель их выполняет. Размеры домена определяются в соответствии с ограничениями конкретного протокола SCSI и стандарта на межсоединение.
Система доставки связывает между собой все устройства SCSI в домене. Она состоит из двух или более сервисных портов доставки и подсистемы межсоединения. Каждый из портов находится на каком-либо устройстве SCSI. Этот объект представляет собой реализующее протоколы и интерфейсы программно-аппаратное обеспечение. Подсистема доставки призвана обеспечить безошибочную передачу запросов и ответов между клиентами и серверами.
Устройство SCSI состоит из инициатора и/или получателя, а также сервисного порта доставки. Инициатор подает команды SCSI и запросы на управление заданиями, а получатель их выполняет. В принципе, одно устройство может иметь более одного сервисного порта, но тогда в данной модели оно представляется в виде нескольких устройств SCSI.
Инициатор состоит из идентификатора инициатора и клиента приложения (впрочем, последнего может и не быть). Клиент является источником всех команд и запросов на управление. Получатель состоит из идентификатора получателя, менеджера задач и одного или более логических устройств. Менеджер задач — это сервер, управляющий выполнением задач, а логическое устройство отвечает за выполнение команд.
Логическое устройство состоит из номера логического устройства, сервера устройства и одного или более наборов задач. Задача может быть маркированной или немаркированной, она описывается идентификатором и атрибутом. Один набор задач может содержать всего одну немаркированную, либо несколько маркированных задач от одного инициатора. Базовая модель логического устройства может быть расширена за счет включения одного или более подчиненных логических устройств.
ОБЩИЙ МЕТОД ДОСТУПА
Общий метод доступа (Common Access Method, CAM) определят стандарт для поддержки адаптеров на хостах и т. п. с помощью программного обеспечения для драйверов периферии, т. е. он описывает взаимодействие компьютера с устройством через адаптер хоста.
Операционные системы поддерживают периферийные устройства с помощью соответствующих драйверов. Ни один драйвер не в состоянии поддерживать всю возможную периферию, поэтому каждый тип устройств (например, жесткий диск, ленточный накопитель, сканер и т. д.), как правило, нуждается в отдельном драйвере. Кроме того, этим самым драйверам приходится часто использовать одно и то же адаптерное оборудование, а также работать с самыми разными адаптерами. Данный стандарт описывает программный интерфейсный уровень для скрытия деталей реализации адаптерного оборудования от драйверов периферии.
Функциональность CAM делится на три основных блока. Транспорт (Transport, XPT) определяет программную архитектуру, с помощью которой драйверы периферии могут подавать запросы ввода/вывода специфическим для адаптера модулям SIM (см. ниже). Транспорт отвечает за маршрутизацию запросов на соответствующий адаптер и возвращение результатов его выполнения драйверу. Системные интерфейсные модули (System Interface Module, SIM) управляют ресурсами адаптера и обеспечивают аппаратно-независимый интерфейс для драйверов. Помимо интерфейса с адаптерным оборудованием они отвечают за обработку и выполнение специфических для межсоединения запросов. Управляющий блок (CAM Control Block, CCB) описывает структуру данных, передаваемых транспорту драйвером периферии.
Общий метод доступа разрабатывается с учетом поддержки протоколов и других устройств помимо SCSI.
ОБЩИЙ НАБОР КОМАНД
Стандарт на общий набор команд (SCSI-3 Primary Commands, SPC) определяет общие для всех моделей устройств команды (поддержка некоторых из них обязательна для всех, поддержка же остальных факультативна), а также модель процессорного устройства и соответствующие ему команды и параметры, так как главный процессор является частью любого домена SCSI. Набор команд SCSI строится в соответствии с применяемым протоколом по типу «запрос—ответ» (он определяется в стандарте на архитектурную модель SCSI-3).
Команда передается в виде блока описания команды (Command Descriptor Block, CDB) серверу устройства. В случае некоторых команд блок описания может сопровождаться списком параметров. Если какой-либо из параметров команды окажется неверным, сервер устройства не станет ее выполнять. Общими для всех устройств SCSI являются такие команды, как INQUIRY, SEND DIAGNOSTIC, TEST UNIT READY. Реализация некоторых из общих команд зависит от конкретного типа устройств.
ВСЕ В ОДНОМ
SCSI-3 как совокупность стандартов еще далек от завершения. Однако это утверждение касается прежде всего высокоуровневых протоколов, тогда как многие из низкоуровневых протоколов, такие, как различные разновидности Ultra SCSI, уже используются на практике. Другой, помимо многообразия составляющих его протоколов, особенностью SCSI-3 является поддержка наряду с параллельным, также и последовательного интерфейсов. Последнее означает, в частности, отсутствие обратной совместимости с предшествующими параллельными версиями SCSI на аппаратном уровне. Однако SCSI-3 имеет такую архитектуру, что она должна позволить включать практически любую более быструю среду передачу при ее появлении с минимальными изменениями в программном обеспечении.
Дмитрий Ганьжа — ответственный редактор LAN. С ним можно связаться по адресу: diga@lanmag.ru.