Открыть сервис

Объектное хранилище

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

История

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

Ранние разработки

Одним из первых коммерческих объектных хранилищ стала система Centera компании EMC (ныне Dell EMC), выпущенная в 2002 году. Centera была разработана для долговременного хранения фиксированного контента (Fixed Content Storage, CAS) и использовала собственный протокол доступа. В 2004 году компания Seagate представила технологию Object-based Storage Device (OSD), стандартизированную в спецификации T10 OSD.

Эра облачных вычислений

Настоящий прорыв объектного хранения произошёл с развитием облачных платформ. В 2006 году компания Amazon Web Services (AWS) запустила сервис Amazon S3 (Simple Storage Service), который стал де-факто стандартом для объектного хранения в облаке. Протокол S3 (RESTful API) был открыт и быстро принят другими поставщиками. Вслед за AWS свои объектные хранилища представили Google (Google Cloud Storage, 2010), Microsoft (Azure Blob Storage, 2010) и другие. В России облачные объектные хранилища предоставляются такими провайдерами, как Яндекс Облако (Object Storage), VK Cloud (Cloud Storage) и Selectel (Object Storage).

Развитие on-premise решений

Параллельно с облачными сервисами развивались программные решения для развёртывания объектного хранилища на собственной инфраструктуре организаций. Среди них выделяются OpenStack Swift (проект с открытым исходным кодом, запущен в 2010 году), Ceph (также с открытым кодом, изначально создан для блочного хранения, но включает объектный интерфейс RADOS Gateway), MinIO (высокопроизводительное объектное хранилище, совместимое с S3) и Scality RING. Эти системы позволяют строить частные облака и гибридные решения.

Архитектура и принцип работы

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

Основные компоненты объекта

Каждый объект состоит из трёх частей:

  1. Данные (Data): Непосредственно содержимое файла, документа, изображения или любого другого двоичного потока.
  2. Метаданные (Metadata): Расширенная описательная информация об объекте. Она может включать как системные метаданные (размер, дата создания, тип содержимого, контрольная сумма), так и пользовательские метаданные, задаваемые произвольно (например, «автор», «проект», «теги»). Наличие богатых метаданных — ключевое отличие объектного хранения от файлового, где метаданные ограничены (имя, дата, права доступа).
  3. Уникальный идентификатор (ID): Глобально уникальный адрес объекта, обычно представляющий собой длинную строку символов (например, хеш-сумму). Этот ID используется для доступа к объекту через API.

Доступ к данным

Доступ к объектам осуществляется не через пути файловой системы (например, /home/user/docs/file.pdf), а через HTTP-запросы к API. Наиболее распространённым протоколом является Amazon S3 REST API, который стал отраслевым стандартом. Типичные операции включают:

  • PUT Object — загрузка объекта.
  • GET Object — скачивание объекта.
  • DELETE Objectудаление объекта.
  • LIST Objects — получение списка объектов в бакете.

Масштабируемость и распределённость

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

Классификация

Объектные хранилища можно классифицировать по нескольким признакам.

По месту развёртывания

  • Публичные облачные объектные хранилища: Предоставляются как услуга (SaaS/PaaS) облачными провайдерами. Пользователь платит только за фактически используемый объём и количество операций. Примеры: Amazon S3, Google Cloud Storage, Azure Blob Storage.
  • Частные (on-premise) объектные хранилища: Развёртываются на собственных серверах организации с использованием специализированного ПО (Ceph, MinIO, OpenStack Swift) или аппаратных решений (Dell EMC ECS, NetApp StorageGRID, Hitachi Content Platform).
  • Гибридные объектные хранилища: Сочетают в себе локальное развёртывание и облачные ресурсы, позволяя, например, хранить «горячие» данные локально, а редко используемые — в облаке.

По функциональному назначению

  • Хранилища общего назначения: Универсальные системы для хранения любых типов данных.
  • Архивные хранилища: Оптимизированы для долговременного хранения редко используемых данных с низкой стоимостью хранения, но более высокими задержками доступа (например, Amazon S3 Glacier).
  • Хранилища для резервного копирования: Специализируются на хранении резервных копий, часто поддерживают дедупликацию и сжатие.
  • Контент-репозитории: Оптимизированы для хранения и доставки медиаконтента (изображений, видео) с высокой пропускной способностью.

Преимущества и недостатки

Преимущества

  • Неограниченная масштабируемость: Ёмкость хранилища может быть увеличена до эксабайт и более простым добавлением узлов.
  • Высокая отказоустойчивость: За счёт репликации и эластичности система продолжает работать при сбоях оборудования.
  • Гибкость метаданных: Возможность добавлять произвольные метаданные упрощает поиск, категоризацию и управление данными.
  • Доступ через API: Интеграция с приложениями и автоматизация процессов управления данными.
  • Низкая стоимость хранения: Особенно для архивных и редко используемых данных, благодаря использованию недорогих дисков и эффективному управлению.
  • Поддержка версионирования: Возможность хранить несколько версий одного объекта, что защищает от случайного удаления или изменения.

Недостатки

  • Более высокая задержка доступа: По сравнению с блочным хранением (SAN) или локальными файловыми системами, доступ к объектам через HTTP может быть медленнее, что делает объектное хранение непригодным для высоконагруженных транзакционных баз данных.
  • Невозможность произвольной модификации: Объект является неделимым (immutable). Для изменения даже одного байта данных необходимо загрузить весь объект, модифицировать его и загрузить обратно целиком.
  • Сложность с блокировками: Традиционные механизмы блокировки файлов (file locking) не поддерживаются, что может создавать проблемы при одновременном редактировании данных несколькими пользователями.
  • Зависимость от API: Привязка к конкретному протоколу (например, S3) может вызвать сложности при миграции между разными поставщиками, хотя стандартизация S3 снижает эту проблему.

Применение

Объектное хранилище является основой для множества современных ИТ-решений и сервисов.

Облачные вычисления и SaaS

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

Медиа и развлечения

  • Хранилище для видео- и аудиоконтента (стриминговые сервисы, библиотеки фильмов).
  • Хранение изображений и графики для веб-сайтов и приложений.
  • Управление цифровыми активами (Digital Asset Management, DAM).

Наука и исследования

  • Хранение результатов научных экспериментов, геномных данных, данных с телескопов и спутников.
  • Архивация больших объёмов данных (Big Data).

Резервное копирование и архивирование

  • Долговременное хранение резервных копий баз данных, файловых серверов и корпоративных приложений.
  • Создание «холодных» архивов для соблюдения нормативных требований (например, в банковской сфере).

Искусственный интеллект и машинное обучение

  • Хранение наборов данных (датасетов) для обучения моделей.
  • Хранение результатов работы моделей и артефактов обучения.

Интересные факты

  • Термин «объектное хранилище» иногда путают с «объектной базой данных», но это разные технологии. Объектная база данных (ODBMS) хранит объекты в смысле ООП (с методами и состоянием), в то время как объектное хранилище — это просто способ хранения произвольных данных.
  • Протокол Amazon S3 настолько широко распространён, что многие производители аппаратного и программного обеспечения (например, MinIO, Ceph, NetApp) гарантируют совместимость своих продуктов именно с этим API.
  • В некоторых объектных хранилищах (например, в Ceph) используется алгоритм CRUSH (Controlled Replication Under Scalable Hashing) для определения местоположения данных без централизованной таблицы маршрутизации, что повышает масштабируемость и отказоустойчивость.

Источники

  1. Объектное хранение данных: архитектура, преимущества и применение. (Habr, 2023)
  2. Amazon S3 — объектное хранилище, созданное для хранения и извлечения любого объема данных из любого источника. (AWS Documentation)
  3. What is Object Storage? (IBM Cloud Learn Hub)
  4. Ceph: A Distributed Object Store and File System. (Ceph Documentation)
  5. MinIO: High Performance, Kubernetes Native Object Storage. (MinIO Documentation)
  6. OpenStack Swift: Object Storage for OpenStack. (OpenStack Documentation)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →