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

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

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

Принцип работы

В отличие от файловых систем, где данные организованы в каталоги и подкаталоги, объектное хранилище управляется плоским пространством имён (namespace). Объект адресуется по ключу вида bucket/key, а не по пути в файловой системе. Ключ и метаданные хранятся в индексе, что упрощает масштабирование: добавление узлов не требует перераспределения данных между узлами, как в распределённых файловых системах.

Ключевые особенности модели:

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

По типу развёртывания объектные хранилища подразделяются на три категории:

ТипОписаниеПримеры
Публичное (облачное)Управляется внешним провайдером, доступно по публичному интернетуAmazon S3, Яндекс Облако, Selectel
Приватное (on-premise)Разворачивается в собственном дата-центре организацииMinIO, Ceph RGW, Dell ECS, Huawei OceanStor
ГибридноеСочетает локальное хранилище и облачный ресурскомбинированные решения Ceph и MinIO

Протоколы и совместимость

Большинство объектных хранилищ реализуют REST API, совместимый с Amazon S3 — де-факто стандартом отрасли. Помимо S3, распространены протоколы:

  • S3-compatible API — наиболее универсальный интерфейс, поддерживаемый большинством решений.
  • OpenStack Swift — протокол, разработанный для одноимённого облака.
  • NFS/SMB — эмуляция файлового доступа поверх объектного хранилища (например, через MinIO Gateway или Ceph RGW).
  • HDFS — эмуляция для совместимости с Hadoop-экосистемой.

Применение

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

  • Резервное копирование и архивирование — дешёвое долгосрочное хранение резервных копий.
  • Медиаконтент — хранение и раздача видео, изображений, аудио.
  • Big Data и аналитика — хранение сырых данных для последующей обработки.
  • DevOps и CI/CD — артефакты сборок, образы контейнеров.
  • Веб-приложения — статические ресурсы, CDN-кэши.
  • Хранение логов и телеметрии — масштабируемые потоки событий.

Ограничения

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

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

Развитие и перспективы

В 2010-х годах объектные хранилища стали стандартом для облачных провайдеров, а в 2020-х — для приватных дата-центров. Популярность набирают решения с открытым исходным кодом: MinIO (написан на Go, поддерживает S3 API) и Ceph RGW (часть кластера Ceph). В России объектные хранилища предоставляют Яндекс Облако, Selectel, Mail.ru Cloud Solutions, а также отечественные системы на базе Ceph и MinIO, включая решения для импортозамещения в госсекторе.

Источники:

  • Amazon S3 API Reference
  • Документация MinIO
  • Документация Ceph (Object Gateway)
  • Материалы OpenStack Swift
  • Статьи о распределённых хранилищах данных (ACM Queue, USENIX ;login:)
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru