hostprofi.ru
Подобрать хостинг
Термин·буква О

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

краткое определение

Объектное хранилище (object storage) — способ хранения данных в виде объектов (файл + метаданные + уникальный ID) в плоском пространстве имён. Масштабируется до эксабайт; доступ через HTTP API (S3-протокол).

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

Как работает

Объектное хранилище проектировалось для хранения огромных объёмов неструктурированных данных: медиафайлы, бэкапы, логи, данные IoT. Не имеет ограничений файловой системы: нет лимита на число файлов в директории, нет проблем с inode. S3 от Amazon — де-факто стандарт API; его совместимость поддерживают: Яндекс Object Storage, Selectel, MinIO, Ceph Object Gateway, Cloud.ru.

Ключевые особенности объектного хранилища: eventual consistency (данные становятся доступны через 10–100 мс после записи), высокая долговечность (Amazon S3 гарантирует 99.999999999% — «11 девяток»), встроенная репликация между зонами доступности, версионирование объектов.

Объектное хранилище не является файловой системой POSIX: нет атомарных переименований, нет блокировок файлов. FUSE-монтирование (s3fs, goofys) делает объектное хранилище видимым как директорию, но с высокой latency (~100–500 мс на операцию vs ~1 мс для локального диска).

История

Amazon S3 (март 2006 года) популяризировал концепцию. До этого объектное хранилище использовалось внутренне: Lustre, GPFS. Ceph — open-source объектное хранилище — разработан Сейджем Вейлом (Sage Weil) как часть его PhD, открыт в 2006 году. HDFS (Hadoop Distributed File System, 2006) — схожая идеология, но для MapReduce. OpenStack Swift (2010) — первое крупное open-source объектное хранилище с S3-совместимым API.

Виды хранилищ

ТипПримерLatencyПрименение
ОбъектноеS3, MinIO50–500 мсМедиа, бэкапы, статика
БлочноеEBS, Ceph RBD1–10 мсБД, ОС виртуальных машин
ФайловоеNFS, EFS1–50 мсОбщий доступ нескольких серверов

На что обращать внимание

Для хостинга медиафайлов сайта: загружать в объектное хранилище + раздавать через CDN — дешевле и быстрее, чем хранить на VPS. Исходящий трафик из объектного хранилища обычно тарифицируется дополнительно — учитывать при расчёте стоимости. MinIO позволяет развернуть S3-совместимое хранилище на собственном VPS с нулевыми затратами на трафик внутри одного ЦОД.

Объектное хранилище для бэкапов

Объектное хранилище — оптимально для хранения резервных копий: дешевле блочного хранилища VPS, масштабируется до терабайт без предварительного планирования. Инструменты для синхронизации с S3-совместимым хранилищем: rclone, s3cmd, aws CLI. Off-site backup — основной сценарий использования: дампы PostgreSQL автоматически загружаются в объектное хранилище через Docker-сайдкар или cron. CDN перед объектным хранилищем: CloudFront (AWS), Fastly — раздача статических ассетов через Edge. nginx проксирует запросы к объектному хранилищу через proxy_pass. Ограничения: объектное хранилище не подходит как замена блочному диску для СУБД — нет файловой системы, высокая задержка чтения/записи (10-100 мс против <1 мс у SSD).

Другие термины