Облачное хранилище
Хранение данных на инфраструктуре провайдера с доступом по сети или API, с оплатой за объём и репликацией ради надёжности.
Что такое облачное хранилище
Облачное хранилище — сервис хранения данных на инфраструктуре провайдера с доступом по сети и оплатой за занятый объём. Данные автоматически размещаются в нескольких копиях, поэтому отказ диска или узла для клиента незаметен.
Отличие от «диска на сервере» в том, что ёмкость перестаёт быть заранее купленной величиной: не нужно угадывать размер на три года вперёд и заказывать расширение массива — вы просто пишете данные.
Отличие от бытовых Google Drive и Яндекс Диска — в интерфейсе: инфраструктурное хранилище рассчитано на программный доступ через API, а не на папку в проводнике.
Три типа хранилищ
Это первое, что нужно выбрать: типы не взаимозаменяемы и решают разные задачи.
| Object storage | Блочное | Файловое | |
|---|---|---|---|
| Единица | Объект целиком | Блок диска | Файл в дереве каталогов |
| Как подключается | HTTPAPI (S3) | Как диск: /dev/vdb | По сети: NFS, SMB |
| Структура | Плоская, «папки» — часть имени | Файловая система сверху | Иерархия каталогов |
| Изменение части | Нет, перезапись объекта | Да, произвольная запись | Да |
| Несколько клиентов сразу | Да | Обычно один сервер | Да |
| Ёмкость | Практически неограниченная | Размер тома | Размер шары |
| Цена за ГБ | Низкая | Высокая | Средняя |
| Под что | Датасеты, бэкапы, медиа, логи | Диски ВМ, БД | Общие каталоги, NAS |
Практическое правило: база данных — на блочном, датасеты и бэкапы — в объектном. Попытка положить активную БД в object storage упирается в невозможность частичной записи, а хранение терабайтов холодных архивов на быстром блочном томе — просто дорого.
S3 как стандарт
S3 API стал де-факто стандартом объектного хранилища: его поддерживают почти все провайдеры и практически любая библиотека. Практический вывод — привязка идёт не к вендору, а к протоколу, и переезд между хранилищами сводится к смене endpoint и ключей.
# Один и тот же клиент работает с любым S3-совместимым хранилищем
aws s3 --endpoint-url https://storage.example.com cp ./dataset.tar.gz s3://ml-datasets/train/
# Локальная альтернатива с тем же API — MinIO
docker run -p 9000:9000 -v /mnt/data:/data minio/minio server /data
MinIO поднимает S3-совместимое хранилище в своём контуре — тот же код работает и с облаком, и с собственным сервером.
Классы хранения и стоимость
Провайдеры делят хранилище на классы по скорости доступа: горячий (частое чтение), холодный (редкое, дешевле за ГБ) и архивный (доступ через минуты-часы, самый дешёвый).
Ловушка в счетах — не хранение, а сопутствующее:
- Исходящий трафик. Скачивание данных наружу обычно платное, и на терабайтах эта строка легко превышает стоимость самого хранения. Внутри одной VPC трафик, как правило, бесплатен — поэтому вычисления держат рядом с данными, а не наоборот.
- Операции. Миллионы мелких запросов тарифицируются отдельно; хранить датасет из миллиона файлов по 10 КБ дороже и медленнее, чем несколько крупных архивов.
- Досрочное удаление из холодных классов часто оплачивается за минимальный срок хранения.
Хранилище для ML-нагрузок
Типичная связка на практике: датасеты и чекпоинты лежат в object storage, а GPU-сервер забирает нужное на локальный NVMe перед запуском. Читать напрямую из хранилища в цикле обучения не стоит: карта за десятки долларов в час не должна ждать сеть — если пайплайн данных не успевает, GPU utilization падает, и вы оплачиваете простой ускорителя. Локальный NVMe как кеш решает это дешевле, чем более быстрое хранилище.
Что где хранить:
- Object storage — сырые датасеты, веса моделей, артефакты, логи экспериментов.
- Локальный NVMe — то, что читается в цикле обучения прямо сейчас.
- Блочный том или файловая шара — persistent volume для состояния сервисов и общие каталоги нескольких узлов.
- Холодный класс — бэкапы и архивы завершённых экспериментов.
Связанные термины
- object storage — основной тип облачного хранилища
- MinIO — S3-совместимое хранилище в своём контуре
- СХД — «необлачный» предок облачных хранилищ
- Резервное копирование — самый частый сценарий использования
- persistent volume — постоянное хранилище для контейнеров
- IaaS — модель, в которую хранилище входит как базовый ресурс
Готовы запустить GPU-задачу?
Запустить GPU-сервер