Cloud

Облачное хранилище

Хранение данных на инфраструктуре провайдера с доступом по сети или 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-сервер