Книга: Серверные технологии хранения данных в среде Windows® 2000 Windows® Server 2003

6.6 Файловые системы для сетей хранения данных

6.6 Файловые системы для сетей хранения данных

Сети хранения данных позволяют администраторам сформировать пул ресурсов хранения сосуществующих с группой серверов, когда отдельные ресурсы подсистемы хранения можно назначать разным серверам. Для SAN необходимо, чтобы в любой момент времени только определенный сервер мог получить доступ к определенным ресурсам подсистемы хранения. Сети хранения данных предоставляют эффективный способ переназначения ресурсов подсистемы хранения данных между серверами. Чтобы лучше понять этот механизм, обратитесь к рис. 6.14.


Рис. 6.14. Использование сети хранения данных с локальной файловой системой

На рис. 6.14 демонстрируется типичная трехуровневая архитектура сети хранения данных. На верхнем уровне находятся клиенты, получающие доступ к серверам по локальной сети. Серверы подключены к коммутатору Fibre Channel. Кроме того, к коммутатору подключено несколько дисков. Диски подсистемы хранения можно рассматривать как пул дисков, состоящий из дисков D1-D4. На рис. 6.14 показан сервер 1 и диски D1 и D3, закрашенные другим цветом, так как сервер 1 получает эксклюзивный доступ к дискам D1 и D3. Сервер 2 получает эксклюзивный доступ к дискам D2 и D4.

Сеть хранения данных обеспечивает относительно простое переключение дисков между серверами. Сети хранения не поддерживают одновременного совместного использования устройств подсистемы хранения. В контексте верхних программных уровней (в частности, файловых систем и выше) некоторые ресурсы подсистемы хранения выглядят как подключенные непосредственно к серверу. Это утверждение справедливо для сетей хранения данных на основе как технологии Fibre Channel, так и протокола IP[16].

Для одновременного совместного доступа к ресурсу подсистемы хранения (например, к тому) несколькими серверами необходима поддержка рас-

ширенной файловой системы, которую часто называют файловой системой сети хранения данных (SAN file system). Файловые системы SAN позволяют нескольким серверам одновременно получить доступ к одному и тому же хранилищу, предоставляя возможность эксклюзивного доступа к некоторым файлам или компонентам файлов только определенным серверным процессам на протяжении указанного промежутка времени. Внимательный читатель может заметить, что даже хранилище, подключенное к сети, позволяет совместно использовать файлы, и это верно. Но хранилище, подключенное к сети, имеет единый сервер (сервер NAS), который выполняет роль шлюза, и все команды для операций с файлами (например, открытие, закрытие, запись и блокировка) издаются этим сервером.

Сервер NAS может легко превратиться в проблемный элемент системы хранения данных. Такие сетевые файловые системы, как CIFS и NFS (см. главу 3), предоставляют совместный доступ на уровне файлов. При этом поддерживаются клиенты, которые обращаются к серверу по сетевому протоколу, например TCP/IP. Файловые системы сетей хранения данных предоставляют совместный доступ к устройствам хранения на уровне блоков. При этом поддерживаются клиенты, использующие протокол уровня блоков, например SCSI. При использовании файловых систем SAN каждый сервер использует то, что воспринимается им в качестве файловой системы на локальном диске. Но в реальности в рамках подобной «иллюзии» работает несколько серверов. При этом файловая система сети хранения данных, выполняющаяся на каждом из серверов, корректно поддерживает состояние файловой системы на томе, на котором одновременно работает несколько серверов.

Чтобы понять такую архитектуру, следует обратиться к диаграмме. На рис. 6.15 демонстрируется два сценария работы. В левой части диаграммы представлен диск NAS, к которому несколько серверов получают доступ с помощью сетевой файловой системы. В правой части диаграммы показано несколько серверов, получающих доступ к единственному диску с помощью файловой системы сети хранения данных. В первом случае каждый сервер использует сетевую файловую систему (например, SMB или NFS) для отправки запросов на сервер устройства NAS. Таким образом, устройство NAS потенциально является единственной точкой отказа, а также проблемным элементом в контексте производительности всей системы. При использовании сетевой файловой системы единственной точки отказа или проблемного элемента производительности просто не существует. Диск подсистемы хранения данных может предоставляться клиентам через схему балансировки нагрузки. Если один из серверов откажет в работе, данные диска можно будет получить, обратившись к другому диску. Конечно, при этом схема усложняется и становится дороже за счет стоимости файловой системы SAN.


Рис. 6.15. Сценарии использования файловых систем NAS и SAN

6.6.1 Преимущества файловых систем SAN

Ниже перечислены преимущества файловых систем SAX.

Реали зация отказоустойчивых систем. Несколько серверов могут получить доступ к одному тому, поэтому серверы не являются единственным проблемным компонентом. Кроме того, относительно недорого можно обеспечить устойчивость к ошибкам на уровне тома (для этого можно воспользоваться соответствующим массивом RAID). Создание отказоустойчивого кластера обойдется намного дороже, не говоря уже о стоимости его эксплуатации.

Предоставление высокой пропускной способности, так как обычно узким местом в производительности ввода-вывода является шина ввода- вывода на сервере. Если несколько серверов получают доступ к одному тому, ограничения на пропускную способность шины исчезают. Операции копирования данных сокращаются до минимума по сравнению с XAS. Например, для чтения данных, запрошенных клиентом, данные обычно копируются из буфера сервера в буфер TCP/IP, а на стороне клиента – из буфера TCP/IP в буфер приложения.

Консолидация подсистемы хранения, благодаря которой пользователи могут избежать излишнего дублирования и синхронизации данных, когда сервер не в состоянии обеспечить требующуюся производительность из-за высокой нагрузки. Кроме того, серверу необходима дополнительная единица хранения с идентичными томами, так как без исиользо- вания файловой системы сети хранения данных два сервера не могут одновременно получать доступ к одному и тому же жесткому диску.

Снижение требований к накладным расходам на управление данными, что приводит к снижению общей стоимости владения (ТСО). От администратора требуется управление только одним экземпляром файловой системы вместо управления несколькими экземплярами.

Файловые системы SAN представляют собой исключительно масштабируемые системы, в которые можно добавлять новые серверы, подсистемы хранения или дополнительные устройства SAN (например, коммутаторы), если требования к архитектуре подсистемы хранения изменились.

Приложения могут выбирать тип хранилища, наиболее подходящий их требованиям, например RAID О, RAID 1 или RAID 5.

Масштабируемость SAN можно сравнить с компьютерным эквивалентом конструктора LEGO. Для получения дополнительной мощности достаточно добавить сервер и настроить его на доступ к существующему диску.

6.6.2 Проблемы использования файловых систем SAN

Настоящий «инженерный подвиг» при реализации файловых систем сетей хранения данных состоит в том, чтобы достичь баланса между параллельным доступом и сериализацией. Параллельный доступ к файлам и дискам необходим для создания масштабируемой системы, которая дает возможность нескольким процессам получить доступ к одному и тому же набору файлов. При этом для обеспечения целостности пользовательских данных и метаданных файловой системы необходима синхронизация, даже если несколько пользователей и процессов получают доступ к файлам.

Обратите внимание: сложность достижения баланса между параллельностью и сериализацией присуща и другим файловым системам, не связанным с сетями хранения данных, например к NTFS. Различие заключается в том, что механизмы обеспечения корректной сериализации имеют более простую структуру и предоставляются операционными системами. Например, механизмы синхронизации, предоставленные Windows, в частности spin- блокировка и семафоры, отлично подходят для использования в файловых системах, не связанных с SAN, например в NTFS.

Полное описание технологии, связанной с созданием файловых систем сетей хранения данных, выходит за рамки данной книги. Достаточно перечислить ряд проблем, возникающих при создании таких файловых систем.

Механизм синхронизации, который часто называют диспетчером распределенных блокировок, должен работать на нескольких компьютерах и быть устойчивым к отказам в работе и задержкам в передаче данных по сети.

Возможны проблемы, когда отказывают в работе компьютеры, «удерживающие» ресурсы, например при блокировке файлов.

Возможны проблемы при произвольном или непроизвольном изменении конфигурации. Например, в сети (TCP/IP или сети хранения данных) меняется топология, что приводит к прекращению доступа к некоторым узлам.

Необходима технология обнаружения взаимных блокировок. Взаимные блокировки возникают, когда клиент удерживает некоторые ресурсы, освобождения которых ожидает второй клиент. Одновременно второй клиент удерживает ресурсы, освобождения которых ожидает первый клиент.'

Программные массивы RAID вообще не могут быть использованы или требуют сложной схемы реализации. Применению программных массивов RAID соответствует два уровня связывания. На первом уровне файловая система соотносит ввод-вывод с уровнем тома или раздела. На следующем уровне компонент программного массива RAID (диспетчер логических дисков в Windows 2000) соотносит ввод-вывод на уровне тома с вводом-выводом на уровне блоков физических дисков. Более того, для предотвращения повреждения данных необходимы методы, задействующие два уровня блокировки сетей хранения данных. Первая блокировка выполняется на уровне файловой системы, что обеспечивает сериализацию между различными системами под управлением Windows, пытающимися записывать совмещающиеся данные в один и тот же файл. Кроме того, поскольку компоненты программного массива RAID попытаются обновить данные о четности файла, диспетчер логических дисков или его аналоги, работающие на разных компьютерах, должны обеспечить механизм взаимоисключающей блокировки сети хранения данных.

Разные клиенты могут использовать различные операционные и файловые системы. Это сложная проблема сама по себе, которую различные поставщики, включая поставщиков NAS, решают с разной степенью успешности. Кроме того, эта проблема включает ряд дополнительных сложностей.

Обеспечение взаимодействия между разными способами отслеживания разрешений для учетных записей пользователей и групп, которые применяются в различных операционных системах.

Обработка семантических различий между открытием и блокировкой файла в операционных и файловых системах.

Обработка различий в соглашениях по именованию. Разные файловые системы поддерживают имена неодинаковой максимальной длины, по-разному обрабатывают регистр в именах файлов и поддерживают различные доступные символы в именах файлов.

Файловые системы поддерживают разные временные метки. Операционная система Windows NT поддерживает три временные метки для одного файла. Файловые системы UNIX обычно поддерживают только две временные метки. Даже если количество временных меток совпадает, единицы измерения времени могут различаться.

Файловые системы в гетерогенных системах могут иметь различные размеры; например, существуют 32- и 64-разрядные файловые системы. Все структуры требуют обеспечения корректного взаимодействия. В практической реализации структуры данных приходится преобразовывать в обоих направлениях, не забывая о необходимости дополнения до размерности в 4, 8, 16, 32 и 64 бит.

На исключительно высоком уровне файловые системы сетей хранения данных могут проектироваться двумя способами.

Симметричный подход, при котором каждый узел в сети хранения данных равен другим узлам и механизм синхронизации распределен по всем узлам. На данный момент симметричные файловые системы для платформы Windows недоступны в продаже.

Асимметричный подход, при котором определенный узел выступает в роли сервера метаданных и центральной точки синхронизации. Сервер метаданных отвечает за управление всеми метаданными файловой системы (например, данные о выделении дисковых кластеров). Другие серверы с файловой системой SAN обращаются к этому серверу для получения метаданных, например информации о выделении дисковых кластеров, а также идентификатора диска, идентификатора LUN и т.д. После получения метаданных серверы могут выполнять ввод-вы- вод непосредственно по сети хранения данных. Некоторые поставщики, например ADIC и ЕМС, предоставляют коммерческие продукты для платформы Windows NT, основанные на асимметричной технологии.


Рис. 6.16. Файловая система SAN с сервером метаданных

Асимметричный подход к проектированию файловой системы SAN продемонстрирован на рис. 6.16.

Клиент подключается к серверу и запрашивает данные с помощью одного из протоколов, например CIFS (см. главу 3).

Сервер обращается к серверу метаданных и получает информацию об устройстве хранения, на котором находится необходимый файл, включая информацию о конкретном блоке диска, в котором расположен файл.

Затем сервер может выполнять непосредственный ввод-вывод, используя информацию, полученную от сервера метаданных.

6.6.3 Коммерчески доступные файловые системы SAN

Некоторые поставщики реализовали файловые системы SAN для платформы Windows NT на базе асимметричной технологии. В качестве примеров можно привести линию продуктов Celerra HighRoad от компании ЕМС, продукт SANergy от компании Tivoli и продукт StorNext (ранее известный как CentraVision) от компании ADIC. Все эти системы используют сервер Windows для реализации сервера метаданных и поддержки доступа к серверу метаданных со стороны вторичных серверов Windows. Некоторые системы поддерживают изолированный сервер метаданных, а некоторые – нет. Кроме того, ряд систем поддерживают другие серверы (например, Novell, UNIX или Solaris), которые могут получать доступ к серверу метаданных.


Рис. 6.17. Стек ввода-вывода файловой системы SAN в Windows NT

Рассмотрим более подробно реализацию описанных функций в контексте стека ввода-вывода Windows NT.

На рис. 6.17 показан стек сетевого ввода-вывода Windows NT и локального хранилища (на основе моделей драйверов Storport и SCSIPort). Драйвер фильтрации файловой системы SAN (закрашенный на рисунке другим цветом) находится уровнем выше сетевой файловой системы в целом и Мини- перенаправителя CIFS в частности. Драйвер фильтрации перехватывает запросы на открытие, закрытие, создание и удаление файлов и позволяет им перемещаться по пути стандартного стека сетевой файловой системы. Перехват запросов используется для регистрации процедуры завершения. Для всех успешно открытых файлов драйвер фильтрации получает информацию о точной дорожке, секторе и блоке диска, в которых расположен файл.

Такая процедура выполняется для всех больших файлов. Некоторые системы отказываются от выполнения этой процедуры для небольших фай-

лов, поскольку служебные издержки операции чтения/записи на нескольких секторах и операция получения информации о дорожке/секторе диска для небольших файлов совпадают. Таким образом, все операции чтения и записи, которые не требуют манипуляций с метаданными файловой системы, обрабатываются непосредственно на уровне блоков между сервером и диском подсистемы хранения.

Недостаток использования централизованного сервера метаданных состоит в потенциальном превращении сервера в проблемный компонент и единственную точку отказа. Некоторые поставщики предоставляют возможность создания резервного сервера метаданных, который начинает работу в случае отказа основного сервера. С другой стороны, сервер метаданных – это единственный сервер, кэширующий метаданные, что позволяет избежать их ввода-вывода в пределах всего кластера.

Оглавление книги


Генерация: 0.699. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз