Серверные технологии хранения данных в среде Windows® 2000 Windows® Server 2003 - Наик Дайлип
Шрифт:
Интервал:
Закладка:
Некоторые контроллеры RAID поддерживают несколько идентификаторов SCSI. Кроме того, контроллеры RAID допускают использование нескольких LUN на одно устройство SCSI (так называемаяподдержка множественных номеров LUN).
Рис. 9.7. Массив RAID 50
9.2 Реализация массива ftAID на платформе Windows NT
Один из очевидных методов реализации массива RAID на платформе Windows NT состоит в поддержке массива на уровне аппаратного обеспечения, например в адаптере шины или контроллере устройства хранения.
В семействе Windows Server массив RAID поддерживают несколько драйверов, включая устойчивый к отказам драйвер FtDisk, драйвер LDM, который поставляется в Windows 2000, и драйвер LVM VERITAS, доступный для платформы Windows 2000. Все эти драйверы рассматривались в главах 1 и б. Поддержка массивов RAID, обеспечиваемая этими драйверами, рассматривается в табл. 9.1.
Таблица 9.1. Массивы RAID, поддерживаемые различными диспетчерами томов Windows
9.3 Обеспечение избыточной отказоустойчивости
Одним из методов достижения отказоустойчивости является буквальное дублирование каждого компонента. Вместо одного сервера можно установить кластер, что позволит не потерять доступ к данным при отказе в работе одного из серверов.
На рис. 9.8 показан сервер с несколькими адаптерами шины. Каждый адаптер подключен к коммутатору, а каждый коммутатор снабжен двойным подключением к устройствам хранения с двумя портами. Единственной точкой отказа на рис. 9.8 является сервер. Как уже отмечалось, создание кластера позволит избавиться от этой точки отказа. Тем не менее в этой главе рассматривается конфигурация с единственным сервером. Основное внимание стоит обратить на два адаптера шины, установленные на сервере, – подобную архитектуру можно использовать и для кластеров. Простой установки двух адаптеров шины на компьютере под управлением Windows NT недостаточно. Необходимо использовать специальное программное обеспечение, которое рассматривается более подробно в разделах 9.3.1 и 9.3.2.
Рис. 9.8. Отказоустойчивая конфигурация
9.3.1 Поддержка группового ввода-вывода в Windows 2000 и Windows Server 2003Компания Microsoft сообщила о поддержке технологий группового ввода-вывода, защиты целостности данных и балансировки нагрузки в Windows 2000 и Windows. Server 2003. При этом предоставляется универсальная система, которую производители компьютеров и независимые поставщики аппаратного обеспечения должны настроить под конкретные особенности различных устройств. Производителю следует получить инструментарий разработки, который доступен при условии подписания договора о неразглашении. Конечный пользователь может получить готовую систему только от производителя, а не от Microsoft..5
Еще раз обратите внимание на рис. 9.8, демонстрирующий схему сервера под управлением Windows NT с установленными двухпортовыми адаптерами шины. Не усложняя ситуации, предположим, что каждый диск отформатирован как единый том. Основная идея такой конфигурации – наличие нескольких путей ввода-вывода между жесткими дисками и сервером, что позволяет добиться устойчивости к отказам. Для конфигурации, приведенной на рис. 9.8, можно рассмотреть иерархию объектов устройств, которые создаются в стеке драйверов подсистемы хранения Windows.
На рис. 9.9 представлено дерево объектов для конфигурации рис. 9.8. Обратите внимание на пары PDO-FDO (объект физического устройства-объект функционального устройства), которые позволяют использовать возможности определенного устройства (см. главу 1). Вспомните, что объекты физического устройства, кром)е всего прочего, предоставляют информацию, необходимую для использования устройства. Для устройств хранения эта информация может содержать идентификатор шины SCSI, идентификатор целевого устройства и LUN. Объект функционального устройства предоставляет сведения, необходимые для получения доступа к устройству. Для устройств хранения примером такой информации служат данные о системной организации диска.
В нижней части на рис. 9.9 показано, что подсистема РпР находит шину PCI, создает для нее объект физического устройства и загружает драйвер шины PCI, который создает объект функционального устройства для шины и подключает его к объекту физического устройства. Далее перечисляются устройства, подключенные к шине PCI. В результате обнаруживаются два адаптера шины. Драйвер шины PCI создает два объекта физического устройства, по одному для каждого адаптера шины. Подсистема РпР обнаруживает драйвер и загружает SCSIPort или Storport вместе с драйвером мини-порта, предоставленным производителем. Драйвер SCSIPort или Storport создает объект функционального устройства для каждого адаптера и подключает его к соответствующим объектам физического устройства.
Рис. 9.9. Дерево объектов устройств без группового ввода-вывода
После этого драйвер SCSIPort или Storport начинает работать как драйве]) шины и перечисляет устройства, подключенные к шине SCSI. Поскольку к шине подключено два устройства, сообщается о двух (дисковых) устройствах. Кроме того, так как к системе подключено два адаптера шины SCSI и перечисление выполняется для каждого из них. каждый адаптер сообщит о двух устройствах. Таким образом, драйвер SCSIPort или Storport в этом случае «увидит» четыре дисковых устройства. Создаются объекты физического устройства для четырех дисков и загружается драйвер класса диска, который создает четыре объекта функционального устройства и подключает каждый объект к соответствующему объекту физического устройства. Без группового ввода-вывода перечисляются разделы объектов функционального устройства диска и для управления томами, существующими на этих разделах, загружается драйвер FtDisk или LDM. (Чтобы не усложнять обсуждение. предположим, что каждый диск состоит из одного раздела и каждый раздел содержит один том.)
Программные системы более высокого уровня получат сведения о четырех томах устройств хранения, тогда как в действительности существует только два тома. Предположим, что эти два тома отформатированы для NTFS.
Файловая система также получит данные о четырех томах, для которых будет произведена попытка запуска NTFS. Очевидно, что NTFS, работающая на томах H1L1 и H2L1 (см. рис. 9.9), окажется несинхронизированной. При этом обязательно будут перезаписываться данные каждой файловой системы, например данные в журнале изменений, и в результате том окажется поврежденным.
Несколько производителей разработали метод, который не только решает описанную проблему, но и предоставляет богатый набор дополнительных возможностей, например сохранение и восстановление целостности данных, а также балансировка нагрузки. Функция сохранения целостности (failover) автоматически перенаправляет ввод-вывод с неисправного пути на другой путь ввода-вывода. В свою очередь, функция восстановления целостности (failback) исправляет неисправный путь ввода-вывода и снова вводит его в строй. Балансировка нагрузки позволяет распределить ввод-вывод на все доступные пути по определенному алгоритму. В качестве алгоритма может применяться поочередное распределение ввода-вывода, распределение на основе загрузки пути, простое распределение по всем путям или другой способ. Технология компании Microsoft рассматривается далее, после чего приводится описание продуктов от других производителей.
Компания Microsoft, создавая архитектуру группового ввода-вывода, преследовала несколько целей.
Совместная работа с другими внедренными драйверами и архитектурами, включая РпР и управление питанием. На самом деле суть не просто в совместной работе, а в использовании уже существующей архитектуры, например когда уведомления устройств передаются с помощью базового механизма РпР.
Динамическое обнаружение устройств и путей без применения статической конфигурации.
Обеспечение совместного применения различных методов группового ввода-вывода от нескольких производителей. На данный момент это исключительно сложно (практически невозможно) реализовать.
Предоставление универсальной технологии, которая позволяет производителям компьютеров и независимым производителям программного и аппаратного обеспечения добавлять такие возможности, как балансировка нагрузки или сохранение целостности данных. Тестовый модуль от Microsoft, связанный с определенным устройством (device- specific module – DSM), обеспечивает балансировку нагрузки, которая, впрочем, будет максимально эффективна при статическом использовании; например, для всего ввода-вывода на LUN 1 будет применяться первый путь, а для всего ввода-вывода на LUN 2 – второй путь.