Михаил Воробьев,
специалист по системам хранения IBM компании "Гетнет"
MVorobyev@hetnet.ru

В настоящее время корпоративные системы хранения данных - будь то сети хранения (Storage Area Network) или индивидуальные серверные дисковые подсистемы (Direct Attached Storage) - представляют собой, как правило, наборы изолированных подсистем, число которых постоянно увеличивается. Использование таких изолированных островков информации усложняет управление хранением, увеличивает нагрузку на администраторов и повышает уровень требований к квалификации персонала. Кроме того, при запланированных и незапланированных остановках работы таких систем простои оказываются достаточно долгими. В результате снижается эффективность работы персонала, которому приходится управлять большими объемами данных, разбираться с разнородными устройствами хранения, различными протоколами передачи данных. Вся система становится менее эффективной и более уязвимой, при этом стоимость владения ею растет. Объемы данных в типичных корпоративных системах за год примерно удваиваются, соответственно растет и число проблем у отделов ИТ.

Исследования, спонсированные корпорацией IBM (http://www.ibm.com), показали, что среднее предприятие с сетью хранения емкостью около 5 Тбайт может сэкономить ежегодно свыше 170 тыс. долл., всего лишь повысив эффективность использования имеющегося и приобретаемого оборудования, а за счет улучшения управления и эффективности работы персонала можно сэкономить до 80 тыс. долл. Сокращение простоев, как запланированных, так и незапланированных, и увеличение доступности приложений тоже позволяет снизить затраты.

Решение - в виртуализации

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

Применительно к сетям хранения на базе жестких дисков виртуализация - это объединение всего доступного дискового пространства, предоставленного в сеть хранения данных всеми имеющимися дисковыми массивами, в общий пул и организация доступа к этому пулу для всех пользователей SAN. При этом обеспечивается прозрачное (для компьютера, который осуществляет доступ к данным) представление системы хранения на уровне блоков: логический адрес блока никак не привязан к его реальному, физическому адресу. По сути виртуализация разделяет логический и физический уровни доступа к данным. Выглядит это так, как будто пользователи и приложения имеют дело не с физическими устройствами хранения, а с логическими. Из созданных единых пулов хранения могут выделяться отдельные виртуальные диски, подключаемые при необходимости к работающим в сети серверам в качестве логических устройств (аналогичная схема в протоколе SCSI предусматривает работу с номерами логических устройств, LUN). Следует заметить, что при виртуализации появляется так называемый виртуализационный слой, который отделяет серверы от системы хранения и фактически служит интерфейсом между зоной серверов и зоной дисковых массивов.

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

Давайте рассмотрим на примере, как работает виртуализация на уровне файловой системы (рис. 1). Вначале идет объединение физических блоков в логические, виртуальные. Затем на их основе формируется некая файловая система, управляющая этими виртуальными блоками. Эта файловая система отображается в виртуальную файловую систему, с которой и работает приложение на сервере.

Fig.1 Рис. 1. Виртуализация хранения на уровне файловой системы.

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

Fig.2
Рис. 2. Элементы вычислительной системы, допускающие виртуализацию хранения.

При виртуализации сети хранения данных возможны два подхода. Первый, называемый симметричной виртуализацией, подразумевает, что поток данных и поток управления пересылаются по одним и тем же каналам, а виртуализационный модуль помещается на пути данных от дисковой подсистемы к серверу (рис. 3). Второй вариант - асимметричная виртуализация (рис. 4). Здесь данные пересылаются через SAN, а управляющие воздействия передаются по локальной сети. При этом виртуализационный модуль находится вне пути данных от дисковой подсистемы к серверу.

Fig.3Fig.4
Рис. 3. Симметричная виртуализация.
Рис. 4. Асимметричная виртуализация.

Интеллектуальные сети хранения

Стратегический подход IBM заключается в широком использовании механизмов виртуализации и переноса ряда интеллектуальных функций в сеть хранения данных (рис. 5).

Fig.5
Рис. 5. Концепция сетей хранения, предлагаемая IBM.

В левой части рис. 5 показано, как используется сеть хранения в нынешних системах: имеется несколько серверов приложений, и у каждого есть собственная файловая система. Большинство современных файловых систем создавались в расчете на систему хранения, подключенную непосредственно к серверу (Direct Attached Storage, DAS). Очевидно, что такие файловые системы, не рассчитанные на технологию сетевое хранение, используют SAN только для передачи данных. Каждая файловая система управляет собственными файлами и в общем случае независима от других файловых систем. Если на предприятии при этом используются различные платформы с различными операционными средами, управление всей системой становится сложным и трудоемким.

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

Эта идея была реализована в ряде продуктов. Интеллектуальные функции и виртуализация на блочном уровне воплощены в устройстве IBM SAN Volume Controller, а виртуализация на файловом уровне с созданием единой файловой системы сети хранения (SAN File System) - в комплексе под названием Storage Tank.

SAN Volume Controller

Продукт SAN Volume Controller (SVC) представляет собой распределенный кластер, состоящий в минимальной конфигурации из двух узлов. Этот кластер подключается в сеть хранения данных, в которой аппаратными средствами выделяются две физически независимые зоны - зона хостов (серверы приложений и любые клиенты SAN) и зона хранения (к которой принадлежат все дисковые массивы, задействованные в SAN). Контроллер SVC, подключенный к обеим зонам, осуществляет их коммутацию. Таким образом обеспечиваются связи между сервером и SVC, между дисковым массивом и SVC, а также между узлами контроллера (эта связь устанавливается по тем же каналам Fibre Channel, рис. 6). Такое подключение фактически предоставляет системе виртуализационный слой между дисковыми подсистемами и серверами приложений.

Fig.6
Рис. 6. Коммутация в сети хранения на базе SVC.

Узел кластера SAN Volume Controller представляет собой Intel-сервер на основе специальной версии ОС Linux и ПО, поддерживающего виртуализацию, кэширование и расширенные функции копирования. Узлы объединяются в кластер парами, называемыми в терминологии SVC группами ввода-вывода (I/O Group). В каждой группе кэш на обоих узлах зеркалируется для повышения отказоустойчивости системы. Здесь также балансируется нагрузка между всеми портами. В нынешней версии кластер может включать до четырех групп ввода-вывода.

Приложения на сервере работают с виртуальными дисками, находящимися в зоне хостов SVC. Виртуальные диски формируются из физических устройств, подключенных к зоне хранения. Каждый физический диск или логический диск, представленный RAID-контроллером в этой зоне, выступает для SVC как "управляемый диск" (Managed Disk). Все управляемые диски объединяются в логические группы и разбиваются на блоки (Extents), из которых и формируются виртуальные диски. Таким образом, данные, хранящиеся на виртуальном диске, могут физически располагаться на блоках (Extents), принадлежащих разным физическим дискам и даже разным дисковым массивам.

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

Благодаря большому объему кэша перенос данных в рамках описанной конфигурации практически не повлияет на производительность системы. В процессе тестирования SAN Volume Controller, проводившегося компанией "Гетнет", был замечен любопытный факт. При работе с дисковым массивом FAStT 200 использование SVC давало прирост производительности по сравнению с подключением той же дисковой стойки напрямую к серверу. Особенно заметно это было на приложениях, активно работающих с кэшем. Данный эффект объясняется малыми размерами кэша на самом дисковом массиве и большим кэшем в SVC.

Аппаратно узел кластера SAN Volume Controller представляет собой двухпроцессорный сервер на базе Pentium 4 (2,4 ГГц, кэш 4 Гбайт), оснащенный четырьмя портами Fibre Channel (2 Гбит/с) для подключения к SAN. Помимо этого в узел встроены сервисный процессор и специальный таймер WatchDog, постоянно проверяющий работоспособность системы. Операционная система хранится на одном SCSI-диске емкостью 18 Гбайт. В случае отказа этого диска система может загрузиться со второго узла в группе ввода-вывода. Для первичного управления на передней панели каждого узла размещены ЖК-дисплей и пять кнопок управления.

Для защиты электроснабжения в SVC предусмотрены специальные источники бесперебойного питания, разработанные специально для этого продукта. В них установлено ПО, которое постоянно сообщает контроллеру о состоянии электропитания. При подключении к этому ИБП других устройств или при пропадании питания SAN Volume Controller получает информацию об этом, и на пульт системного администратора поступает сообщение о происходящем.

Нынешняя версия SAN Volume Controller поддерживает такие расширенные функции копирования, как синхронное удаленное копирование (Synchronous Remote Copy), мгновенное копирование (FlashCopy) и динамическую миграцию данных. В обычных дисковых массивах возможности копирования ограничены рамками дискового массива - копии можно создавать либо внутри одного устройства, либо в рамках пары одинаковых устройств. SAN Volume Controller расширяет эти возможности на всю сеть SAN, позволяя администратору осуществлять копирование на совершенно разнородных дисковых массивах. Наряду с FlashCopy контроллер SVC поддерживает также функцию удаленного зеркалирования (PPRC). Использование SVC позволит существенно увеличить эффективность и функциональность системы хранения, что снижает затраты на хранение, управление и резервное копирование.

SAN File System (Storage Tank)

Предлагаемое IBM решение для виртуализации файловой системы Storage Tank базируется на клиент-серверной технологии. Единая файловая система (ФС) предполагает наличие сервера, который управляет правами на использование того или иного файла, его расположением в сети и т. п. (рис. 7).

Fig.7
Рис. 7. Структура решения Storage Tank.

В рамках решения Storage Tank клиентами могут быть любые системы, использующие данные ФС. Сервер с данными о ФС и системе хранения называется контроллером метаданных (Metadata Controller, MDC) и представляет собой кластер из нескольких серверов.

Клиенты Unix требуют наличия "виртуальной" ФС (Virtual File System), клиенты Windows - "инсталлируемой" ФС (Installable File System). Эти ФС представляют собой интерфейс для контроллера метаданных и обеспечивают семантику SAN File System для приложения.

Как показано на рис. 7, все клиенты подключаются к MDC по локальной сети. Поступающий от приложения запрос перехватывается модулем Client State Manager, расположенным ниже файловой системы. Этот модуль по сети пересылает запрос контроллеру метаданных, и тот (также по локальной сети) возвращает данные о расположении требуемой информации и правах. Адрес требуемой информации поступает на FC-адаптер, а сами данные передаются по сети хранения.

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

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