Виртуализация сетей хранения — подход IBM
Михаил Воробьев,
специалист по системам хранения 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). Вначале идет объединение физических блоков в логические, виртуальные. Затем на их основе формируется некая файловая система, управляющая этими виртуальными блоками. Эта файловая система отображается в виртуальную файловую систему, с которой и работает приложение на сервере.
Рис. 1. Виртуализация хранения на уровне файловой системы.
|
Блочную виртуализацию на уровне менеджера разделов (Volume Manager) можно наблюдать практически в любой операционной системе. Например, в ОС Windows можно создавать несколько логических дисков на одном физическом. Блочную виртуализацию на уровне дисковой подсистемы, как правило, осуществляет RAID-контроллер, который отображает RAID-группу в логический диск. На рис. 2. показаны участки вычислительной системы, где можно осуществлять виртуализацию.
Рис. 2. Элементы вычислительной системы, допускающие виртуализацию хранения.
|
При виртуализации сети хранения данных возможны два подхода. Первый, называемый симметричной виртуализацией, подразумевает, что поток данных и поток управления пересылаются по одним и тем же каналам, а виртуализационный модуль помещается на пути данных от дисковой подсистемы к серверу (рис. 3). Второй вариант — асимметричная виртуализация (рис. 4). Здесь данные пересылаются через SAN, а управляющие воздействия передаются по локальной сети. При этом виртуализационный модуль находится вне пути данных от дисковой подсистемы к серверу.
Рис. 3. Симметричная виртуализация.
|
Рис. 4. Асимметричная виртуализация.
|
Интеллектуальные сети хранения
Стратегический подход IBM заключается в широком использовании механизмов виртуализации и переноса ряда интеллектуальных функций в сеть хранения данных (рис. 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). Такое подключение фактически предоставляет системе виртуализационный слой между дисковыми подсистемами и серверами приложений.
Рис. 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).
Рис. 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 предлагает в этой области полноценное интегрированное аппаратно-программное решение.