О достоинствах сетей хранения сказано так много, что вряд ли найдется скептик, который попытается поставить их под сомнение. Вместе с тем, их широкое распространение заставляет пользователей, производителей и экспертов задуматься, насколько полно удается раскрыть потенциал этой технологии в конкретных применениях. Анализ реализаций показывает, что наряду с множеством преимуществ, сети хранения несут с собой немало подводных камней. Среди них наиболее неприятными являются неэффективное использование емкостей хранения, а также ограниченность поддержки производителями неоднородных архитектур.
Сеть хранения (storage area network, SAN) консолидирует ресурсы внешней памяти и аккумулирует весь обмен данными между серверами и системами хранения, обеспечивает повышение производительности ввода/вывода, упрощает управление ресурсами хранения, позволяет использовать их с большей эффективностью, дает дополнительные гарантии надежности хранения. Однако наряду с множеством преимуществ сети хранения, например, неэффективно используют емкости хранения и накладывают ограничения на поддержку производителями гетерогенных систем. Предлагается наполнить сети хранения большим интеллектом, дополнить их специальными устройствами, на которых будет выполняться программное обеспечение для таких задач, как управление гетерогенными системами хранения, миграция данных между разными устройствами в сети и т.д. Среди возможных функций таких устройств ключевую роль играет виртуализация ресурсов хранения.
Идея реализации алгоритмов виртуализации на уровне SAN не нова и уже получила воплощение в системах ряда производителей. Активный интерес к ней дает новый импульс развития технологии виртуализации. Один из наиболее заметных анонсов в этой области был сделан недавно корпорацией IBM, которая представила решения, объединенные под маркой TotalStorage Virtualization Family [1].
Виртуализация в SAN
Ресурсы хранения в SAN, как правило, задействованы менее чем на 50% [2]. Необходимы серьезные улучшения в таких областях, как администрирование сети хранения, ее масштабирование, объединение разных сетей хранения в одну и построение неоднородных сетей хранения, исключение влияния проблем в системах хранения на производительность и доступность приложений. Проблемы порождаются различиями в файловых системах, форматах файлов и методах синхронизации операций над файлами для разных операционных систем; поэтому в рамках одной сети хранения оказывается практически невозможно создать единый пул ресурсов, обслуживающий все серверы, к данной сети подключенные. В результате возникают изолированные гомогенные сети, что, естественно, не упрощает задачи управления корпоративной средой хранения.
Но проблемы остаются и в SAN, объединяющей однородные устройства. Сеть хранения обеспечивает физические соединения между серверами, дисковыми массивами и архивами на магнитных лентах. Отображение физических блоков на диске в логические тома, с которыми работают приложения, выполняется администратором вручную; при этом каждому серверу выделяется своя квота емкости хранения на определенных дисковых массивах. Такой подход исключает возможность динамического перераспределения ресурсов хранения: размеры дискового пространства обычно определяются статически исходя из требований пиковой нагрузки. Отсюда проблема неэффективного использования ресурсов.
Решение состоит в создании пула ресурсов хранения, доступного всем серверам и позволяющего скрыть сложности конфигурации и управления системами в сети хранения на физическом уровне. Виртуализация хранения — дополнительный логический уровень между блоками данных на системе хранения и томами или файлами, с которыми оперируют приложения. Благодаря ему приложения видят совокупную емкость хранения как единый ресурс, из которого через централизованное управление могут получить необходимые квоты, не заботясь о том, какое физическое дисковое пространство им будет выделено.
Где должно размещаться программное обеспечение виртуализации? Вообще говоря, аналогичный вопрос возникает по поводу и многих других функций, связанных с управлением сетевым хранением (например, создание моментальных копий или удаленная репликация данных). Напомним, SAN включает в себя три основных компонента: серверы, где выполняются приложения; системы хранения; инфраструктура сети. Каждый из этих компонентов можно взять за основу для развертывания системы виртуализации и других служб, реализуемых программно. Хорошо известны решения по размещению подобного инструментария на хост-серверах (например, Veritas Volume Manager) или непосредственно на дисковых массивах (в частности, виртуальные массивы НР EVA и ХР). Это зрелые, эффективные системы, однако их возможности неизбежно ограничены платформами реализации: программные решения виртуализации на базе серверов могут влиять на производительность основных приложений, а системы для дисковых массивов являются частными решениями их производителей. Кроме того, в среде хранения с множеством серверов и дисковых массивов разных производителей, управление программным обеспечением виртуализации на базе хостов или массивов, скорее, усложнит труд администратора. Поэтому все громче звучат голоса в пользу переноса поддержки таких интеллектуальных возможностей непосредственно в сеть [3].
Постоянные усовершенствования технологий сетевых соединений, процессоров и памяти позволяют передать на уровень сетевых устройств функции, традиционно выполнявшиеся на универсальных серверных системах или контроллерах дисковых массивов: управление отображением физических блоков в логические тома, репликация и резервирование данных и файловые службы. Сеть хранения — единая среда передачи данных между серверами и системами хранения, поэтому программное обеспечение виртуализации и другие службы, реализованные в сети, получают естественную возможность мониторинга данных и выполнения определенных действий над ними, охватывая при этом все платформы приложений и хранения информации. Для таких систем совокупная стоимость владения (ТСО), благодаря снижению накладных расходов на администрирование по мере роста масштабов ИТ-инфраструктуры, должна увеличиваться не так кардинально, как в случае решений на базе серверов и массивов. Управлять одной сетевой программной системой, пусть даже с большой функциональной нагрузкой, проще, чем множеством программных средств на разных платформах.
виртуализация на уровне блоков
Управление блоками данных на физической системе хранения и их отображение в логические тома — наиболее проблемная область в управлении хранением. При отсутствии средств виртуализации любое изменение, например, добавление нового сервера, системы хранения или перемещение данных, порождает целую серию выполняемых вручную операций по реконфигурации. На эти действия уходит слишком много времени и сил; они связаны с большим риском ошибиться, вызвать простой информационной системы, затянуть процессы развертывания и модификации приложений. Чтобы преодолеть все эти ограничения, администраторы сетей хранения вынуждены выделять приложениям ресурсы в сети с большим запасом, с расчетом на масштабирование системы, что порождает ситуацию неоптимального распределения емкостей хранения.
Виртуализация, реализованная на сетевых устройствах, создает для всех систем хранения и серверов дополнительный логический уровень между блоками и томами (рис. 1), скрывающий сложные функции отображения физических блоков в логические тома, включая все операции, связанные с добавлением емкостей хранения и перераспределением ресурсов между приложениями. Расширение логических томов теперь не потребует реконфигурации серверов. Все тома в сети хранения могут управляться централизованно, в том числе, для разнородных аппаратных платформ. Приложение сможет получить дополнительные ресурсы хранения, когда в них возникнет реальная потребность. Необходимость выделения избыточных ресурсов хранения исчезает, оптимизируется загрузка дисковых массивов.
Перенос на сетевой уровень функции репликации данных в совокупности с виртуализацией позволяет усовершенствовать подходы к обеспечению сохранности данных. Репликация, реализованная на уровне логических блоков, может охватывать различные дисковые массивы, не ограничиваясь одной платформой (в частности, более дешевые или устаревшие массивы могут в этих условиях выступать в роли носителей для резервных копий).
В семействе продуктов IBM Virtualization Family виртуализацию на уровне блоков и централизованную репликацию реализует система SAN Volume Controller — программно-аппаратный комплекс, поддерживающий виртуализацию на уровне сети хранения по симметричному (in-band) принципу, когда устройство виртуализации размещается непосредственно на пути передачи данных между серверами и системами хранения. SAN VC представляет собой двухузловой Linux-кластер на базе серверов семейства IBM xSeries. Подсоединенные к сети хранения серверы видят SAN VC как дисковый массив, где хранятся данные, а устройство направляет операции ввода/вывода на реальные физические массивы (рис. 2).
Рис. 2. SAN Volume Controller |
Такой уровень абстракции позволяет скрыть от серверов любые изменения, происходящие с устройствами хранения, представляя емкость хранения в виде единого пула, в рамках которого легко выполнять различные операции по добавлению и перераспределению ресурсов хранения для приложений. Помимо такой виртуальной консолидации всех устройств внешней памяти, SAN VC поддерживает возможность объединения физических дисков в логические группы, которые будут обслуживать приложения с разными требованиями к соотношению цена/производительность. Скажем, одна группа может включать высокопроизводительные дисковые массивы с уровнем надежности RAID-10 для обработки финансовых транзакций, другая объединит системы RAID-5 для поддержки среды разработки, а третья соберет наименее дорогие системы хранения для организации так называемых «квазиоперативных» (near-line) архивов справочной информации. Система имеет также режим image mode для быстрого преобразования не поддерживающих виртуализации систем в сети хранения в виртуализованную среду, причем без физического переноса данных.
SAN VC поддерживает перемещение данных между разными массивами в сети, централизованное управление распределением ресурсов между серверами и приложениями и различные технологии репликации, включая создание удаленных копий и мгновенных образов данных. SAN VC может работать с операционными системами AIX, HP-UX, Solaris, Windows и Red Hat Linux. Поддержка платформ хранения постепенно расширяется: если раньше речь шла только о дисковых массивах производства IBM, то теперь SAN VC может работать и с массивами других поставщиков, включая Hitachi Data Systems и Hewlett-Packard. В результате соглашения между IBM и Cisco Systems программное обеспечение SAN VC может теперь использоваться и с сетевыми коммутаторами MDS 9000. Таким образом, путем несложной модернизации существующей инфраструктуры сети хранения можно значительно обогатить ее интеллектуальную «начинку».
виртуализация на уровне файлов
Создание специального логического уровня для управления отображением между блоками на физических дисках и логическими томами — важный шаг к формированию единого пула ресурсов хранения, однако он не решает проблемы сосуществования различных файловых систем. Именно файловые системы строят из «сырых» блоков данных структуры, которые будут иметь определенный смысл для приложений, осуществляют контроль доступа, отвечают за совместное использование данных разными приложениями, решают задачи защиты. В сети хранения серверы продолжают оперировать со своими файловыми системами, и различия между операционными системами неизбежно порождают различия в подходах к работе с файлами. Кроме того, сервер может создавать файлы только на тех устройствах хранения или виртуальных томах, которые выделены ему, и не имеет доступа к файлам, созданными другими серверами. Перемещение приложения с сервера с одной файловой системой на сервер с другой файловой системой потребует соответствующего переформатирования всех данных этого приложения. Администратору приходится контролировать несколько различных файловых систем, что серьезно усложняет его работу. В этих условиях невозможно задавать согласованную политику конфигурирования, контроля доступа и защиты данных на уровне файлов. Изолированность файловых систем ведет к тому, что в сетях хранения, одним из преимуществ которых считается возможность определения единых для всех систем хранения правил резервирования/восстановления данных, резервное копирование файлов проводится отдельно для каждого сервера. Результат — избыточная загрузка вычислительных ресурсов из-за поддержки систем резервирования на каждом сервере и слишком продолжительное резервирование.
Надо отметить, что на первых этапах своего существования сети хранения и не рассматривались как платформа для приложений, требующих разделяемого доступа к файлам. С этой задачей вполне справлялись файловые серверы NAS (network attached storage), обеспечивающие совместное использование файлов в локальной сети. Фактически, с помощью NAS удавалось организовать общую файловую систему, удобную во многих отношениях, но и обладающую рядом ограничений. Прежде всего, при увеличении числа серверов снижается производительность, поскольку все они в качестве транспорта данных используют локальную сеть. Кроме того, файловые системы, которые поддерживает NAS, имеют определенные ограничения по размерам, и задачу масштабирования сетевой файловой системы приходилось решать путем разделения среды NAS на несколько несвязанных между собой доменов.
Эти недостатки начинают проявляться при расширении ИТ-среды, когда все большему числу серверов начинает требоваться разделяемый файловый доступ на все большем числе дисковых массивов. Появление масштабных центров данных и сетей хранения поставило задачу объединения преимуществ технологий высокопроизводительного и хорошо масштабируемого блочного доступа к данным в SAN и разделения файлов в NAS. Так возникли различные реализации NAS-шлюзов к сетям хранения [4]. Однако они не исключают всех проблем, связанных с использованием NAS.Технологию виртуализации на уровне файлов в течения ряда лет разрабатывали исследователи IBM Research [5]. Проект Storage Tank в конце 2003 года получил, наконец, свое воплощение в коммерческом продукте SAN File System (SAN FS). Как и SAN VC, он представляет собой программно-аппаратный комплекс, построенный на базе архитектуры клиент-сервер и реализующий виртуализацию по «несимметричному» (out-of-band) принципу, когда функции по отображению логических операций доступа к данным в физический ввод/вывод реализуются на устройстве, расположенном вне основного пути передачи данных между серверами и устройствами хранения (рис. 3).
Рис. 3. SAN File System |
Клиенты SAN FS устанавливаются на хост-серверах и взаимодействуют с их файловыми системами с помощью интерфейсов Virtual File System (VFS) для ОС Unix и Installable File System (IFS) для Windows. Клиенты обращаются к серверу метаданных SAN FS за информацией о точном расположении необходимых данных в едином файловом пуле систем хранения и возможности выполнить те или иные операции над этими данными. Обмен данными между серверами и системами хранения идет по сети, минуя внешних посредников, благодаря чему исключаются потери производительности, присущие технологиям типа NAS-шлюзов. Сервер системы отвечает только за хранение и обработку метаданных в консолидированной файловой системе в сети хранения. Он предоставляет информацию о физическом и логическом размещении всех файлов и томов на системах хранения в SAN. Клиент SAN FS передает запрос серверу по локальной сети, после проверки прав доступа получает данные о размещении нужного тома и затем обращается к системе хранения непосредственно по сетевым соединениям сети хранения. При этом работа с файлами на хост-серверах идет с полным сохранением семантики локальной файловой системы.
Сервер метаданных — «мозг« сетевой файловой системы SAN FS. В специальном хранилище, отделенном от хранилищ данных приложений, размещается вся необходимая информация о файлах в сети хранения (имя файла, дата создания, права доступа, размещение на диске и т.п.). Сервер метаданных поддерживает единое пространство имен для всех файлов в сети хранения, размещенных на различных устройствах.
Одно из основных преимуществ виртуализации на уровне файлов — возможность задания политики выделения и перераспределения файловых ресурсов для приложений. SAN FS обеспечивает механизм группировки систем хранения (создание выделенных пулов хранения) на основе таких характеристик, как стоимость и производительность, и автоматизирует предоставление файлового пространства из таких пулов приложениям, ориентируясь на определенный для этих приложений уровень обслуживания. Скажем, для приложений, имеющих самый высокий уровень критичности для бизнеса, можно выделить пул из высокопроизводительных дисковых массивов, которые резервируются каждую ночь и имеют полный спектр возможностей по аварийному восстановлению. Для менее требовательных приложений будет сформирован пул ресурсов хранения из менее дорогих модульных массивов с минимальным набором средств аварийного восстановления, для которых резервное копирование на магнитные ленты выполняется еженедельно.
Поскольку метаданные в SAN FS отделены от данных приложений, система позволяет производить манипуляции с активными файлами. Файлы могут перемещаться в рамках своего выделенного пула или в другой пул, при этом приложения продолжают с ними работать. Никак не затронет приложение и физическое перемещение данных с одного устройства хранения на другое, когда SAN FS с помощью специальных средств осуществляет перенос выделенного пула на новые диски.
Поддержка единого пространства имен для сетевой файловой системы позволяет отказаться от отдельных операций резервирования для каждого сервера и реализовать резервное копирование всех нужных файлов для всех приложений в соответствии с заданными политиками защиты данных — SAN FS поддерживает функцию создания мгновенных образов на уровне файлов. Наконец, еще одно преимущество виртуализации, реализованной в SAN FS, состоит в том, что любые изменения на уровне серверов приложений: замена, модификация или консолидация не требуют параллельного внесения изменений в системы хранения или инфраструктуру резервирования/восстановления. Более того, возможностями разделения файлов в SAN FS можно воспользоваться в процессе установки и тестирования новых серверов, не нарушая при этом работы продуктивных приложений.
Реализация сервера метаданных о файлах как внешней, не привязанной к определенному хосту системы позволяет SAN FS поддерживать различные операционные системы (сегодня это IBM АIX, Windows 2000 Server и Windows Advanced Server, вскоре к этому списку добавятся Linux, Sun Solaris и кластерные варианты Windows). Поддержка системы виртуализации хранения SAN Volume Controller позволяет объединить в одной сети хранения виртуализацию на уровне блоков и на уровне файлов и, поскольку SAN VC работает с разнородными системами хранения, открывает такую возможность и для сетевой файловой системы. Но в будущих версиях SAN FS будет обеспечена и прямая поддержка устройств хранения от внешних производителей.
На уровне серверов приложений развертывание SAN FS потребует минимальных модификаций, связанных с установкой клиента системы на каждом хосте. Сервер метаданных реализован как Linux-кластер (до 8 узлов) на базе серверов семейства xSeries. SAN FS интегрирована с приложениями управления хранением, входящими в семейство IBM Tivoli: Tivoli SAN Manager, обеспечивающим обнаружение устройств в сети хранения, а также Tivoli Storage Resource Manager и Tivoli Storage Manager, поддерживающими предоставление ресурсов хранения и автоматическое перемещение данных. Такая интеграция позволяет включить SAN FS в общую инфраструктуру управления ИТ-инфраструктурой. Для продвижения новой технологии сетевой файловой системы в IBM считают крайне важным продемонстрировать ее эффективность для серверов баз данных, поэтому уже в первую версию включена поддержка СУБД DB2 и Oracle с перспективой расширения этого списка.
Точка роста рынка систем хранения
Аналитики сходятся в том, что рынок еще предстоит убедить в преимуществах систем виртуализации в сетях хранения перед традиционными решениями на базе серверов или дисковых массивов. Их необходимость ощущается с особой остротой там, где имеется реальная потребность в унификации доступа к данным на устройствах от разных поставщиков, в оптимизации использования ресурсов хранения, в более простом и эффективном управлении распределенной средой хранения, в использовании разнородных систем для репликации данных. IBM выходит на рынок, где до недавнего времени присутствовали в основном специализирующиеся на таких системах компании, например, DataCore со своим продуктом SANsymphony. Но сегодня с аналогичными проектами и готовыми решениями выступают и другие крупные поставщики. Так, НР продвигает программно-аппаратную систему сетевой виртуализации CASA, Sun Microsystems анонсировала систему N1 Data Manager, а ЕМС объявила о создании своего «маршрутизатора хранения» для создания единого пула емкостей хранения SAN. Виртуализация является сегодня одной из основ создания ИТ-среды, ресурсы которой предоставляются «по требованию»: единый пул систем хранения со средствами динамического распределения ресурсов; возможность размещать данные на наиболее подходящей платформе; оптимально использовать имеющиеся емкости памяти и перемещать данные в зависимости от заданных политик и классов обслуживания приложений — все это предпосылки для реализации инфраструктуры on-demand.
Литература
- Наталья Дубова, Триединое решение по управлению хранением. «Открытые системы», 2003, № 3.
- IBM TotalStorage Storage Software Strategy and Roadmap, IBM, May 2003.
- Delivering on the Server/Storage Consolidation Promise, IDC, October 2003.
- Наталья Дубова, SAN и NAS на пути сближения. «Открытые системы», 2002, № 4.
- IBM Storage Tank — A heterogeneous scalable SAN file system, IBM Systems Journal, 2003, № 2.
Новая «машина» для виртуализации
В апреле 2004 года IВМ анонсировала решение по виртуализации серверов и систем хранения Virtualization Engine. В отличие от виртуализации хранения, подразумевающей объединение множества физических устройств в единый виртуальный ресурс внешней памяти, предлагаемые технологии виртуализации серверов позволяют превратить одну физическую систему в множество виртуальных и, по сути, развивают существующую уже немало лет идею разбиения серверов на разделы. Технология виртуализации Virtualization Engine, фактически, переносит на Unix-платформу давно эксплуатируемый на мейнфреймах механизм создания разделов, позволяющий выполнять на одном процессоре до 10 независимых экземпляров операционной системы.
Реализованная в Virtualization Engine технология микроразделов (micro-partitioning) призвана повысить уровень загрузки серверных мощностей, который сегодня, по данным IBМ, не превышает 50% для Unix-платформ и составляет лишь 15% для серверов на базе процессоров Intel, в тот время как для мэйнфреймов этот показатель составляет 80%, в значительной степени благодаря поддержке виртуальных разделов, обеспечивающей существование множества независимых серверов в рамках одной аппаратной системы. Однако, помимо оптимизации использования ресурсов сервера, в IBM рассчитывают, что Virtualization Engine поможет значительно упростить процессы управления в сложных ИТ-инфраструктурах.
Первым объектом для реализации технологии Virtualization Engine станут процессоры Power5, на которых базируются серверы семейств iSeries и pSeries. Надо отметить, что возможность создания разделов для серверов iSeries не нова — логические разделы для поддержки нескольких операционных систем на одной аппаратной платформе используются в серверах AS/400 (iSeries) уже более пяти лет. Однако Virtualization Engine привнесет в системы на базе Power 5 ряд важных усовершенствований. В своей системе виртуализации IBM интегрирует механизмы создания микроразделов с программными модулями высокого уровня, входящими в семейства Tivoli и WebSphere, а также новыми решениями по балансировке рабочей нагрузки и управления элементами ИТ-инфраструктуры, которые позволят виртуальным серверам «видеть» ресурсы на других платформах. Так, система IBM Director Multiplatform предоставит единую консоль управления для серверов, в том числе других производителей. Решение по управлению рабочей нагрузкой Enterprise Workload Manager обеспечит наиболее эффективную загруженность ресурсов в соответствии с заданными уровнями обслуживания в разнородной среде, причем не только для серверных, но и для сетевых компонентов. Virtualization Engine также включит в себя новый программный модуль Tivoli Provisioning Manager для автоматизации процессов конфигурации и предоставления всех видов ресурсов в ИТ-среде: серверов, операционных систем, программного обеспечения промежуточного слоя, приложений, систем хранения и сетевых устройств. Наконец, интеграция инструментария WebSphere для работы в среде grid позволит подключать виртуальные сервера к выполнению распределенных приложений, построенных на базе стандартов OGSA, как в рамках одной аппаратной системы, так и в реально распределенных средах.
В перспективе под маркой Virtualization Engine планируется объединить механизмы виртуализации для всех компонентов ИТ-инфраструктуры (под названием Virtualization Engine некоторое время назад в публикациях фигурировала технология, реализованная в системе SAN Volume Controller) и таким образом создать базу для полностью интегрированной, гибкой ИТ-среды, способной изменяться вслед за изменениями пользовательских требований. Детали этого процесса пока неясны, но задачи грандиозны. Инициативам по виртуализации разных типов ресурсов, которые продвигают сегодня многие компании, как раз не хватает такой систематичности и цельности.