Объектные системы хранения данных

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

Теперь расскажем о наиболее перспективном вид систем хранения — объектных СХД.

Объектные СХД – что, зачем и для чего.

Если погуглить по ключевым словам «объектные системы хранения» или «object storage», то можно найти много текстов, объясняющих, что такое объектное хранилище и как оно работает, как объектные системы опережают в росте объёмов другие типы систем хранения: блочные и файловые. Но мало где можно прочитать внятное объяснение, чем такой рост вызван, какие практические преимущества для ИТ-бизнеса они могут дать, для решения каких проблем они создаются.

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

Зачем?

Не секрет, что рост объёмов хранимых данных в последние годы происходит экспоненциально. По результатам опроса, проведённого исследовательской компанией «451 Research» в 2017 году, более 60% опрошенных организаций заявили, что объёмы их систем хранения превышают 50 Петабайт, и процент роста этих объёмов выражается двузначной цифрой.

На рисунке ниже можно видеть результаты опроса исследовательской организации “451 Alliance”, которые показывают, что более 88% организаций указывают, что объём их хранимых данным растёт со средним темпом роста в 28% в год, причем 15% из них ожидают взрывного роста объёма их систем хранения более чем на 50%, а 31% организаций ожидают роста от 25% до 49%.

Рисунок 1. Объёмы хранимых данных (источник: 451 Alliance 2021 г..)

Традиционный подход

Традиционный подход хранения данных – системы SAN (Storage Area Network) или NAS (Network attached Storage), если не рассматривать совсем простые системы DAS (Direct Attached Storage) – это, например, внешняя дисковая полка, подключенная напрямую к RAID-контроллеру сервера.

Рисунок 2. Различия SAN и NAS.

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

Такой подход хорош для относительно небольших объёмов хранения. При росте объёмов дискового хранилища возникают проблемы с файловой системой. Традиционные файловые системы разбивают каждый файл на маленькие блоки, обычно объёмом 4 килобайт, и сохраняют месторасположение каждого блока в таблицах просмотра (lookup table) файловой системы. Для небольших объёмов данных это хорошо, но как только вы захотите расширить систему хранения до объёмов порядка Петабайт, эти таблицы становятся непомерно огромными. Это сильно замедляет поиск нужного блока и увеличивает возможность ошибок.

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

Распределённая файловая система

Для решения этой проблемы стали использовать т.н. горизонтально-масштабируемые (Scale-out) файловые системы, такие как HDFS (Hadoop Distributed File System). Это распределённая файловая система на базе Hadoop, свободно распространяемого набора утилит для создания распределённых систем, работающих на кластерах из сотен и тысяч узлов. Проблема масштабирования при этом решается, однако, поддержка таких систем также довольно трудоёмка. Такие горизонтально-масштабируемые системы конструктивно сложны и требуют постоянного обслуживания. К тому же, для защиты данных в них чаще всего используется механизм репликации данных, то есть попросту, хранения копий одних и тех же данных в разных местах системы. Стандартно, сохраняются три копии каждого файла. Излишне говорить, что это увеличивает требуемый дисковый объём на целых 200%! Хотя цены на диски всё время снижаются, но рост объёмов данных, которые необходимо хранить, растёт ещё быстрее. Это напрочь съедает экономию на недорогих дисках. Для петабайтных объёмов хранения такой подход неприемлем.

Облачное хранение

Для минимизации этих проблем, многие стали прибегать к использованию облачных хранилищ, услуги которых предоставляют облачные провайдеры. Модель оплаты по мере использования (pay-as-you-go) работает отлично, но опять-таки – для относительно небольших объёмов хранимых данных и при нечастом их использовании. При постоянном масштабировании объёмов данных и их интенсивном использовании, этот подход также становится весьма затратным, не дешевле HDFS. Дело в том, что многие облачные провайдеры берут плату не только за объём хранимых данных, но и за трафик извлекаемых/записываемых данных, а также и за число транзакций (обращений) к хранилищу. Поэтому, когда приходится иметь дело с такими приложениями, как анализ Больших Данных, передачей массивных объёмов данных, то хранилище в публичном облаке – наверное, самый дорогой подход. Кроме того, могут возникнуть проблемы конфиденциальности данных и производительности системы, если много других пользователей также будут интенсивно использовать ресурсы данного облака.

Что?

Выходом в такой ситуации может быть объектная система хранения (object storage), в котором используются примерно те же технологии, что в публичном облаке (HTTP, API). Объектные хранилища можно легко масштабировать до объёмов петабайт в одном домене, без какой-либо деградации производительности. Кроме того, объектные хранилища имеют функционал управления данными, чего нет в традиционных системах: управление версиями, кастомизация метаданных и встроенная аналитика.

Такие характеристики достигаются за счёт абстрагирования уровней системы – общий подход, который сейчас используется практически во всех ИТ- и телеком-системах, не только в системах хранения. Каждый диск на нижележащем уровне форматируется простой локальной файловой системой, такой как EXT4. На верхнем уровне, абстрагированном от нижнего, размещаются средства управления, что позволяет интегрировать все элементы в едином унифицированном томе. Файлы различного вида хранятся как «объекты», а не как файлы в файловой системе. Поскольку низкоуровневое управление блоками передано на уровень локальной файловой системы, объектное хранилище ведает только функциями управления высокого уровня, которые управляют нижележащим уровнем через стандартный интерфейс прикладного программирования API (Application Programing Interface).

Рисунок 3. Объектная система хранения.

Принцип объектного хранения можно сравнить с услугой парковки, когда вы просто оставляете машину (объект) для её размещения на парковочном пространстве, и получаете карточку, по которой вы можете получить машину обратно. В карточку могут быть внесены «мета-данные»: ваше имя, номер и марка машины. Где именно запаркуют машину, вам неинтересно (абстрагирование), и вам не нужно кружить по парковке в поисках свободного места.

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

Структурированные и неструктурированные данные

Термины «структурированные» и «неструктурированные» данные – весьма относительны. Все файлы с данными имеют ту ли иную структуру, тип файла. Поэтому, с этой точки зрения все файлы – структурированные. Однако, когда говорят, что данные – неструктурированные, то имеется в виду, что они не хранятся в единой базе данных и содержат разные типы данных. Это просто набор разнородных файлов, созданных в различных приложениях и полученных из разных источников. Если открыть на компьютере папку «Мои документы», то примерно это там и будет.

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

Защита данных

Нужна ли репликация данных для надёжного хранения в объектной системе? Да, нужна, но при этом не требуется утраивать объём дискового пространства, как в блочной системе. Для максимизации доступного дискового пространства и защиты данных используется технология Erasure Coding (ЕС). Упрощённо, её можно назвать следующим поколением хорошо известного метода защиты данных RAID, при котором необходимо двойное или тройное резервирование.

В методе ЕС файлы объектов разделяются на фрагменты (shards). Для некоторых из них создаются копии избыточности в формате N+M. Например, если для шести из десяти фрагментов создаются копии, это будет формат 10+6. Данные, для которых нужно, например, N дисков, копии избыточности распределяются по N+M дискам (в данном случае 16). При потере любых шести дисков, оставшихся десяти достаточно для восстановления исходных данных. Таким образом, избыточность объёма хранения получается не такой большой, как в RAID, и она может противостоять множественным отказам дисков без риска потери данных. Тома ЕС могут выдерживать больше отказов дисков, чем дисковые массивы RAID. При этом, петабайтное масштабирование системы не будет приводить к столь большим затратам на закупку дисков, как в файловых системах.

Для чего?

Объектное хранилище часто выбирается для данных WORM, которые пишутся один раз, но читаются много раз (Write Once Read Many). Оно подходит не для всех объёмов данных и сценариев использования, но, безусловно, имеет много применений.

Объектные системы хранения целесообразно использовать в следующих случаях:

  • Долгосрочное хранение статичных данных, например, различной нормативной документации (WORM);
  • Резервные копии – дампы баз данных, файлы журналов, резервные копии существующего программного обеспечения;
  • Среда разработки DevOps – одно глобальное пространство имён, которое легко доступно с использованием простых запросов для управления различными объектами: большими базами данных, таблицами, изображениями, звуковыми и видеофайлами и пр.;
  • Неструктурированные данные – мультимедийные файлы, документы, изображения, звуковые и видеофайлы;
  • Отрасли с большими объёмами хранения данных, такие как:
    • Здравоохранение – электронные медицинские записи, цифровые изображения, данные системы PACS;
    • Финансово-торговые платформы, электронная почта, мессенджеры, оцифрованные архивы музеев, конструкторских бюро и т.п.;
    • Статический веб-контент – большие объёмы HTML-файлов и изображения для сайтов.

Основные области применения объектных СХД включают системы интеллектуального видеонаблюдения, система доставки контента (медийные применения), оптимизация NAS, архивирование, хранение данных научных экспериментов, а также как Data Lake (репозиторий неструктурированных данных) для различных видов анализа Больших Данных. Кроме того, ActiveScale может быть эффективно использована для создания систем катастрофоустойчивости (Disaster recovery), а также для машинного обучения, нейросетей, и как средство для оперативной загрузки в облако (Cloud bursting).

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

В целом, можно сделать вывод, что объектные системы хранения в настоящее время являются трендом в отрасли хранения и обработки информации. Поскольку отрасль ИТ движется к распределённым системам, в частности к распределённым программно-конфигурируемым дата-центрам SDDC (Software Defined Distributed Data Cenner), то объектные СХД являются адекватным ответом на этот вызов.

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

Развитие систем анализа Больших Данных также является одним их драйвером роста объёмов использования объектных СХД, по причине их ориентации на хранение и обработку неструктурированных данных.

Рисунок 4. Рост потребности в системах хранения лля сетей доставки контента.

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

Для корпоративного применения, объектные СХД также очень востребованы. В условиях создания многофилиальных ИТ-систем корпораций, таких как Газпром, РАО ЕЭС, и др., применение объектных СХД становятся практически безальтернативным выбором, по причине их возможностей масштабирования, сегментирования, автоматизации операций и обслуживания, высокой катастрофоустойчивости, а также возможностей по организации многоуровневого хранения по принципу «горячих» и холодных» данных.

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

Аватар Неизвестно

About Алексей Шалагинов

Независимый эксперт
Запись опубликована в рубрике Сетевые технологии, Технологии с метками , , , , . Добавьте в закладки постоянную ссылку.

Оставить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.