Оптимизация облачного хранения данных

Обзор новейших облачных инструментов управления данными и программно-определяемого хранения данных

Comments

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

  • Анализ больших данных несет с собой потребность в эффективном доступе к большим объемам данных; он должен быть не просто быстрым, а доставлять эти данные в системы для их визуализации буквально в режиме реального времени.
  • А интернет вещей означает, что объем вводимых данных (и потребности в их хранении) может вырасти в 10 раз — и это еще консервативная оценка.

Отрасль приходит к тому, что традиционная архитектура дисковых массивов, в которую при необходимости можно добавлять новые диски, уже не кажется достаточной, если у вас не самое мелкое предприятие.

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

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

Что же такое облачное хранение данных?

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

Виртуализация систем хранения данных заключается в следующем:

  • виртуализация блоков: отделяет логического хранилище от физического, так что данные становятся доступными, независимо от физического устройства;
  • виртуализация файлов: устраняет зависимость между данными, доступными на уровне файлов, и физическим местом хранения этих файлов.

Ниже я продемонстрирую некоторые способы оптимизации хранения данных с точки зрения эксплуатационных характеристик облака.

Особенности хранения данных с облачной оптимизацией

Можно выделить три основных метода оптимизации хранения данных в облачной системе: оптимизация данных, оптимизация базы данных и реализация программно-определяемого хранилища.

Оптимизация данных

Оптимизация данных, вероятно, – наиболее значимая из инноваций последнего времени в сфере программного обеспечения, так как она позволяет хранить больше информации в меньшем физическом пространстве. Три инструмента оптимизации данных – дедупликация, компрессия и динамическое выделение ресурсов.

Дедупликация

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

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

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

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

Компрессия

Компрессия (или интеллектуальное компрессия) данных – знакомый термин, который означает просто кодирование информации с уменьшением количества битов. Напомним, что существует компрессия двух типов – с потерям и без потерь. При компрессии с потерями производится выявление и удаление ненужной информации. При компрессии без потерь выявляются и удаляются биты, необходимые для передачи данных (статистическая избыточность), но не сами данные.

Обычно компрессии на уровне файлов подвергается большинство аудиофайлов и файлов изображений.

Динамическое выделение ресурсов

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

Оптимизация баз данных

Шардинг тоже можно рассматривать как способ оптимизации данных, но это, скорее, метод оптимизации базы данных. Шартинг – форма горизонтального масштабирования данных – предназначен для удовлетворения потребностей в наращивании объемов данных и доступа к данным; это процесс хранения записей данных в других компьютерах, когда размер базы данных ограничивает производительность, так как пропускная способность по операциям чтения и записи становится неприемлемой. Чтобы справиться с темпами роста объемов данных, просто добавляются новые машины.

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

  • При вертикальном секционировании столбцы данных разбиваются на отдельные фрагменты и сохраняются в других таблицах базы данных. В какой-то мере это делается при нормализации – организации информации в таблицах реляционной базы данных для минимизации избыточности данных. Примерами вертикального секционирования служат хранение редко используемых или очень широких столбцов на другом устройстве или отделение трудных для поиска динамических данных от статических данных, искать которые гораздо легче.
  • При горизонтальном секционировании (примером которого является шардинг) в разные таблицы помещаются разные строки. Например, каждая строка с записью, где в столбце «Возраст» значится 50 или более лет, переходит в одну таблицу, а 49 или менее – в другую; таким образом, строки распределяются по двум таблицам — для тех, кому за 50, и для тех, кто младше.

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

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

Шардинг уменьшает размер индекса, что может способствовать повышению производительности поиска. Так как шарды распределены по разным машинам, требования к производительности базы данных также распределяются по отдельным машинам, что означает повышение общей производительности при поиске. Кроме того, если шарды основаны на действительно значимых сегментах данных (атрибут А и атрибут B), то легко определить искомый шард и исключить из запросов другие шарды.

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

Решение о шардинге базы данных не следует принимать необдуманно; сначала исчерпайте потенциал всех прочих методов оптимизации. Если вы все же выбрали шардинг:

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

Программно-определяемое хранение данных

Программно-определяемое хранение данных (Software-Defined Storage – SDS) – это способ программного управления задачами распределения ресурсов и хранения данных на основе политики, независимо от оборудования. В SDS обычно входит тот или иной инструмент виртуализации хранения данных, изолирующей устройства хранения от программного обеспечения. Этот способ лучше всего представить через некоторые его типичные характеристики:

  • SDS абстрагирует логические службы хранения от физических систем хранения;
  • он позволяет объединять ресурсы нескольких реализаций, которые могут отличаться друг от друга;
  • он позволяет использовать абстрактные инструменты, такие как виртуализация систем хранения данных, виртуальные тома, API-интерфейсы для взаимодействия со службой хранения или параллельные NFS;
  • он может использовать стандартное оборудование с логикой хранения, заключенной в программном уровне;
  • он может использовать архитектуру горизонтального масштабирования (при которой в систему добавляются дополнительные узлы).

SDS часто содержит параметры управления дедупликацией, репликацией, динамическим выделением ресурсов, копиями текущего состояния и задачами резервного копирования.

SDS должно обладать тремя ключевыми свойствами:

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

Модель эксплуатации SDS состоит из виртуальной плоскости данных и плоскости управления на основе политики.

  • Виртуальная плоскость данных отвечает за хранение данных и применение служб для работы с данными (репликация, кэширование и т.п.). Она виртуализована путем отделения физических ресурсов и их концентрации в логические пулы в целях потребления и управления. Сделав виртуальный диск основной единицей управления операциями хранения, можно независимо настраивать и администрировать комбинации ресурсов и служб хранения данных для каждой виртуальной машины.
  • Плоскость управления служит мостом между приложениями и инфраструктурой; она обеспечивает стандартизованное управление и автоматизацию между различными уровнями хранения. Программирование плоскости управления осуществляется посредством общедоступных API-интерфейсов, которые используются для управления политикой (сценариями и облачными средствами автоматизации), так что пользователи могут самостоятельно управлять своим потреблением ресурсов хранения. Классы услуг хранения рассматриваются как логические объекты, полностью управляемые программным обеспечением и интерпретируемые посредством политик. Такого рода автоматизация позволяет динамически управлять индивидуальными уровнями обслуживания для каждой виртуальной машины.

Это новый мир данных

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


Ресурсы для скачивания


Похожие темы


Комментарии

Войдите или зарегистрируйтесь для того чтобы оставлять комментарии или подписаться на них.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Облачные вычисления, Information Management
ArticleID=1022123
ArticleTitle=Оптимизация облачного хранения данных
publish-date=11242015