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

Object Store

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

История

Предпосылки появления

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

Разработка и стандартизация

В 1995 году группа исследователей из Университета Карнеги-Меллон под руководством Гарта Гибсона представила концепцию сетевого хранилища объектов (NASD — Network Attached Secure Disks). В 1997 году была опубликована спецификация OSD (Object-based Storage Device), которая позже легла в основу стандарта ANSI T10 OSD. В 2000-х годах коммерческие компании, такие как EMC (с системой Centera, 2002 год) и IBM, начали выпускать специализированные объектные хранилища для архивов и фиксированного контента.

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

С 2006 года, с запуском сервиса Amazon S3 (Simple Storage Service), объектные хранилища стали доминирующей моделью хранения в публичных облаках. Amazon S3 установил де-факто стандарт API для объектного хранения, который позже был воспроизведён в открытых реализациях (например, OpenStack Swift, MinIO, Ceph). В 2010-х годах объектные хранилища начали активно внедряться в корпоративных дата-центрах для замены традиционных ленточных библиотек и NAS-систем.

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

Структура объекта

Каждый объект состоит из трёх компонентов:

  • Данные — произвольная двоичная последовательность (файл, блоб, поток).
  • Метаданные — набор пар «ключ-значение», описывающих объект (размер, тип контента, дата создания, пользовательские теги).
  • Уникальный идентификатор — обычно хеш-сумма (например, MD5, SHA-256) или UUID, вычисляемый на основе данных и метаданных.

Плоское пространство имён

В отличие от файловых систем с иерархией папок, объектные хранилища используют плоское (линейное) пространство имён. Объекты группируются в контейнеры, называемые бакетами (buckets) в Amazon S3 или контейнерами (containers) в OpenStack Swift. Бакет не может содержать вложенные бакеты — все объекты находятся на одном уровне, а имитация иерархии достигается через префиксы в именах объектов (например, images/2024/photo.jpg).

API и протоколы доступа

Основной способ взаимодействия с объектным хранилищем — RESTful API (Representational State Transfer) через HTTP/HTTPS. Стандартные операции включают:

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

Популярные реализации также поддерживают протоколы S3 API (совместимость с Amazon S3), Swift API, а также шлюзы для доступа по NFS, SMB или iSCSI.

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

Объектные хранилища проектируются для горизонтального масштабирования: добавление новых узлов хранения (серверов) автоматически увеличивает общую ёмкость и производительность. Данные обычно реплицируются (копируются на несколько узлов) или используют erasure coding (кодирование с избыточностью) для обеспечения отказоустойчивости. Распределённые объектные системы (например, Ceph, MinIO, Scality) могут состоять из сотен и тысяч узлов, обслуживая эксабайты данных.

Классификация объектных хранилищ

По типу развёртывания

  • Публичные облачные — предоставляются как сервис (SaaS/IaaS) провайдерами: Amazon S3, Google Cloud Storage, Microsoft Azure Blob Storage, Яндекс Object Storage (в РФ). Пользователь платит за фактически используемый объём и трафик.
  • Частные (on-premises) — развёртываются в инфраструктуре организации на собственном оборудовании. Примеры: MinIO, Ceph, Dell EMC ECS, NetApp StorageGRID.
  • Гибридные — сочетают локальное и облачное хранение, часто с единой панелью управления.

По способу доступа

  • Чистые объектные — доступ только через API (S3, Swift). Пример: Amazon S3.
  • С поддержкой файлового доступа — через шлюзы или встроенные протоколы (NFS, SMB). Пример: NetApp StorageGRID, Dell EMC ECS.
  • С поддержкой блочного доступа — редко, но встречается в универсальных системах (Ceph может предоставлять блочные устройства через RBD).

По архитектуре

  • Симметричные — все узлы равноправны, выполняют функции хранения и обработки запросов (Ceph, MinIO).
  • Асимметричные — выделены узлы-менеджеры (metadata servers) и узлы хранения (Swift, Dell EMC ECS).

Применение

Облачные сервисы и веб-приложения

Объектные хранилища являются основой для хранения статического контента веб-сайтов (изображения, CSS, JavaScript), пользовательских файлов (фотографии, документы), а также для работы CDN (Content Delivery Network). Например, Amazon S3 используется для хостинга статических сайтов.

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

Благодаря низкой стоимости хранения и высокой масштабируемости, объектные хранилища вытесняют ленточные библиотеки. Системы резервного копирования (Veeam, Commvault) поддерживают запись напрямую в S3-совместимые хранилища.

Аналитика и большие данные

Объектные хранилища служат единым репозиторием для данных в системах Hadoop, Spark, Presto. Форматы данных (Parquet, ORC, Avro) и инструменты (Apache Hive, Apache Iceberg) оптимизированы для работы с объектными хранилищами.

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

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

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

Хранение результатов экспериментов, геномных данных, спутниковых снимков. Например, CERN использует объектное хранилище для данных Большого адронного коллайдера.

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

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

  • Неограниченная масштабируемость — объём хранилища может расти до эксабайтов без реструктуризации.
  • Низкая стоимость — использование стандартного оборудования (x86-серверы, SATA-диски) и erasure coding снижает затраты на хранение.
  • Гибкость метаданных — пользователь может добавлять произвольные теги для поиска и классификации.
  • Отказоустойчивость — репликация и распределение данных обеспечивают сохранность при выходе из строя узлов.
  • Доступ через HTTP — упрощает интеграцию с веб-приложениями и микросервисами.

Недостатки

  • Задержки доступа — объектные хранилища обычно медленнее блочных (SSD) для операций с малыми блоками данных.
  • Отсутствие атомарных операций — трудно реализовать транзакции, блокировки файлов (как в файловых системах).
  • Сложность с модификацией — объекты обычно immutable (неизменяемые), изменение требует перезаписи всего объекта.
  • Зависимость от API — привязка к конкретному протоколу (S3, Swift) может создать vendor lock-in.

Реализации

Коммерческие

  • Amazon S3 — лидер рынка, де-факто стандарт API.
  • Google Cloud Storage — интеграция с экосистемой Google Cloud.
  • Microsoft Azure Blob Storage — поддержка горячего, холодного и архивного хранения.
  • Dell EMC ECS — корпоративное решение для гибридных сред.
  • NetApp StorageGRID — объектное хранилище с поддержкой S3 и Swift.

Открытые (Open Source)

  • Ceph — распределённая система, предоставляющая объектное, блочное и файловое хранение. Широко используется в облачных платформах (OpenStack).
  • MinIO — лёгкое, высокопроизводительное S3-совместимое хранилище, часто применяется в Kubernetes.
  • OpenStack Swift — объектное хранилище для платформы OpenStack.
  • Scality — коммерческое решение с открытым ядром, поддерживает S3 и файловый доступ.

Российские разработки

  • Яндекс Object Storage — облачный сервис, совместимый с S3 API, входит в экосистему Yandex Cloud.
  • VK Cloud Storage — объектное хранилище от VK (ранее Mail.ru Cloud Solutions), также совместимо с S3.
  • Arenadata Object Storage — корпоративное решение на базе Ceph для больших данных.
  • Р7-Объектное хранилище — продукт компании «Р7» для государственных и коммерческих организаций.

Безопасность

Аутентификация и авторизация

Доступ к объектам контролируется через ключи доступа (Access Key, Secret Key) и политики IAM (Identity and Access Management). В Amazon S3 используются bucket policies и ACL (Access Control Lists). Поддерживается подпись запросов (Signature Version 4) для защиты от подделки.

Шифрование

Данные могут шифроваться на стороне клиента (перед отправкой), на стороне сервера (SSE-S3, SSE-KMS) или на уровне дисков. Поддерживается шифрование в покое (at rest) и в транзите (TLS/SSL).

Соответствие стандартам

Объектные хранилища сертифицируются по стандартам SOC 2, ISO 27001, HIPAA, GDPR, PCI DSS. В РФ — соответствие требованиям 152-ФЗ «О персональных данных» и ГОСТ Р 57580.1.

Перспективы развития

Интеграция с Kubernetes

Объектные хранилища становятся стандартным бэкендом для StatefulSet-приложений в Kubernetes через CSI (Container Storage Interface). MinIO и Ceph активно развивают поддержку Kubernetes.

Хранение на основе NVMe и Persistent Memory

Использование быстрых SSD (NVMe) и памяти Intel Optane позволяет снизить задержки объектных хранилищ, приближая их к производительности блочных систем.

Многоуровневое хранение (Tiering)

Автоматическое перемещение объектов между горячим (SSD), тёплым (HDD) и холодным (лента/архив) уровнями в зависимости от частоты доступа.

Поддержка S3 Select и Lambda

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

Источники

  1. Gibson, G. A., et al. "A Cost-Effective, High-Bandwidth Storage Architecture." Proceedings of the 8th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 1998.
  2. Amazon Web Services. "Amazon S3 Developer Guide." AWS Documentation, 2024.
  3. Weil, S. A., et al. "Ceph: A Scalable, High-Performance Distributed File System." Proceedings of the 7th Symposium on Operating Systems Design and Implementation (OSDI), 2006.
  4. OpenStack Foundation. "OpenStack Swift Object Storage Documentation." OpenStack Docs, 2024.
  5. MinIO, Inc. "MinIO Object Storage Documentation." MinIO Docs, 2024.
  6. NetApp, Inc. "StorageGRID Object Storage Documentation." NetApp Docs, 2024.
  7. Яндекс.Облако. "Object Storage. Руководство пользователя." Yandex Cloud Docs, 2024.
  8. Dell EMC. "ECS: Enterprise Object Storage." Dell Technologies Documentation, 2023.
Загружаем BFOmetr…