Книга: Серверные технологии хранения данных в среде Windows® 2000 Windows® Server 2003
2.6 Драйвер Storport
2.6 Драйвер Storport
В главе 1 рассматривается стек ввода-вывода Windows NT, в том числе один из важных его компонентов – драйвер SCSIPort (разработанный в Microsoft). Этот драйвер взаимодействует с драйвером мини-порта, создаваемым поставщиком конкретного устройства и предназначенным для обслуживания последнего. До выхода Windows Server 2003 устройства хранения данных различного типа, например более старые жесткие диски SCSI, новые устройства SCSI-3 и Fibre Channel, использовали специфичный для устройства драйвер мини-порта, который подключался к драйверу SCSIPort. Этот сценарий имел несколько недостатков.
В описываемой модели подразумевается, что устройства Fibre Channel имеют возможности, сопоставимые с аналогичными функциями устройств SCSI, что не имеет под собой реальной основы.
Драйвер SCSIPort использовал однопоточную модель, не поддерживая полнодуплексный режим. Это означает, что одни запросы не могли выполняться, пока в очереди находились другие запросы, и наоборот. При обслуживании прерывания драйвер мини-порта не мог принимать новые запросы и сообщать о завершении уже выполненного запроса. Использование Windows на многопроцессорных компьютерах делало эту проблему еще более актуальной.
Драйвер порта содержал информацию, которая не отправлялась драйверу мини-порта, что требовало от последнего самостоятельного сбора необходимых сведений с помощью нескольких запросов. В частности, это было характерно для работы со списками разборки/сборки[4].
Рис. 2.3. Драйвер Storport в иерархии драйверов Windows Server 2003
? Не удовлетворенные таким положением вещей, поставщики устройств Fibre Channel решили проигнорировать драйвер SCSIPort (созданный компанией Microsoft) и реализовали комплексные драйверы (обеспечивающие возможности как драйвера порта, так и драйвера мини-порта) или собственные драйверы портов и мини-портов. Поскольку этот процесс был основан на инженерном анализе функций драйвера порта, полученные драйверы в лучшем случае работали с минимальным количеством проблем. Зачастую возникали ситуации, при которых два устройства от разных поставщиков не могли одновременно работать на компьютере под управлением Windows NT.
В Windows Server 2003 компания Microsoft представила новую модель драйвера с поддержкой драйвера порта Storport (рис. 2.3). Драйвер Storport предназначен для использования поставщиками более новых устройств SCSI-3 и Fibre Channel. Таким образом, Microsoft намерена постепенно прекратить поддержку драйвера SCSIPort, который, хотя и не удален из Windows, предназначен для использования только вместе с более старыми устройствами хранения данных.
На данном этапе поставщикам адаптеров шины предлагается создавать драйверы мини-портов, которые должны подключаться к драйверу Storport, а не к SCSIPort. Чтобы упростить процесс перехода, Microsoft сделала драйвер Storport обратно совместимым с моделью SCSIPort. Это значит, что поставщики, не желающие затрачивать время и силы, могут воспользоваться
некоторыми (но не всеми) преимуществами новой модели драйверов. Для максимального использования возможностей новой модели драйверов поставщикам требуется выполнить больше работы, чем обычная перекомпиляция и сборка с другой библиотекой.
Новая архитектура обеспечивает значительный прирост производительности, который достигается несколькими методами.
Новая модель драйверов поддерживает полнодуплексный режим, при котором новый запрос может быть помещен в очередь драйвера одновременно с выполнением операций ввода-вывода. Новая модель поддерживает использование прерываний для выполнения большего объема работы драйвером мини-порта, созданным поставщиком. Обратите внимание, что эта эффективность достигается за счет усложнения структуры драйвера мини-порта, так как от него требуется поддержка синхронизации. Драйверы мини-портов SCSIPort поддерживали только полудуплексный режим и работали не так эффективно, однако поддержка синхронизации не обеспечивалась (поскольку эта обязанность была возложена на драйвер порта).
Новая модель минимизирует количество вызовов между драйверами порта и мини-порта. Например, в старой модели драйвер мини-порта осуществлял несколько вызовов драйвера SCSIPort для получения списков разборки/сборки.
Кроме повышения быстродействия, модель Storport обеспечивает ряд Других преимуществ.
Модель Storport улучшает взаимодействие между драйверами порта и мини-порта. В модели SCSIPort драйверу порта не разрешалось сообщать о занятости устройства. В свою очередь, модель Storport позволяет драйверу мини-порта передавать драйверу Storport команды на приостановку и возобновление передачи данных, а также сообщать о занятости адаптера.
В новой архитектуре реализован сложный механизм управления ошибками. Драйвер SCSIPort просто пытался повторно инициировать шину, что требует немало ресурсов и нарушает стабильность работы системы. При соответствующей поддержке драйвера мини-порта от независимых поставщиков аппаратного обеспечения модель Storport позволяет аннулировать параметры конкретной логической единицы, устройства и только в крайнем случае – самой шины. Еще одним улучшением в механизме обработки ошибок является расширение списка ошибок, который поддерживается драйвером порта. Модель Storport позволяет обрабатывать сообщения об ошибках, которые выдают более новые устройства SCSI-3, в то время как драйвер SCSIPort маскировал такие ошибки в более старый тип ошибок, поддерживаемых драйвером.
Рис. 2.4. Работа с очередью запросов в модели Storport
Все новые возможности имеют минимальный шанс нарушить нормальную работу системы, гак как модель Storport обратно совместима с SCSIPort. Поставщики могут просто перекомпилировать и скомпоновать старый код с библиотекой драйвера Storport, (вместо библиотеки драйвера SCSIPort), не затрачивая усилий на перенос кода на другую платформу. Это позволит использовать новую модель, хотя и не предоставит всех преимуществ, доступных при полноценном переносе.
Новая архитектура предоставляет интерфейс, отменяющий необходимость создания «виртуального устройства» (ghost device). Модель SCSI не позволяет приложению запрашивать функции без монтирования модуля мини-порта. В свою очередь, модель Storport не требует создания виртуального устройства, поддерживая запрос функций даже без монтирования этого модуля.
Кроме всего прочего, в новой архитектуре улучшен интерфейс с целью обеспечить соответствие требованиям поставщиков систем хранения данных высокого уровня. Особенно это касается поставщиков систем RAID и Fibre Channel. Например, старая модель SCSIPort поддерживала ограниченный набор возможностей по управлению'очередью запросов. Новые устройства, в свою очередь, требуют расширенного управления очередью. Модель Storport поддерживает использование 254 запросов на каждую логическую единицу каждого адаптера. Максимальное количество запросов на адаптер ограничено только количеством логических единиц, поддерживаемых адаптером (рис. 2.4).
Еще одно преимущество иерархической структуры в модели Storport заключается в Етличии интерфейса управления для конфигурации и управления высокоуровневыми устройствами хранения данных. Этот интерфейс
основан на инструментарии управления Windows (Windows Management Instrumentation – WMI). Интерфейс используется другими элементами Windows, например интерфейсом управления для командной строки. Технология WMI рассматривается в главе 7. Интерфейс управления WMI поддерживает четыре различных класса WMI.
Класс адаптера шины. На компьютере может быть установлено несколько таких адаптеров и для каждого из них создается экземпляр такого класса.
Класс каналй. Каждый адаптер может иметь один или несколько каналов, которые соединяют адаптер с его физическими дисками.
Класс массива дисков. Каждый канал может иметь один или несколько массивов дисков или не иметь таковых вообще.
Класс физического диска. Каждый адаптер может иметь один или несколько подключенных физических дисков или не иметь таковых вообще.
- Драйверы
- Системные вызовы и драйверы устройств
- 1.4 Структуры данных, связанные с драйверами устройств Windows
- 1.5 Структура драйвера устройства Windows
- 1.6 Драйверы и буферы ввода-вывода
- 1.7 Иерархия драйверов систем хранения и типы драйверов
- 2.3 Модель мини-драйвера IDE
- Зачем нужны драйверы?
- При установке драйвера появляется сообщение об отсутствии у драйвера цифровой подписи
- Удалил драйвер видеокарты, а потом еще и отключил устройство по умолчанию SVGA. После перезагрузки увидел черный экран… ...
- Как получить исчерпывающую информацию о драйверах, установленных в системе?
- На старом компьютере нужно переустановить систему, но при этом сохранить драйверы. Есть возможность «вырвать» их из сист...