BYTEmag.ru

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

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

Соответственно виртуализация хранения данных – это предоставление ресурса физической емкости накопителей в форме логического пространства хранения. Истинная структура системы хранения инкапсулирована – скрыта от внешней среды. Сервер (хост) освобождается от необходимости знать, где и как данные размещаются физически, он обращается к некоему общему пулу хранения, обладающему определенным качеством обслуживания QoS. Управление же фактическим размещением данных осуществляется исключительно на уровне СХД. Это свойство также именуют маскированием среды хранения. В числе прочего маскирование приводит к возможности независимого масштабирования и СХД, и серверного пула, и прочих составляющих программно-аппаратного комплекса. Изменения на одном уровне стека не привязаны к другим.

Алгоритмически ввод-вывод при виртуализованном хранении томов предполагает двусторонний перевод логического представления данных в форме LUN (Logical Unit Number) в физические адреса на конкретных накопителях. Условно мы имеем дело с поддержкой и онлайновой обработкой некой таблицы соответствия между одним и другим представлением, иначе говоря, с набором метаданных. Блок, ответственный за реализацию этой процедуры, иногда именуют виртуализатором, и организован он может быть на различных уровнях подсистемы хранения.

Хочется отметить особо, что виртуализация систем хранения в описанном виде не имеет прямого касательства к серверной виртуализации, хотя, конечно, виртуализаторы обеих составляющих стека должны коммуницировать друг с другом. Именно здесь зачастую возникает недопонимание. Да, действительно, развитие технологий виртуализации во всем их многообразии – применительно к серверам, десктопам, приложениям и т. д., безусловно, накладывает новые требования и на подключаемые СХД. Но размещенная на внешнем дисковом массиве, скажем, виртуальная машина (гостевая ОС, ее приложения и информация пользователей) является, собственно говоря, таким же набором данных, как и любой другой. То, что виртуальные машины требуют большего пространства хранения, существенным образом влияют на динамику потребления емкости, выставляют новые требования по скорости и надежности – все это, безусловно, верно. Но виртуализация СХД как повышение уровня абстракции пространства хранения является техническим методом, с помощью которого просто удобнее реализовать ответы на эти новые «требования серверов». И не более того.

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

Возможности виртуализованных систем хранения

Задачи, ради которых затевается виртуализация хранения, весьма разнообразны. Во-первых, это консолидация данных. В идеальном случае весь массив информации, которая размещена на разных носителях – твердотельных, дисковых, ленточных, входящих в состав массивов разных производителей, относящихся к разным поколениям устройств, включаемых по разным схемам, – должен представляться как единый пул хранения. Важный момент – реализация функций ILM (Information Lyfecycle Management, управление жизненным циклом информации.) Смысл этого в создании многоуровневого пространства внешней памяти, где данные распределяются между носителями с различным соотношением объем/производительность в зависимости от частоты использования и требований по QoS – от уровня скоростного твердотельного кэша до архивной информации на системах типа CAS или резервных копий в ленточных библиотеках.

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

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

Здесь же и решение вопросов производительности и надежности, т. е. фактически управление RAID – распределение блоков данных одновременно по как можно большему числу накопителей (скорость доступа) и обеспечение избыточности (сохранность). Кроме прочего, интеллектуальное распределение LUN по множеству накопителей предотвращает возникновение в СХД «горячих точек» – перегруженных дисков и каналов доступа.

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

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

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

Storage virtualization vs. Virtualized storage

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

На этом поле сломано немало копий в споре между сторонниками «настоящей виртуализации хранения» и «локальной виртуализации массива». Дело в том, что существует два понятия, в английском варианте очень близких по написанию, что просто не могло не вызвать понятийного безобразия: storage virtualization и virtualized storage. В первом случае предметом виртуализации является вся гетерогенная среда накопителей, где в единый пул объединяются массивы различных производителей. Одним из главных следствий внедрения виртуализации этого уровня является возможность включить в новое пространство хранения унаследованный парк оборудования и обращаться с ним посредством единых средств управления, тем самым значительно снижая затраты на администрирование. При этом до недавней поры бытовало эмпирически обоснованное мнение, что задача реализации storage virtualization в общем случае неразрешима. Некоторые категории систем хранения (главным образом это DAS – Direct Attached Storage) чрезвычайно трудоемко и малорентабельно включать в общее пространство. Файловый доступ по Ethernet к NAS (Network Attached Storage) и блочный доступ по транспорту Fibre Channel к SAN (Storage Area Network) рассматривались как два непересекающихся направления. И в основном речь здесь шла именно о виртуализации блочного доступа в SAN. Причем на этом пути индустрию также ожидало немало разочарований. Сегодня же, с развитием концепции унифицированных протоколов и соответственно унифицированных СХД, интерес к организации единого пространства хранения, похоже, набирает новую силу.

Virtualized storage предполагает поставку устройства хранения со встроенным функционалом виртуализации либо этот функционал возлагается на внешний виртуализатор, зоной ответственности которого становится конкретное устройство хранения. Фактически речь идет о виртуализации отдельного массива или кластера единообразных массивов, а не об управлении разнородным парком. И подобные решения предлагают на сегодняшний день в составе СХД среднего и старшего уровня фактически все поставщики – IBM, EMC, NetApp, HP, Sun и др. А на уровне небольших систем, включая даже DAS, могут применяться программные средства виртуализации внешнего массива, запускаемые на хосте.

SNIA Shared Storage Model

Для описания типовых решений в области виртуализации систем хранения удобно опереться на модель Shared Storage Model, предложенную отраслевой ассоциацией Storage Network Industry Association. Эта модель обычно представляется в виде четырехуровневого стека (рис. 1).

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

На третьем уровне файлы и записи преобразуются в более крупные структуры – тома или логические устройства. Объединение в логические тома выполняется СУБД или файловыми системами ОС. Далее происходит декомпозиция этих укрупненных виртуальных структур на логические блоки.

Второй уровень именуется блочным – на нем происходит агрегирование блоков. Здесь обеспечивается двунаправленный перевод из более низкоуровневого представления данных, в форме реальных адресов размещения, в более высокоуровневое – логических блоков. Второй уровень модели делится на три подуровня – серверный, сетевой и уровень подсистемы хранения. Блочное агрегирование может выполняться на любом из них или быть распределено по разным подуровням.

На четвертом уровне находятся сами накопители – диски и ленты.

Файловая виртуализация

Рассматривая второй уровень модели SNIA/SSM, уже становится понятно, что файловая система сама по себе является дополнительным уровнем виртуализации – она маскирует от приложений происходящее на блочном уровне. Таким образом, файл-серверы или NAS уже выполняют роль виртуализатора, по сути являясь таковым по определению.

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

При этом сам комплекс NAS должен обладать способностью к независимому масштабированию по мере необходимости. Для этого используются распределенные файловые системы, например, на основе протоколов NFS (разработана Sun) или CIFS (Microsoft). Создается пространство глобальных имен, в рамках которого нативные таблицы файловых систем отдельных NAS монтируются в единый репозитарий. При этом в логической структуре файловой системы появляется дополнительный уровень абстракции, что усложняет ее. Примером «тяжелых» программно-аппаратных комплексов, включаемых в сеть хранения асимметрично, может служить Rainfinity от EMC. Для более простых случаев имеется достаточное число виртуализаторов NAS, как фирменных. так и независимых решений.

Блочная виртуализация

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

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

Наибольшее же многообразие технологий виртуализации наблюдается в сфере SAN. Основной вопрос в этом деле – на каком из подуровней третьего уровня модели SNIA работает виртуализатор.

В основной модели имеются три точки, где может быть организована агрегация блоков: на хосте, на тракте между хостом и системой хранения (условно – в сети) и на самой системе хранения.

В случае с вариантом host-based специализированное ПО устанавливается на сам сервер приложений или баз данных и позволяет всем подключенным к нему ресурсам хранения работать как единому целому. Технически это самый простой и дешевый вариант. Но в данном случае SAN фактически превращается в некий распределенный DAS, со всеми вытекающими отсюда последствиями: несколько серверов не могут пользоваться одной группой устройств хранения, так как за агрегацию блоков в данной сети отвечает другой сервер. Правда, здесь как раз может помочь виртуализация самих серверов. Примером такого решения можно считать HP VSA (Virtual Storage Appliance) – это ПО, работающее на виртуальной машине VMWare/Hyper-V и предоставляющее обслуживаемое дисковое пространство другим виртуальным машинам, которые работают на данном экземпляре гипервизора.

Понятно, что виртуализатор, запущенный на хосте, отнимает значительные вычислительные ресурсы сервера, что требует увеличения процессорной мощности и емкости ОЗУ.

В случае сетевой виртуализации хранения существует несколько топологий реализации. Можно использовать специализированное устройство (appliance), включенное в тракт передачи данных между хостом и сетью SAN. Причем возможны два варианта его включения: симметричный (in-band) и асимметричный (out-of-band).

В случае симметричной топологии (рис. 2) поток данных от хостов проходит через appliance. Классический пример – IBM TotalStorage SVC (SAN Volume Controller). Система включается в тракт между сетью хостов и сетью Fibre Channel в SAN, к которой могут быть подключены массивы множества производителей. Физически SVC представляет собой серверный кластер, управляющий размещением в массивах логических дисков, которые подключенные к SVC с другой стороны хосты видят как единый пул. Недостатком симметричной схемы является то, что appliance становится «бутылочным горлышком» для потока данных, его масштабирование затруднено из-за ряда технических моментов, таких как необходимость синхронизации кэширования.

В случае асимметричной топологии (рис. 3) устройство виртуализации вынесено с основного тракта данных и обрабатывает лишь метаданные виртуализации, только управляя потоком ввода-вывода. Подобным образом реализована платформа виртуализации HP SVSP (SAN Virtualization Services Platform). Здесь трафик данных регулируется выделенными модулями (Data Path Modules), работой которых управляют средства VSM (Storage Virtualisation Manager), работающие как внешний виртуализатор на выделенных серверах. К FC-сети могут быть подключены массивы большинства ведущих производителей.

Отдельным направлением является так называемая коммутирующая виртуализация (switch-based), реализующая управление на уровне интеллектуальных коммутаторов Fibre Channel. Пожалуй, самое известное в этой сфере решение – EMC Invista. Это серверный кластер CPC (Control Path Cluster), работающий совместно с интеллектуальными коммутаторами семейства Cisco MDS или Brocade AP7420. Причем функции сетей второго и третьего уровня ISO/OSI (коммутация и маршрутизация) здесь разделены, и работа с двумя потоками данных – целевых (Data Path) и данных управления (Control Path) – происходит независимо. Таким образом, реализуется в некотором роде смешение подходов in-band и out-of-band.

Наконец, последний вариант – виртуализация на подсистеме хранения данных. Здесь виртуализатор работает на СХД. Процессоры хоста разгружены, узких мест на уровне сети нет, к системе можно подключить неограниченное число хостов. Однако здесь надо принимать меры для организации централизованного управления общим пулом, в реальности состоящим из множества массивов, возможно, от разных производителей. По логике, должен существовать общий контроллер, управляющий данными в массивах. Примером решения, способного объединить разнородный парк массивов в единый управляемый пул, может служить платформа HDS TagmaStore, названная вендором USP (Universal Storage Platform). Она имеет собственный набор накопителей, а также подключает внешние подсистемы хранения и управляет полученным таким образом пространством как консолидированным дисковым пулом.

Виртуализация в унифицированной среде хранения

Решения блочного доступа, описанные выше, в основном относятся к виртуализации пространства SAN на базе протокола Fibre Channel. Это дорогостоящие комплексы для масштабных ЦОД, и понятно, что поставки таких решений единичны. Развитие альтернативных протоколов обмена для сетей хранения сегодня вносит свои коррективы. Распространение IP SAN приводит к демократизации этой сферы. Протокол iSCSI использует стандартную инфраструктуру Ethernet для передачи команд SCSI, инкапсулированных в пакеты TCP/IP. Организация сети хранения на такой базе обходится значительно дешевле, а существовавшие проблемы со скоростью работы этого протокола в сравнении с FC на поверку оказываются разрешимыми, особенно с распространением 10 GbE. К тому же IP-сети вообще не имеют ограничений на длину передачи (можно бесшовно использовать каналы не только LAN, но и WAN), т. е. создание географически распределенных сетевых структур хранения становится более простым. Развивается и передача Fibre Channel поверх Ethernet – FCoE. С позиций надежности сетевого канала – гарантированности доставки пакетов, IP-сети, конечно, уступают FC, и для критически важных сред с высочайшими показателями QoS их использование до сих пор для многих вызывает сомнения. Но для информационных систем с меньшими требованиями по этому параметру они являются предметом нарастающего интереса.

Компании, разрабатывающие SAN-решения на базе iSCSI, в плане блочной виртуализации пошли новым путем. Они не применяют в качестве виртуализатора дополнительных дорогостоящих и сложно масштабируемых устройств и не загружают своими задачами процессоры хоста. Каждый массив в таких системах представляет собой полноценный и равноправный модуль хранения, имеющий все необходимое (их еще называют одноранговой системой хранения). Получается своего рода GRID-система. Для управления виртуализованными данными модули общаются между собой в рамках кластерной структуры. В единой группе дисковых массивов данные автоматически разносятся по шпинделям в разных полках таким образом, чтобы обеспечить балансировку нагрузки на порты, контроллеры и жесткие диски. Система открыта для упрощенного масштабирования; при этом, естественно, расширение числа модулей приводит к росту производительности за счет распределения LUN по большему числу шпинделей – собственно, так же, как это происходит в «монолитных» решениях virtualized storage среднего уровня типа EMC CLARiiON или HP EVA или их многодисковых старших собратьях. Но в iSCSI SAN процесс распределяется среди равноправных модулей относительно небольшой индивидуальной емкости. Основные примеры подобных решений – Dell EqualLogic PS (расшифровывается как раз как Peer Storage) и HP LeftHand P-Series.

Наличие в ЦОД систем хранения, которые работают на базе различных протоколов обмена, включающих конфигурации блочного и файлового доступа, меняет подход к интеграции всей среды в управляемое унифицированное информационное хранилище. Тут есть два момента. Во-первых, уменьшается акцент на жесткое вертикальное разделение массивов NAS и SAN, т. е. виртуализации файлового и блочного доступа. Во-вторых, развиваются унифицированные средства для подключения к различным каналам передачи FC, FCoE, iSCSI – для организации единого доступа к гетерогенному с сетевой точки зрения парку. Примером может служить NAS-семейство EMC Cellerra NX/NS, позиционируемое как унифицированная платформа хранения. Здесь массив (модуль) представляет собой выделенный сетевой сервер, оптимизированный для доступа к файлам и блокам. Физически им управляет встроенный серверный модуль X-Blade под специализированной ОС. Поддерживаются несколько протоколов файлового уровня (CIFS, NFS), технология ввода-вывода файлов и блоков и их сочетания (MPFS), подключение к iSCSI и Fibre Channel.

Централизованное объединение решений различных производителей в системах NAS и SAN предложено, например, компанией NetApp. Здесь открытые контроллеры V-Series объединяют управление FC-сетями SAN, в которые включаются мультивендорные СХД, комплексы на базе FCoE или iSCSI, NAS, работающие в CIFS/NFS по Ethernet.

Итак, внедрение виртуализации – как на уровне отдельного массива, так и на уровне гетерогенной среды хранения – является основой развития индустрии СХД. Распространение «облачных» концепций мотивирует как развитие рынка ЦОД в целом, так и изменение подходов к организации стека хранения данных в нем. Основным направлением становится переход к унифицированным и разделяемым инфраструктурам хранения, обладающим возможностью централизованного управления, способностью к динамичному расширению, интеллектуальными функциями предоставления емкости, миграции данных и обеспечению их доступности.

Вернуться на главную страницу обзора «Системы хранения данных для бизнеса»