Наик Дайлип - Серверные технологии хранения данных в среде Windows® 2000 Windows® Server 2003
Драйвер фильтрации позволяет добавить новые функции для Windows NT. Компания Microsoft использовала подобный драйвер при создании приложения Hierarchical Storage Management.
В целом создание драйверов Windows NT требует серьезных знаний в этой области и доступа к подходящему программному инструментарию.
1
Глава 2. Серверные хранилища данных
Изначально системы хранения данных разрабатывались для мэйнфреймов и большинство из них были основаны на закрытых, частных технологиях. Для мини-компьютеров были созданы такие стандарты, как SCSI. С появлением персональных компьютеров серверные стандарты (SCSI и IDE) получили широкое распространенйе.
В этой главе рассматриваются системы хранения данных, подключенные к серверу (Direct Attached Storage – DAS), т.е. устройства, подключенные непосредственно к компьютеру под управлением Windows NT. В главе 1 описан стек ввода-вывода Windows NT в контексте подсистемы хранений данных. В этой главе внимание уделяется разработке стека ввода-вывода подсистемы хранения данных Windows NT для улучшения поддержки новых устройств Fibre Channel и SCSI. Подобные устройства воспринимаются Windows NT как подключенные непосредственно к компьютеру.
2.1 Интерфейс SCSI
Аббревиатура SCSI расшифровывается как Small Computer System Interface (интерфейс для малых компьютеров), что на данный момент кажется нелогичным, поскольку устройства SCSI обычно подключены к высокопроизводительным серверам и являются наилучшим выбором для использования в качестве подсистемы хранения для многопроцессорных центров хранения данных. Стандарты SCSI утверждаются техническим комитетом Т10 (http://www.tlO. org), подразделением Международного комитета INCITS (InterNational Committee for Information Technology Standards), который, в свою очередь, работает под эгидой Национального института стандартизации США (American National Standards Institute – ANSI; http://www. ansi.org).
2.1.1 Стандарты
Шина SCSI изначально разрабатывалась в качестве параллельной архитектуры отправки данных по 8- или 16-разрядной шине. Существовали и последовательные версии архитектуры SCSI, например SSA (Serial Storage Architecture) и 1394. До определенного времени эти архитектуры (особенно SSA) разрабатывались отдельно и лишь позднее были включены в проект стандарта SCSI-3. Оба стандарта – как SSA, так и 1394 – практически не используются на рынке корпоративных подсистем хранения данных, однако достаточно широко распространены на рынке потребительских устройств.
За годы своего существования стандарты SCSI были значительно усовершенствованы, появилось множество версий, которые различаются следующими параметрами:
ширина шины данных;
быстродействие шины данных;
количество устройств, которые могут быть подключены к одной шине;
электрические и механические характеристики шины;
максимальная длина шины;
тип архитектуры шины – последовательная или параллельная. Хотя SCSI исторически ассоциируется с параллельными шинами, компьютерная индустрия активно движется в сторону последовательной архитектуры, и стандарты SCSI не являются исключением.
Обратите внимание: SCSI представляет собой не единый стандарт, а определенный набор стандартов. В одних стандартах заложены механические и электрические характеристики, в других – наборы команд, которые должны быть реализованы устройствами. Эти стандарты реализуются и в других устройствах, например Fibre Channel.
В табл. 2.1 приведены различные стандарты SCSI и их характеристики.
Таблица 2.1. Стандарты и характеристики SCSI
Окончание табл. 2.1
Более старые стандарты, например SCSI-1, сегодня считаются морально устаревшими. Последний стандарт, SCSI-3, на самом деле представляет собой не единую спецификацию, а целое семейство спецификаций, развитие которых продолжается. Таким образом, SCSI следует рассматривать в качестве стандарта, определяющего набор команд и других спецификаций, относящихся к физической реализации этого интерфейса. Очевидно, что определенный стандарт можно взять в качестве основы для реализации нового носителя. Примером может служить тенденция к реализации набора команд SCSI для Fibre Channel и SSA. На данный момент к самым популярным устройствам относятся Ultra SCSI и SCSI-3.
2.1.2 Функциональные возможности и характеристики
Важным параметром считается баланс между расстоянием от устройства до адаптера шины и количеством устройств SCSI, которые можно подключить к шине. Чем больше количество устройств, подключенных к шине, тем
короче должна быть шина. Меньшее количество устройств позволяет удлинить шину. Кроме того, максимальная длина шины зависит от ее электрических характеристик. Обратите внимание, что эти рассуждения касаются исключительно интерфейса SCSI. Новые реализации, например iSCSI (см. главу 8), в значительной степени отменяют старые ограничения на расстояние, поскольку могут передавать команды и результаты их выполнения на большие расстояния, используя транспортный протокол IP.ч
Устройства SCSI последовательно подключаются к контроллеру. Каждое устройство, подключенное к шине, получает уникальный идентификатор. Идентификаторы SCSI не назначаются произвольно, так как используются для определения относительного приоритета устройства при конкуренции за пропускную способность шины данных между устройствами.
Устройства SCSI обратно совместимы друг с другом, а некоторые даже могут работать в нескольких режимах SCSI. Но в работе более новых устройств под управлением более старого контроллера существуют свои проблемы, которые выходят за пределы тем, рассматриваемых в этой книге. Те, кого интересует описание этих проблем, могут обратиться к списку литературы, приведенному в конце книги.
Высокая производительность устройства хранения данных не гарантирует аналогичной производительности и достаточной пропускной способности сервера. При оценке сервера важно анализировать скорость и пропускную способность не только подсистемы хранения данных, но внутренних шин сервера. Большинство высокопроизводительных серверов используют одновременно несколько адаптеров SCSI, которые подключены к разным шинам PCI. При такой конфигурации шина PCI не станет «узким местом» в общей производительности системы.
2.1.3 Терминология и команды
Для проведения необходимых операций ввода-вывода одно устройство, подключенное к шине SCSI, будет работать как инициатор, а другое – как целевое устройство. Например, на сервере под управлением Windows NT контроллер SCSI будет инициатором, а жесткий диск или накопитель на магнитной ленте – целевым устройством.
Хотя подобное использование устройства кажется необычным, большинство адаптеров шины SCSI поддерживают обе роли (в зависимости от того, реализована ли подобная функций в прошивке адаптера шины). Контроллер iSCSI относится к устройствам, одновременно представляющим собой как целевое устройство, так и инициатор. Компьютер может быть целевым устройством при экспорте локальных дисков и инициатором при использовании дисков удаленного контроллера iSCSI.
Инициатор отправляет команду целевому устройству, которое выполняет запрошенные операции, отправляя по завершении работы соответствующий ответ. Целевое устройство SCSI остается пассивным до получения команды от инициатора. После получения команды целевое устройство принимает на себя управление шиной перед ответом на команду, например перед отправкой запрошенных данных. Инициатор и все остальные устройства на общей шине совместно определяют хозяина шины.
При загрузке сервера Windows NT контроллер SCSI, который часто называют контроллером шины (об этом речь идет далее), выдает соответствующую команду каждому подключенному к шине и обнаруженному устройству SCSI. Это команда Report LUNs, благодаря которой целевое устройство возвращает список номеров логических элементов, управляемых устройством. (Логические элементы описываются в разделе 2.5.)
Не менее важными являются и команды Reserve/Release. При наличии нескольких инициаторов одному из них может потребоваться исключительный доступ к целевому устройству. Хорошим примером может служить получение эксклюзивного доступа к накопителю на магнитной ленте. Если два инициатора будут поочередно записывать данные на магнитную ленту, последняя будет содержать бесполезную информацию. Команды Reserve и Release позволяют обеспечить управление доступом.
Существует два типа команд интерфейса SCSI Reserve и Release. Один называется непостоянным резервированием, поскольку сброс параметров целевого устройства приводит к аннулированию резервирования. Другой тип – постоянным резервированием, поскольку резервирование сохраняется и после сброса параметров целевого устройства. Сброс параметров может потребоваться, если устройство-инициатор столкнется с проблемами после операции резервирования. Еще одна команда (стороннее резервирование) позволяет инициатору зарезервировать целевое устройство для другого устройства. Отмена резервирований должна осуществляться устройством, выполнившим их ранее, или же устройством, на правах которого выполнялось стороннее резервирование.