Наик Дайлип - Серверные технологии хранения данных в среде Windows® 2000 Windows® Server 2003
При использовании SAN сеть размещается между файловой системой и устройством хранения; однако по сети передаются данные ввода-вывода на уровне блоков, а не на уровне файлов. В классических SAN практически всегда используется интерфейс Fibre Channel.
При использовании IP Storage сеть также размещается между файловой системой и устройством хранения, но в данном случае она основана на протоколе IP.
8.1.1 Почему IP Storage?
Идея технологии IP Storage возникла благодаря осознанию того, что иметь в наличии два типа сетей вовсе не обязательно. Этими двумя сетями являются IP и Ethernet, которые используются для соединения клиентов и серверов (так называемые интерфейсные сети (front-end)). В свою очередь, сеть между сервером и хранилищем данных называется серверной (back-end).
Ниже описаны причины, лежащие в основе развития IP Storage.
Протокол IP – это развитая, хорошо себя зарекомендовавшая технология, которая нашла применение в сетях Ethernet, ATM и т.д.
Маршрутизация протокола IP также весьма развита и предоставляет несколько маршрутов между серверами и устройствами хранения в условиях постоянно модифицируемой сети.
В некотором смысле проблема управления хранилищем аналогична известной проблеме управления сетями IP.
Протокол IP обеспечивает взаимодействие географически разделенных серверов и устройств хранения данных.
Сети IP используются для создания сетей наибольшего масштаба, включая Internet, поэтому большинство проблем, связанных с масштабированием и сетевыми «заторами», в них решены.
Компании, развивающие технологию IP Storage, отмечают, что протокол IP победил и пора переходить от концепции «IP поверх всего» (Ethernet, Token
Ring, ATM, Gigabit Ethernet и т.д.) к «все поверх IP» (включая блоки данных команд SCSI или CDB, SСSI-команды/результат-по-1Р и т.д.).
В главе 4 описаны два глобальных системных окружения: каналы ввода- вывода и сети. Каналы, например SCSI, обычно работают на небольших расстояниях и предназначены для решения узкого круга задач, поэтому большая часть работы возложена на аппаратное обеспечение. Сети, как правило, могут работать на больших расстояниях, по своей природе более универсальны и немалая часть функций реализована в виде программного обеспечения. Технология Fibre Channel стала попыткой централизации этих двух окружений на уровне каналов, в то время как IP Storage разрабатывается для обеспечения централизации на сетевом уровне.
Новым термином глобальная сеть хранения данных (Storage Wide Area Network – SWAN) описывается развертывание и использование технологий IP Storage поверх глобальных сетей на основе протокола IP.
В следующих разделах рассматриваются различные технологии, формирующие стандарт IP Storage. Также приводятся ссылки на реализацию этих технологий от компании Microsoft.
8.1.2 Протокол iSCSI
Протокол iSCSI (сокращение от Internet SCSI) позволяет реализовать одно или несколько подключений TCP/IP между устройствами, обменивающимися командами SCSI, ответами и информацией о состоянии. Другими словами, iSCSI представляет собой протокол для соединения «точка-точка», инкапсулирующий команды SCSI, ответы и информацию о состоянии.
На рис. 8.2 показано, как компоненты IP, TCP, iSCSI и SCSI работают вместе в процессе инкапсуляции. Пакет iSCSI содержит данные и команду SCSI для стека TCP/IP. Заголовок iSCSI содержит информацию об извлечении и интерпретации команды SCSI, которая размещена в пакете. Заголовок пакета TCP отвечает за гарантированную и последовательную доставку пакетов. Пакет TCP содержит данные и полезную нагрузку (payload) пакета IP. Заголовок IP используется в процессе маршрутизации.
Из трех основных протоколов работы с хранилищами IP – iSCSI, FCIP (Fibre Channel over IP) и iFCP (Internet Fibre Channel Protocol) – протокол iSCSI является единственным, не связанным с Fibre Channel. Как видите, на рис. 8.2 Fibre Channel не упоминается, поскольку протокол iSCSI разрабатывался без поддержки Fibre Channel.
Рис. 8.2. Инкапсуляция протокола iSCSI
Рис. 8.3. Уровни протокола iSCSI
Протокол iSCSI размещен поверх существующих уровней протоколов TCP, IP и низкоуровневых аппаратных протоколов, поддерживающих TCP/IP (например, Ethernet и Gigabit Ethernet).
Как можно заметить (рис. 8.3), SCSI – это протокол уровня приложения. Протокол iSCSI предоставляет услуги протоколу приложений SCSI и применяет TCP/IP для обеспечения гарантированной доставки, маршрутизации и т.д.
Все устройства iSCSI (целевые и устройства-инициаторы) имеют два разных имени.
Адрес iSCSI, который состоит из адреса IP, порта TCP и имени iSCSI
и имеет формат «<имя домена>: <номер порта>:<имя iSCSI>«.
Имя iSCSI, которое имеет наглядный формат, например «Hmh_FQN.
Поставщик_диска. Модель _диска. Номер».
Служба именования iSNS (Internet Storage Name Service) является общей для iSCSI, iFCP и FCP (Fibre Channel Protocol). Протоколы iFCP и FCP рассматриваются в разделе 8.1.5. Кроме использования iSNS в качестве службы именования, протокол iSCSI имеет спецификацию, в которой описана информационная база управления (Management Information Base – MIB) для управления устройствами iSCSI на основе протокола SNMP. Кроме того, протокол iSCSI определяет процесс реализации удаленной загрузки.
Протокол iSCSI устанавливает сеансы связи между инициатором и целевым устройством. Один или несколько сеансов протокола TCP могут использоваться одним или несколькими сеансами iSCSI. После установки сеанса две стороны (инициатор и целевое устройство) обмениваются такими параметрами, как безопасность, размер буфера и возможность отправки неза- прошенных данных. Сеанс iSCSI может закрываться стандартным образом: посредством завершения регистрации или в связи с возникновением ошибки. Независимо от количества использованных сессий TCP, протокол iSCSI гарантирует, что команда SCSI и ответы на нее будут доставлены в правильном порядке. Обратите внимание: протокол TCP гарантирует последовательную доставку для определенного сеанса TCP, но не обеспечивает синхронизации передаваемых данных между различными сеансами TCP. Таким образом, синхронизации сеансов TCP возлагается на протокол iSCSI. Можно перечислить ряд требований к протоколу iSCSI.
Разные команды SCSI могут передаваться через различные сеансы TCP.
Все данные и параметры, соответствующие определенной команде, должны передаваться в рамках того же сеанса TCP, по которому передавалась команда SCSI.
В протоколе iSCSI определена концепция тега-инициатора. Все ответы будут иметь соответствующий тег инициатора, который высылается вместе с первоначальной командой. Инициатор должен обеспечить уникальность тегов и исключить возможность повторного использования тега, пока инициатор не получит все ответы на соответствующую команду. Тег должен быть уникальным в рамках инициатора (операционная. система yindows NT является многозадачной, и инициатор может работать для нескольких процессов и приложений).
Протоколом iSCSI определена концепция нумерации команд, которая обеспечивает последовательную доставку команд через несколько сеансов TCP.
Кроме того, в протоколе iSCSI определен механизм CRC типа «точка- точка». Проверка CRC на втором уровне (например, на уровне Gigabit Ethernet) или на третьем уровне (контрольные суммы TCP/IP) может оказаться ненадежной, особенно если на пути передачи пакетов размещены другие устройства IP, например трансляторы сетевых адресов, маршрутизаторы и т.д. Поставщики подсистем хранения всегда с большой осторожностью относились к методам проверки целостности данных.
Протокол iSCSI имеет свои недостатки. При его использовании возникают проблемы, связанные с безопасностью, управлением сетевыми «заторами» и качеством обслуживания. Но эти вопросы в основном касаются работы сетей на базе протоколов TCP/IP, проблемы которых уже хорошо изучены.
8.1.3 Реализация протокола iSCSI в Windows NT
Поддержка протокола iSCSI в Windows NT активно внедряется компанией Microsoft. Несмотря на это, Windows Server 2003 не обеспечена поддержкой iSCSI по умолчанию.
На рис. 8.4 показана архитектура реализации протокола iSCSI в Windows NT.
Инициатор iSCSI реализован в виде драйвера мини-порта для модели SCSIPort или Storport.
Динамически подключаемая библиотека обнаружения iSCSI отслеживает все изменения и выступает в роли единственного хранилища для всех номеров LUN, обнаруженных тем или иным способом, включая использование клиентов iSNS или уведомление портов. Библиотека обнаружения предоставляет API обнаружения новых LUN для приложений управления и, если это необходимо, методы, с помощью которых приложение управления может дать указание библиотеке обнаружения зарегистрировать новый LUN.
Рис. 8.4. Архитектура iSCSI
Рассмотрим, каковы планы компании Microsoft относительно протокола iSCSI.