Команда Extended Сору позволяет инициатору отправить целевому устройству SCSI команду на копирование данных между двумя наборами устройств SCSI. Устройства, между которыми копируются данные, могут (не обязательно) отличаться от устройства, которое получило и обрабатывает команду Extended Сору. Дочерняя команда Receive Copy Results собирает сведения о завершении выполнения команды Extended Сору. Полученный результат может использоваться для определения характера выявленных ошибок команды Extended Сору.
В стандарте SCSI-3 определено и множество дополнительных команд, которые включают в себя блочно-ориентированные и графические команды, а также команды модификатора.
Операционная система Windows NT требует от приложений использованиясквозного интерфейса SCSI, с помощью которого команды передаются устройствам SCSI. На самом деле интерфейс задействуется и для отправки команд устройствам Fibre Channel, которые поддерживают такой же набор команд SCSI. Приложения используют программный интерфейс DeviceloControl с параметром IoControlCode, равным IOCTL_SCSI_PASS_ THROUGH или IOCTL_SCSI_PASS_THROUGH_DIRECT. В первую очередь приложению требуется получить дескриптор файла для устройства SCSI посредством функции CreateFile. Начиная с Windows 2000, компания Microsoft усилила схему безопасности, требуя от приложений указывать тип доступа (чтение/запись) в параметрах функции CreateFile и позволяя только ограниченному количеству учетных записей осуществлять запись. Таким образом, функция CreateFile вернет сообщение об ошибке для всех пользователей, которым системный администратор не разрешил запись данных.
Хотя этот интерфейс вполне работоспособен, при детальном рассмотрении архитектура кажется не вполне целостной. С одной стороны, в операционной системе реализован принцип «владею всем, что вижу» по отношению к таким ресурсам, как жесткие диски. С другой стороны, Windows даже не воспринимает резервирования и освобождения устройства хранения данных прикладным приложением. В рамках более эффективной архитектуры приложение будет запрашивать у операционной системы разрешение на проведение необходимой операции, после чего система будет или отказывать, если запрос не может быть выполнен, или выполнять запрошенную операцию, возвращая приложению соответствующие служебные данные. Будет ли развитие Windows двигаться в этом направлении, можно только догадываться.
2.2 Интерфейсы IDE, EIDE и АТА
Устройства с интерфейсом IDE являются самыми распространенными устройствами хранения данных в мире персональных компьютеров, особенно в потребительском сегменте рынка. Аббревиатура IDE расшифровывается как Integrated Drive Electronics (встроенный интерфейс накопителей). В свою очередь, АТА означает AT Attached, где под AT подразумевается классическая модель компьютера IBM PC AT. Обе аббревиатуры указывают на один и тот же стандарт подключения жестких дисков. Основная идея этого интерфейса заключается в интеграции контроллера в жесткий диск, благодаря чему IDE и называется встроенным интерфейсом. В стандарте IDE/АТА описаны характеристики 16-разрядной шины.
Стандарт IDE/АТА, как и. SCSI, пережил несколько модификаций. В оригинальном стандарте описывалось использование режима программируемого ввода-вывода (programmed input/output – РЮ), в котором центральный процессор играет важную роль при каждой операции ввода-вывода данных. В более поздних стандартах перешли к использованию прямого доступа к памяти (direct memory access – DMA), при котором ввод-вывод данных выполняется без участия центрального процессора.
Кабель IDE/АТА поддерживает подключение двух накопителей. Один из них является ведущим (master), а второй – ведомым (slave). В любой момент времени только один из дисков может быть активен. Более новый стандарт EIDE (Extended IDE) поддерживает четыре накопителя, так как один контроллер EIDE выступает в роли двух контроллеров IDE. Многозадачная операционная система, например Windows NT, может использовать возможности контроллера EIDE для одновременной передачи двух команд ввода- вывода на два «канала» IDE.
Ниже описаны особенности каждого из стандартов АТА.
АТА-1 требует использования программируемого, режима ввода-вывода.
АТА-2 был представлен институтом ANSI в 1996 году. В нем описано использование быстрых режимов РЮ и допускается применение прямого доступа к памяти (DMA). Кроме того, стандарт АТА-2 позволяет использовать технологию Plug and Play с помощью команды идентификации накопителя, возвращающей информацию о структурных особенностях диска.
АТА-3 был представлен в 1997 году и может рассматриваться в качестве минимальной модернизации стандарта АТА-2 для повышения надежности в быстрых режимах передачи данных. Главной особенностью стандарта АТА-3 стала поддержка технологии самоконтроля, анализа и отчетности SMART, отвечающей за контроль состояния жестких дисков. Технология SMART поддерживается накопителями SCSI и IDE.
В ATA-4/ATAPI была введена поддержка таких новых устройств, как дисководы для компакт-дисков и накопители Jazz. Аббревитура ATAPI расшифровывается как AT Attachment Packet Interface. В этом стандарте также описана поддержка Ultra DMA, позволяющая передавать данные с удвоенной скоростью по сравнению с обычным режимом DMA.
Устройства АТА по-прежнему развиваются и постепенно сокращают отрыв в производительности и надежности от устройств SCSI, пытаясь удерживать свое преимущество в цене. При нынешнем увеличении надежности аппаратного обеспечения и появлении специализированного программного обеспечения (например, программных массивов RAID, которые рассматриваются в главе 9) интерфейс АТА со временем может сыграть более важную роль в промышленных системах хранения данных. Однако обсуждение подобных перспектив выходит за рамки данной книги.
2.3 Модель мини-драйвера IDE
В архитектуре Windows Server 2003 поддерживается новая модель мини- драйвера IDE, которая должна заменить существующую модель драйвера IDE. Новый драйвер порта, предоставляемый Microsoft, работает быстрее, обслуживает несколько каналов и позволяет отказаться от разделения канальных интерфейсов и интерфейсов управления. Новая модель драйвера предоставляет более широкие возможности поставщикам жестких дисков; например, драйвер мини-порта от поставщика может изменить значение тайм- аута запросов и выбрать режим (DMA или РЮ) для каждого конкретного запроса. Компания Microsoft считает, что в перспективе устройства АТА будут играть более важную роль, поэтому продолжает развивать модель драйвера АТА. Будем надеяться, что в новых изданиях этой книги появятся дополнительные подробности, которые станут известными в процессе развития новых моделей драйверов.
2.4 Развитие адаптеров шин (НВА)
Изначально такие устройства хранения данных, как жесткие диски и накопители на магнитной ленте, подключались непосредственно к серверу. Единицы хранения размещались непосредственно в сервере или внешних отсеках, подключаемых к серверу с помощью контроллера ввода-вывода. Последний представлял собой плату расширения или модуль системной платы. Со временем для описания контроллеров начал использоваться термин адаптер шины (host bus adapter – НВА, т.е. адаптер, который подключен к шине ввода-вы- вода).
На рис. 2.1 демонстрируется сервер с платой контроллера ввода-вывода и несколькими устройствами, подключенными к контроллеру по шине SCSI. Хранилище данных, подключенное к серверу, – это неплохой вариант для небольших изолированных локальных сетей (например, для локальных сетей определенного отдела компании), однако подобные решения крайне плохо масштабируются. К одной из очевидных проблем относится количество единиц хранения, которые могут быть использованы при таком подключении.
Рис. 2.1. Хранилище SCSI, подключенное к серверу
Рис. 2.2. Интеллектуальная подсистема хранения данных
Еще одна проблема – наличие лишь одной шины SCSI для выполнения всех операций ввода-вывода.
Следующим этапом в развитии индустрии хранения данных была разработка подсистем хранения с собственными контроллерами ввода-вывода (рис. 2.2).
Представленная на рис. 2.2 подсистема хранения данных обладает дополнительными функциональными возможностями, что привело к переосмыслению некоторых терминов. Система на рис. 2.1 имеет только один контроллер ввода-вывода, который подключен к серверу. Система на рис. 2.2 содержит два контроллера, что потенциально может привести к путанице при указании
контроллера. Если существуют также дополнительные подсистемы хранения данных с собственными контроллерами, все может стать еще более запутанным. В связи с этим и была принята терминология, в которой контроллер, подключенный к серверу, называется адаптером шины. Адаптер шины может обеспечивать подключение к шине SCSI, IDE или интерфейсу Fibre Channel.