Объектное хранение данных
Объектное хранение данных (англ. object storage) — это архитектура хранения данных, которая управляет информацией в виде объектов, а не в виде иерархии файлов (файловое хранилище) или блоков фиксированного размера (блочное хранилище). Каждый объект включает в себя сами данные, уникальный идентификатор (ключ) и метаданные — произвольный набор атрибутов, описывающих объект. Объектное хранение предназначено для работы с большими объёмами неструктурированных данных (изображения, видео, резервные копии, логи, документы) и обеспечивает высокую масштабируемость, доступность и долговечность за счёт распределённой архитектуры.
История
Концепция объектного хранения возникла в конце 1990-х годов как ответ на ограничения традиционных файловых систем и систем хранения на базе сетей хранения данных (SAN). Первые коммерческие реализации были предложены компаниями EMC (Centera, 2002) и IBM (DR550, 2003), ориентированными на долговременное хранение и архивирование. Однако настоящий прорыв произошёл с развитием облачных вычислений. В 2006 году компания Amazon Web Services (AWS) запустила сервис Amazon Simple Storage Service (S3), который стал де-факто стандартом объектного хранения в публичных облаках. Позднее аналогичные решения появились у Google (Google Cloud Storage, 2010) и Microsoft (Azure Blob Storage, 2010).
В России объектное хранение активно развивается с 2010-х годов. Крупные провайдеры, такие как Yandex Cloud (сервис Object Storage, запущен в 2018 году) и VK Cloud (сервис Object Storage), предлагают совместимые с S3 API решения. В корпоративном сегменте популярны продукты на базе открытого ПО (например, MinIO) и аппаратно-программные комплексы российских вендоров (например, «Аэродиск»).
Принципы работы
Объектное хранение отличается от традиционных моделей по трём ключевым аспектам: идентификация, метаданные и архитектура.
Идентификация и адресация
В отличие от файлового хранилища, где доступ к данным осуществляется через путь в иерархии папок (например, /home/user/file.txt), в объектном хранилище каждый объект имеет уникальный идентификатор (ключ), который может быть произвольной строкой. Данные группируются в логические контейнеры — бакеты (bucket). Доступ к объекту осуществляется по URL-адресу вида: http://storage.example.com/bucket/object-key`.
Метаданные
Объект включает не только данные, но и расширенные метаданные, которые могут задаваться пользователем произвольно. Это позволяет хранить вместе с файлом информацию о его типе, дате создания, авторе, тегах, правах доступа и других характеристиках. Метаданные используются для поиска, фильтрации и управления жизненным циклом данных.
Архитектура
Объектное хранилище строится на распределённой архитектуре с использованием плоского адресного пространства (без вложенных папок). Данные реплицируются или кодируются с использованием алгоритмов коррекции ошибок (например, Reed-Solomon) и распределяются по множеству узлов (серверов). Это обеспечивает:
- Масштабируемость — возможность увеличивать ёмкость до эксабайт и более без перестройки архитектуры.
- Долговечность — типичная гарантия сохранности данных составляет 99,999999999% (11 девяток) для облачных сервисов.
- Доступность — данные остаются доступными даже при выходе из строя нескольких узлов.
Классификация
Объектные хранилища можно классифицировать по нескольким признакам.
По месту развёртывания
- Публичные облачные хранилища — предоставляются как сервис (SaaS/IaaS) провайдерами (AWS S3, Google Cloud Storage, Yandex Object Storage, VK Cloud Object Storage). Пользователь платит за объём хранения и трафик.
- Приватные (on-premises) хранилища — развёртываются на собственной инфраструктуре организации. Примеры: MinIO, Ceph, Dell EMC ECS, Hitachi Content Platform (HCP).
- Гибридные хранилища — комбинируют локальное и облачное хранение, часто с использованием единого API.
По типу доступа
- S3-совместимые — используют API, совместимый с Amazon S3 (наиболее распространённый стандарт де-факто).
- OpenStack Swift — протокол, используемый в облачной платформе OpenStack.
- Проприетарные — собственные протоколы, несовместимые с другими системами (например, старые версии EMC Centera).
По назначению
- Архивное хранение — для долговременного хранения редко используемых данных (например, Amazon Glacier, Yandex Ice Storage).
- Хранение резервных копий — для бэкапов и аварийного восстановления.
- Хранение контента — для медиафайлов, веб-ресурсов, CDN.
- Хранение больших данных — для аналитики, машинного обучения, логов.
Применение
Объектное хранение используется в самых разных сценариях, где требуется надёжное и масштабируемое хранение неструктурированных данных.
Резервное копирование и аварийное восстановление
Объектные хранилища часто применяются для хранения резервных копий баз данных, виртуальных машин и файловых серверов. Благодаря высокой долговечности и географической распределённости они обеспечивают защиту от потери данных при катастрофах.
Хостинг контента и веб-приложения
Статические файлы (изображения, CSS, JavaScript, видео) размещаются в объектном хранилище и раздаются через CDN. Это снижает нагрузку на веб-серверы и ускоряет загрузку страниц.
Аналитика и машинное обучение
Объектные хранилища служат «озёрами данных» (data lake), где хранятся сырые данные для последующей обработки. Инструменты анализа (например, Apache Spark, Presto) могут напрямую читать данные из объектного хранилища.
Архивное хранение
Для долговременного хранения документов, медицинских снимков, юридических записей и других данных, к которым обращаются редко, но которые должны храниться годами или десятилетиями.
Медиа и развлечения
Видео- и аудиофайлы, изображения в высоком разрешении, игровые ассеты — всё это типичные примеры объектов, хранящихся в объектных хранилищах.
Преимущества и недостатки
Преимущества
- Неограниченная масштабируемость — ёмкость и производительность могут увеличиваться горизонтально.
- Низкая стоимость хранения — особенно для архивных и редко используемых данных.
- Встроенная защита данных — репликация, кодирование, контроль версий.
- Гибкость метаданных — возможность индексировать и искать данные по произвольным атрибутам.
- Простота доступа через HTTP/HTTPS — не требуется монтирование файловых систем.
Недостатки
- Высокая задержка доступа — объектное хранение не подходит для приложений, требующих низкой задержки (например, базы данных в реальном времени).
- Отсутствие поддержки произвольной записи — объекты обычно записываются целиком и не могут быть изменены частично (только перезапись).
- Сложность миграции — перенос больших объёмов данных между разными объектными хранилищами может быть трудоёмким.
- Зависимость от API — привязка к конкретному протоколу (например, S3) может ограничивать совместимость.
Сравнение с другими моделями хранения
| Характеристика | Файловое хранилище | Блочное хранилище | Объектное хранилище |
|---|---|---|---|
| Единица хранения | Файл | Блок | Объект |
| Доступ | Через файловую систему (NFS, SMB) | Через блочное устройство (iSCSI, FC) | Через HTTP/HTTPS (API) |
| Масштабируемость | Ограничена (до десятков ТБ) | Ограничена (до сотен ТБ) | Практически неограничена |
| Задержка | Низкая | Очень низкая | Высокая |
| Метаданные | Ограниченные (имя, размер, дата) | Минимальные | Расширенные (произвольные) |
| Типичное применение | Общие файлы, документы | Базы данных, виртуальные машины | Резервные копии, медиа, архивы |
Реализации
Публичные облачные сервисы
- Amazon S3 — наиболее популярное объектное хранилище, ставшее стандартом.
- Google Cloud Storage — с поддержкой различных классов хранения (Standard, Nearline, Coldline, Archive).
- Azure Blob Storage — с поддержкой горячего, холодного и архивного уровней.
- Yandex Object Storage — российский сервис, совместимый с S3 API.
- VK Cloud Object Storage — российский сервис, также совместимый с S3 API.
Локальные (on-premises) решения
- MinIO — высокопроизводительное объектное хранилище с открытым исходным кодом, совместимое с S3.
- Ceph — распределённая система хранения, поддерживающая объектный, блочный и файловый интерфейсы.
- Dell EMC ECS — корпоративное решение для гибридных и частных облаков.
- Hitachi Content Platform (HCP) — объектное хранилище для архивов и контента.
Российские разработки
- «Аэродиск» — объектное хранилище на базе собственной платформы, сертифицированное для использования в государственных информационных системах.
- YADRO — разрабатывает объектное хранилище TATLIN (на базе Ceph) для корпоративного сектора.
Интересные факты
- Amazon S3 был запущен в 2006 году и первоначально использовался только для хранения статических веб-сайтов. Сегодня это одна из ключевых служб AWS.
- В объектном хранилище можно хранить до 5 терабайт в одном объекте (ограничение Amazon S3).
- Алгоритм Reed-Solomon, используемый во многих объектных хранилищах, позволяет восстанавливать данные при потере до 50% узлов (в зависимости от конфигурации).
- Объектное хранение лежит в основе многих современных сервисов: Netflix, Spotify, Dropbox, Instagram (продукт Meta, признанной экстремистской и запрещённой в РФ) используют его для хранения контента.
Источники
- Amazon Web Services. «Amazon Simple Storage Service (S3) Documentation».
- Google Cloud. «Cloud Storage Documentation».
- Microsoft Azure. «Azure Blob Storage Documentation».
- Yandex Cloud. «Object Storage Documentation».
- VK Cloud. «Object Storage Documentation».
- OpenStack. «Swift Documentation».
- Ceph. «Ceph Documentation».
- MinIO. «MinIO Documentation».
- «Аэродиск». «Объектное хранилище данных».
- «Объектное хранение: архитектура, преимущества и применение» — статья на Habr.com.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →