Объектное хранилище
Объектное хранилище (также объектное хранение, объектно-ориентированное хранение) — это архитектура хранения данных, которая управляет информацией в виде объектов, а не в виде иерархии файлов (файловое хранилище) или блоков фиксированного размера (блочное хранилище). Каждый объект включает в себя сами данные, метаданные (описательную информацию о данных) и уникальный идентификатор, что позволяет осуществлять доступ к данным через 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) или контейнером.
Основные компоненты объекта
Каждый объект состоит из трёх частей:
- Данные (Data): Непосредственно содержимое файла, документа, изображения или любого другого двоичного потока.
- Метаданные (Metadata): Расширенная описательная информация об объекте. Она может включать как системные метаданные (размер, дата создания, тип содержимого, контрольная сумма), так и пользовательские метаданные, задаваемые произвольно (например, «автор», «проект», «теги»). Наличие богатых метаданных — ключевое отличие объектного хранения от файлового, где метаданные ограничены (имя, дата, права доступа).
- Уникальный идентификатор (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) для определения местоположения данных без централизованной таблицы маршрутизации, что повышает масштабируемость и отказоустойчивость.
Источники
- Объектное хранение данных: архитектура, преимущества и применение. (Habr, 2023)
- Amazon S3 — объектное хранилище, созданное для хранения и извлечения любого объема данных из любого источника. (AWS Documentation)
- What is Object Storage? (IBM Cloud Learn Hub)
- Ceph: A Distributed Object Store and File System. (Ceph Documentation)
- MinIO: High Performance, Kubernetes Native Object Storage. (MinIO Documentation)
- OpenStack Swift: Object Storage for OpenStack. (OpenStack Documentation)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →