Введение
Предоставление компьютерной системе логического представления о физическом хранилище
В информатике виртуализация хранилища – это "процесс представления логического представления физических ресурсов хранения" хост-компьютерной системе, рассматривающий все носители информации (жесткие диски, оптические диски, магнитные ленты и т.д.) в организации как единый пул хранения. "Система хранения" также известна как дисковый массив, массив хранения или файловый сервер. Системы хранения обычно используют специальное аппаратное и программное обеспечение вместе с дисковыми накопителями для обеспечения быстрого и надежного хранения данных для вычислений и обработки информации. Системы хранения сложны и могут рассматриваться как специализированный компьютер, предназначенный для обеспечения емкости хранения вместе с расширенными функциями защиты данных. Дисковые накопители – это лишь один из элементов системы хранения, наряду с аппаратным обеспечением и специализированным встроенным программным обеспечением. Системы хранения могут обеспечивать доступ к хранилищу на уровне блоков или файлов. Доступ на уровне блоков обычно осуществляется через протоколы Fibre Channel, iSCSI, SAS, FICON или другие. Доступ на уровне файлов часто предоставляется с использованием протоколов NFS или SMB. В контексте системы хранения существует два основных типа виртуализации:
Блочная виртуализация в данном контексте относится к абстракции (разделению) логического хранилища (раздела) от физического хранилища, позволяющей получать к нему доступ независимо от физической структуры или неоднородности хранилища. Это разделение предоставляет администраторам системы хранения большую гибкость в управлении хранилищем для конечных пользователей. Виртуализация файлов решает задачи, связанные с NAS, устраняя зависимость между данными, к которым осуществляется доступ на уровне файлов, и физическим местоположением этих файлов. Это открывает возможности для оптимизации использования хранилища, консолидации серверов и выполнения миграций файлов без прерывания работы.
Перенастройка адресного пространства
Виртуализация хранилища помогает достичь независимости от местоположения, абстрагируя физическое расположение данных. Система виртуализации предоставляет пользователю логическое пространство для хранения данных и управляет процессом сопоставления его с фактическим физическим местоположением. Возможно наличие нескольких уровней виртуализации или сопоставления. В этом случае выход одного уровня виртуализации может использоваться как вход для более высокого уровня виртуализации. Виртуализация сопоставляет пространство между ресурсами бэк-энда и ресурсами фронт-энда. В данном случае, "бэк-энд" относится к логическому номеру устройства (LUN), который не представлен компьютеру или хост-системе для непосредственного использования. LUN или том "фронт-энда" представлен хост-системе или компьютерной системе для использования. Конкретная форма сопоставления зависит от выбранной реализации. Некоторые реализации могут ограничивать гранулярность сопоставления, что может снизить возможности устройства. Типичные значения гранулярности варьируются от одного физического диска до небольшого подмножества (кратного мегабайтам или гигабайтам) физического диска. В блочной среде хранения один блок информации адресуется с использованием идентификатора LUN и смещения внутри этого LUN, известного как логическая блочная адресация (LBA).
Метаданные
Программное обеспечение или устройство виртуализации отвечает за поддержание согласованного представления всей информации о сопоставлении для виртуализированного хранилища. Эта информация о сопоставлении часто называется метаданными и хранится в виде таблицы сопоставления. Адресное пространство может быть ограничено объемом памяти, необходимой для поддержания таблицы сопоставления. Уровень детализации и общий адресуемый объем памяти напрямую влияют на размер метаданных и, следовательно, на размер таблицы сопоставления. По этой причине часто приходится идти на компромиссы между объемом адресуемой емкости и детализацией или гранулярностью доступа. Один из распространенных способов решения этих ограничений – использование многоуровневой виртуализации. Во многих современных системах хранения данных обычно используется три уровня виртуализации. Некоторые реализации не используют таблицу сопоставления, а вместо этого вычисляют местоположения с помощью алгоритма. Эти реализации используют динамические методы для вычисления местоположения при обращении, вместо хранения информации в таблице сопоставления.
Способность
Большинство реализаций обеспечивают управление разнородными устройствами хранения данных от разных производителей в пределах поддерживаемых конфигураций данной реализации. Это означает, что следующие функции не ограничиваются устройствами одного производителя (в отличие от аналогичных функций, предоставляемых специализированными контроллерами хранения) и могут быть реализованы для устройств различных производителей.
Объединение
Физические ресурсы хранения объединяются в пулы хранения, из которых создается логическое хранилище. Дополнительные системы хранения, которые могут быть разнородными, могут добавляться по мере необходимости, и виртуальное пространство хранения будет увеличено на соответствующую величину. Этот процесс полностью прозрачен для приложений, использующих инфраструктуру хранения.
Улучшение использования
Использование может быть повышено за счет объединения ресурсов, миграции и тонкого выделения (thin provisioning). Это позволяет пользователям избежать избыточной закупки и избыточного выделения ресурсов хранения. Иными словами, такой способ использования, основанный на общем пуле хранения, может быть легко и оперативно выделен по мере необходимости, чтобы избежать ограничений емкости хранилища, которые часто снижают производительность приложений. Когда вся доступная емкость хранилища объединена, системным администраторам больше не нужно искать диски со свободным местом для выделения конкретному хосту или серверу. Новый логический диск можно просто выделить из доступного пула, или расширить существующий. Объединение ресурсов также означает, что потенциально может быть использована вся доступная емкость хранения. В традиционной среде целый диск назначается хосту. Это может быть больше, чем требуется, что приводит к неэффективному использованию пространства. В виртуальной среде логическому диску (LUN) выделяется емкость, необходимая использующему хосту. Ресурсы хранения могут быть назначены именно там, где они нужны в данный момент, что снижает необходимость прогнозировать будущие потребности хоста. Используя тонкое выделение, администратор может создать очень большой логический диск с тонким выделением, благодаря чему использующая система сразу же считает, что у нее в распоряжении большой диск.
Меньше управленческих пунктов
При виртуализации хранилищ несколько независимых устройств хранения, даже если они распределены по сети, представляются как единое монолитное устройство хранения и могут управляться централизованно. Однако традиционное управление контроллерами хранения по-прежнему необходимо, включая создание и обслуживание RAID-массивов, а также управление ошибками и сбоями.
Поддержка неудачной реализации
Как только слой абстракции развернут, только виртуализатор знает, где фактически расположены данные на физическом носителе. Соответственно, выход из виртуальной среды хранения требует восстановления логических дисков в виде непрерывных дисков, пригодных для использования традиционным способом. Большинство реализаций предусматривают ту или иную процедуру отката, и благодаря сервисам миграции данных это, по крайней мере, возможно, хотя и занимает много времени.
Совместимость и поддержка поставщиков
Взаимодействие является ключевым фактором для любого программного обеспечения или устройства виртуализации. Оно относится к физическим контроллерам хранения и хостам, их операционным системам, программному обеспечению многоканального доступа и аппаратному обеспечению подключения. Требования к взаимодействию различаются в зависимости от выбранной реализации. Например, виртуализация, реализованная внутри контроллера хранения, не создает дополнительной нагрузки для взаимодействия на уровне хоста, но потребует дополнительной поддержки других контроллеров хранения, если они должны быть виртуализированы тем же программным обеспечением. Виртуализация на основе коммутатора может не требовать специфического взаимодействия с хостом, если она использует методы разделения пакетов для перенаправления операций ввода-вывода. Сетевые устройства предъявляют самые высокие требования к взаимодействию, поскольку должны взаимодействовать со всеми устройствами, хранилищами и хостами.
Управление метаданными
Информация является одним из наиболее ценных активов в современных бизнес-средах. После виртуализации метаданные выступают связующим звеном. В случае потери метаданных теряются и все фактические данные, поскольку без информации об отображении практически невозможно восстановить логические диски. Любая реализация должна обеспечивать их защиту с помощью соответствующих уровней резервного копирования и репликации. Важно иметь возможность восстановить метаданные в случае критического сбоя. Управление метаданными также оказывает влияние на производительность. Любое программное обеспечение или устройство виртуализации должно обеспечивать атомарность всех копий метаданных и их быстрое обновление. Некоторые реализации ограничивают возможность предоставления определенных функций быстрого обновления, таких как моментальные снимки и кэширование, где требуются сверхбыстрые обновления для обеспечения минимальной задержки при выполнении операций ввода-вывода.
Производительность и масштабируемость
В некоторых реализациях производительность физического хранилища может быть фактически улучшена, главным образом благодаря кэшированию. Однако кэширование требует видимости данных, содержащихся в запросе ввода-вывода, и поэтому ограничено программным обеспечением и устройствами виртуализации с передачей данных в полосе и симметричной архитектурой. Эти реализации также напрямую влияют на задержку запроса ввода-вывода (промах кэша), поскольку ввод-вывод должен проходить через программное обеспечение или устройство. При условии эффективной разработки программного обеспечения или устройства, это влияние должно быть минимальным по сравнению с задержкой, связанной с физическим доступом к диску. В силу природы виртуализации, сопоставление логического и физического требует определенных вычислительных ресурсов и таблиц поиска. Следовательно, любая реализация добавляет небольшую задержку. Помимо проблем с временем отклика, необходимо учитывать пропускную способность. Пропускная способность ввода и вывода из программного обеспечения поиска метаданных напрямую влияет на доступную пропускную способность системы. В асимметричных реализациях, где поиск метаданных происходит до чтения или записи информации, пропускная способность является менее критичной, поскольку метаданные составляют лишь малую часть объема фактического ввода-вывода. Симметричные реализации с потоковой обработкой данных непосредственно ограничены их вычислительной мощностью и пропускной способностью соединений. Большинство реализаций предоставляют ту или иную модель масштабирования, при которой добавление дополнительных экземпляров программного обеспечения или устройств обеспечивает повышенную масштабируемость и потенциально увеличенную пропускную способность. Характеристики производительности и масштабируемости напрямую зависят от выбранной реализации.
На основе хоста
Виртуализация на основе хоста требует дополнительного программного обеспечения, работающего на хосте как привилегированная задача или процесс. В некоторых случаях управление томами встроено в операционную систему, а в других предлагается как отдельный продукт. Тома (LUN), представленные хост-системе, обрабатываются традиционным драйвером физического устройства. Однако программный слой (управляющий томами) располагается над драйвером дискового устройства, перехватывает запросы ввода-вывода и обеспечивает поиск метаданных и сопоставление ввода-вывода. Большинство современных операционных систем имеют встроенную систему управления логическими томами (в Linux она называется Logical Volume Manager или LVM; в Solaris и FreeBSD – zpool от ZFS; в Windows – Logical Disk Manager или LDM), выполняющую задачи виртуализации. Важно отметить: управление томами на основе хоста использовалось задолго до появления термина "виртуализация хранилищ".
На основе устройства хранения
Как и виртуализация на основе хоста, некоторые категории существовали на протяжении многих лет, но лишь недавно были отнесены к виртуализации. Простые устройства хранения данных, такие как отдельные жесткие диски, не обеспечивают никакой виртуализации. Однако даже самые простые дисковые массивы предоставляют логическое отделение от физической реализации, поскольку используют RAID-конфигурации для объединения нескольких дисков в единый массив (и, возможно, последующего разделения массива на меньшие тома). Продвинутые дисковые массивы часто поддерживают клонирование, снимки и удалённую репликацию. Как правило, эти устройства не обеспечивают преимуществ миграции или репликации данных между разнородными системами хранения, поскольку каждый производитель склонен использовать собственные проприетарные протоколы. Новое поколение контроллеров дисковых массивов позволяет подключать к ним другие устройства хранения. В рамках данной статьи мы рассмотрим только контроллеры последнего типа, которые действительно виртуализируют другие устройства хранения.
Концепция
Первичный контроллер хранения предоставляет сервисы и обеспечивает прямое подключение других контроллеров хранения. В зависимости от реализации, эти контроллеры могут быть от одного или разных производителей. Первичный контроллер обеспечивает объединение ресурсов и управление метаданными. Он также может предоставлять сервисы репликации и миграции между подключенными контроллерами.
Сетевые
Виртуализация хранилища, работающая на сетевом устройстве (обычно стандартном сервере или интеллектуальном коммутаторе) и использующая сети iSCSI или FC Fibre Channel для подключения в качестве SAN. Это наиболее распространенная и внедряемая форма виртуализации. Устройство виртуализации располагается в SAN и предоставляет уровень абстракции между хостами, выполняющими операции ввода-вывода, и контроллерами хранения, обеспечивающими емкость.
На основе прибора против коммутатора
Существует две широко распространенные реализации виртуализации хранилищ на основе сети: на основе устройств и на основе коммутаторов. Обе модели могут предоставлять одни и те же сервисы: управление дисками, поиск метаданных, миграцию данных и репликацию. Обе модели также требуют определенного аппаратного обеспечения для предоставления этих сервисов. Устройства на основе устройств – это специализированные аппаратные устройства, обеспечивающие подключение к SAN в той или иной форме. Они располагаются между хостами и хранилищем, и в случае устройств, работающих в полосе (симметричных), могут предоставлять все преимущества и сервисы, описанные в этой статье. Запросы ввода-вывода направляются непосредственно на устройство, которое выполняет сопоставление метаданных, прежде чем перенаправить ввод-вывод, отправляя собственный запрос ввода-вывода в базовое хранилище. Устройство, работающее в полосе, также может обеспечивать кэширование данных, и большинство реализаций предусматривают ту или иную форму кластеризации отдельных устройств для поддержания атомарного представления метаданных и кэшированных данных. Устройства на основе коммутаторов, как следует из названия, размещаются в физическом коммутаторе, используемом для подключения устройств SAN. Они также располагаются между хостами и хранилищем, но могут использовать различные методы для сопоставления метаданных, например, анализ пакетов для перехвата входящих запросов ввода-вывода и выполнения перенаправления ввода-вывода. Обеспечить атомарное обновление метаданных в коммутируемой среде гораздо сложнее, и сервисы, требующие быстрого обновления данных и метаданных, могут быть ограничены в реализациях на основе коммутаторов.
Входящий в диапазон против внедиапазона
В полосе, также известная как симметричная виртуализация, устройства фактически располагаются на пути данных между хостом и хранилищем. Все запросы ввода-вывода и соответствующие данные проходят через это устройство. Хосты выполняют операции ввода-вывода к устройству виртуализации и никогда не взаимодействуют непосредственно с физическим устройством хранения. Устройство виртуализации, в свою очередь, выполняет операции ввода-вывода к устройству хранения. Кэширование данных, статистика об использовании данных, службы репликации, миграция данных и тонкое выделение ресурсов легко реализуются в устройстве, работающем в полосе. Устройства виртуализации, работающие вне полосы, также известные как асимметричные, иногда называют серверами метаданных. Эти устройства выполняют только функции сопоставления метаданных. Это требует наличия дополнительного программного обеспечения на хосте, которое сначала запрашивает местоположение фактических данных. Таким образом, запрос ввода-вывода от хоста перехватывается до его отправки, запрашивается поиск метаданных у сервера метаданных (это может происходить через интерфейс, отличный от SAN), который возвращает хосту физическое местоположение данных. Затем информация извлекается посредством фактического запроса ввода-вывода к хранилищу. Кэширование невозможно, поскольку данные никогда не проходят через это устройство.
Виртуализация на основе файлов
Виртуализация на основе файлов — это тип виртуализации хранилищ, использующий файлы как базовый элемент хранения данных. Это отличается от виртуализации хранилищ на основе блоков, которая использует блоки как базовый элемент. Она позволяет абстрагироваться от физических характеристик хранилищ и хранить файлы на любом типе устройств хранения без необходимости в специальных драйверах или другой низкоуровневой конфигурации. Виртуализация на основе файлов может применяться для различных задач, включая консолидацию хранилищ, повышение эффективности использования хранилищ и аварийное восстановление. Это может упростить администрирование хранилищ и уменьшить общее количество управляемых устройств хранения. Виртуализация на основе файлов также может повысить эффективность использования хранилищ, позволяя хранить файлы на устройствах, которые не используются в полную мощность. Например, если файловый сервер имеет несколько жестких дисков, которые заполнены лишь частично, виртуализация на основе файлов может быть использована для хранения файлов на этих дисках, тем самым увеличивая степень их загрузки. Кроме того, виртуализация на основе файлов может применяться для целей аварийного восстановления. Путем репликации файлов на различные устройства хранения можно восстановить данные в случае отказа одного из устройств. Виртуализация на основе файлов позволяет создавать виртуальный файловый сервер (или виртуальное NAS-устройство), который для пользователя выглядит как единый файловый сервер, но фактически реализован как набор файлов, хранящихся на нескольких физических файловых серверах.