Открыть сервис

Azure Blob Storage

Azure Blob Storage — это облачная служба хранения неструктурированных данных, предоставляемая в составе платформы Microsoft Azure. Она предназначена для хранения больших объёмов произвольных данных (объектов), таких как текстовые или бинарные файлы, изображения, видео, аудиозаписи, резервные копии, логи приложений и архивы. Blob Storage является объектным хранилищем, где каждый файл (блоб) хранится как отдельный объект, доступный по уникальному URL-адресу. Служба обеспечивает высокую масштабируемость, отказоустойчивость и доступность данных, а также предоставляет несколько уровней доступа для оптимизации затрат.

История

Azure Blob Storage был запущен в составе платформы Microsoft Azure (первоначально называвшейся Windows Azure) в феврале 2010 года. Изначально служба предоставляла только базовые возможности хранения блобов с единственным уровнем доступа. С развитием облачных технологий и ростом требований к управлению данными, Microsoft регулярно добавляла новые функции: в 2012 году появилась поддержка блочных блобов для больших файлов, в 2014 году — страничные блобы для дисков виртуальных машин, а в 2015 году — дополнительные блобы. В 2016 году была введена концепция уровней доступа (Hot, Cool, Archive), позволяющая экономить средства на хранении редко используемых данных. В 2018 году появилась поддержка иерархического пространства имён для Azure Data Lake Storage Gen2, что расширило возможности Blob Storage для аналитических нагрузок. В последующие годы были добавлены функции, такие как управление жизненным циклом, неизменяемое хранение (immutable storage), а также интеграция с Azure Event Grid для событийно-ориентированной архитектуры.

Архитектура и типы блобов

Основные компоненты

Хранилище Azure Blob Storage организовано иерархически:

  • Учётная запись хранения (Storage Account) — корневой контейнер, в рамках которого создаются все ресурсы. Каждая учётная запись имеет уникальное имя в домене *.blob.core.windows.net.
  • Контейнер (Container) — логическая группа блобов, аналогичная каталогу в файловой системе. Контейнер не может быть вложен в другой контейнер.
  • Блоб (Blob) — единица хранения данных, представляющая собой файл произвольного размера с метаданными.

Типы блобов

Azure Blob Storage поддерживает три типа блобов, различающихся по способу работы с данными:

  • Блочный блоб (Block Blob) — предназначен для хранения больших файлов (до 4,75 ТБ) и оптимизирован для потоковой передачи и произвольной записи данных блоками. Используется для хранения изображений, видео, резервных копий и логов.
  • Страничный блоб (Page Blob) — хранит данные в виде страниц фиксированного размера (512 байт) и обеспечивает произвольный доступ на чтение и запись. Используется для дисков виртуальных машин Azure (VHD-файлы) и баз данных, требующих низкой задержки.
  • Дополнительный блоб (Append Blob) — оптимизирован для операций добавления данных в конец файла. Используется для хранения логов, аудио- и видеозаписей, где требуется последовательная запись.

Уровни доступа

Для оптимизации затрат на хранение Azure Blob Storage предоставляет три уровня доступа, которые можно задать на уровне учётной записи, контейнера или отдельного блоба:

  • Горячий уровень (Hot) — предназначен для часто используемых данных. Обеспечивает низкую задержку доступа, но имеет более высокую стоимость хранения.
  • Холодный уровень (Cool) — для редко используемых данных (доступ 1–2 раза в месяц). Стоимость хранения ниже, чем на горячем уровне, но выше стоимость операций чтения.
  • Архивный уровень (Archive) — для долгосрочного хранения данных, которые практически не используются. Самая низкая стоимость хранения, но данные недоступны для немедленного чтения — требуется предварительное восстановление (rehydration), которое может занимать до 15 часов.

Управление уровнями доступа может быть автоматизировано с помощью правил жизненного цикла, которые перемещают данные между уровнями на основе заданных условий (например, возраст файла).

Безопасность и управление доступом

Azure Blob Storage предоставляет несколько механизмов для защиты данных:

  • Авторизация на основе Azure Active Directory (Azure AD) — позволяет управлять доступом с помощью ролей (RBAC), например, роли «Читатель данных Blob-объектов хранилища» или «Участник данных Blob-объектов хранилища».
  • Подписанные URL-адреса (SAS) — временные токены, предоставляющие делегированный доступ к конкретным ресурсам (контейнеру или блобу) с заданными правами (чтение, запись, удаление) и ограниченным сроком действия.
  • Ключи доступа (Account Keys) — два ключа, генерируемые при создании учётной записи, которые дают полный доступ к хранилищу. Рекомендуется использовать их только для административных задач.
  • Шифрование — все данные шифруются на стороне сервера с использованием ключей, управляемых Microsoft (SSE) или пользовательских ключей (CMK). Поддерживается также шифрование на стороне клиента.
  • Брандмауэр и виртуальные сети — ограничение доступа по IP-адресам или через виртуальные сети Azure.
  • Неизменяемое хранение (Immutable Storage) — защита данных от изменения или удаления на заданный период времени (WORM-политика). Используется для соответствия нормативным требованиям (например, SEC 17a-4).

Применение

Azure Blob Storage используется в самых разных сценариях:

  • Хранение файлов и медиа-контента — веб-сайты, мобильные приложения и сервисы хранят изображения, видео, документы и другие пользовательские файлы.
  • Резервное копирование и восстановление — создание резервных копий баз данных, виртуальных машин и приложений с возможностью восстановления на любой момент времени.
  • Аналитика и большие данныеAzure Data Lake Storage Gen2, построенный на основе Blob Storage, используется для хранения данных в форматах Parquet, Avro, CSV и других для аналитических нагрузок с использованием Azure Synapse Analytics, Apache Spark или Databricks.
  • Архивация и долгосрочное хранение — перемещение редко используемых данных на архивный уровень для снижения затрат.
  • Хранение логов и телеметрии — сбор и хранение логов приложений, системных событий и данных мониторинга с использованием дополнительных блобов.
  • Виртуальные машины — страничные блобы используются в качестве дисков для виртуальных машин Azure (управляемые диски).
  • Событийно-ориентированные архитектуры — интеграция с Azure Event Grid позволяет автоматически запускать функции (Azure Functions) или другие сервисы при создании, изменении или удалении блобов.

Производительность и масштабирование

Azure Blob Storage обеспечивает высокую масштабируемость: одна учётная запись хранения может хранить до 500 ТБ данных, а максимальный размер одного блочного блоба составляет 4,75 ТБ (при использовании блоков по 100 МБ). Для достижения высокой пропускной способности рекомендуется использовать несколько учётных записей или распределять нагрузку по разделам (partitions). Служба поддерживает до 20 000 запросов в секунду на один раздел, а для блочных блобов — до 60 МБ/с на запись и до 60 МБ/с на чтение. Для критически важных приложений можно использовать гео-избыточное хранение (GRS), которое реплицирует данные в удалённый регион, или зонально-избыточное хранение (ZRS), обеспечивающее отказоустойчивость в пределах одного региона.

Ограничения

Несмотря на широкие возможности, Azure Blob Storage имеет ряд ограничений:

  • Максимальный размер одного блочного блоба — 4,75 ТБ (при использовании блоков по 100 МБ) или 190,7 ТБ (при использовании блоков по 4 МБ).
  • Максимальный размер одного дополнительного блоба — 195 ГБ.
  • Максимальное количество блоков в одном блобе — 50 000.
  • Максимальный размер одного страничного блоба — 8 ТБ.
  • Задержка доступа к данным на архивном уровне может составлять от 1 до 15 часов в зависимости от выбранного варианта восстановления.
  • Операции записи на горячем и холодном уровнях имеют ограничение по пропускной способности (до 60 МБ/с на один раздел).

Сравнение с другими облачными хранилищами

Azure Blob Storage является прямым конкурентом Amazon S3 (AWS) и Google Cloud Storage (GCP). Все три сервиса предоставляют объектное хранение с похожими возможностями (уровни доступа, шифрование, управление жизненным циклом). Однако Azure Blob Storage отличается глубокой интеграцией с экосистемой Microsoft (Azure AD, Active Directory, .NET, PowerShell) и наличием дополнительных типов блобов (страничные и дополнительные), что делает его более подходящим для специфических сценариев, таких как диски виртуальных машин и потоковая запись логов.

Интересные факты

  • Azure Blob Storage лежит в основе многих сервисов Microsoft, включая OneDrive, Microsoft Teams и Xbox Live.
  • В 2020 году Microsoft объявила, что Azure Blob Storage хранит более 100 триллионов объектов (блобов) по всему миру.
  • Служба поддерживает протокол NFS (Network File System) начиная с 2021 года, что позволяет монтировать хранилище как сетевой диск в Linux-системах.
  • Для миграции больших объёмов данных в Azure Blob Storage Microsoft предлагает физическое устройство Azure Data Box, которое может вмещать до 100 ТБ данных.

Источники

  1. Документация Microsoft Azure: "Introduction to Azure Blob Storage" (learn.microsoft.com).
  2. Microsoft Azure: "Storage account overview" (learn.microsoft.com).
  3. Microsoft Azure: "Access tiers for blob data" (learn.microsoft.com).
  4. Microsoft Azure: "Security recommendations for Blob Storage" (learn.microsoft.com).
  5. Microsoft Azure: "Scalability and performance targets for Blob Storage" (learn.microsoft.com).
  6. Microsoft Azure: "Immutable storage for blob data" (learn.microsoft.com).
  7. Microsoft Azure: "Azure Data Lake Storage Gen2" (learn.microsoft.com).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →