Easy📖Теория1 min

Хранилище данных Azure

Blob Storage, File Storage, Queue Storage, Table Storage, опции избыточности (LRS/ZRS/GRS)

Хранилище данных Azure

Azure Storage Account -- это единая точка входа для всех сервисов хранения данных в Azure. Один Storage Account может содержать Blob Storage, File Storage, Queue Storage и Table Storage.

Azure Blob Storage

Blob (Binary Large Object) Storage предназначен для хранения неструктурированных данных -- файлов, изображений, видео, документов, бэкапов. Это один из самых используемых сервисов Azure.

Типы блобов

Тип Назначение Максимальный размер
Block Blob Файлы, изображения, видео до 190.7 TB
Append Blob Логи, журналы событий (только добавление) до 195 GB
Page Blob VHD-диски виртуальных машин, произвольный доступ до 8 TB

Block Blob используется в подавляющем большинстве случаев. Данные загружаются блоками, что позволяет эффективно передавать большие файлы.

Уровни доступа (Access Tiers)

Azure Blob Storage предоставляет разные уровни хранения, оптимизированные по стоимости в зависимости от частоты доступа к данным.

Уровень Частота доступа Мин. хранение Стоимость хранения Стоимость операций
Hot Частый Нет Высокая Низкая
Cool Редкий (30+ дней) 30 дней Ниже Выше
Cold Очень редкий (90+ дней) 90 дней Ещё ниже Ещё выше
Archive Долгосрочное хранение (180+ дней) 180 дней Минимальная Максимальная + rehydration

Важный нюанс: данные в уровне Archive недоступны мгновенно. Для доступа необходим процесс rehydration (перевод обратно в Hot или Cool), который может занять от нескольких часов до суток.

Уровень можно изменить для отдельного блоба или настроить автоматическое перемещение через Lifecycle Management.

Контейнеры

Блобы организованы в контейнеры -- аналог папок. Каждый блоб находится внутри контейнера.

Уровни доступа контейнера:

  • Private -- доступ только с авторизацией (по умолчанию)
  • Blob -- анонимное чтение отдельных блобов
  • Container -- анонимное чтение и листинг всех блобов

Azure File Storage

Azure Files -- это управляемые файловые ресурсы (шары), доступные через протоколы SMB и NFS. Это облачная замена традиционных файловых серверов.

Сценарии использования:

  • Замена или дополнение локальных файловых серверов
  • Общий доступ к файлам между виртуальными машинами
  • Хранение конфигурационных файлов для приложений
  • Журналы диагностики и логи
# Создание файлового ресурса
az storage share create \
  --name myfileshare \
  --account-name mystorageaccount \
  --quota 100

Файловые ресурсы можно подключить как сетевой диск к Windows, Linux и macOS.

Azure Queue Storage

Queue Storage -- это сервис для хранения сообщений в очереди. Используется для асинхронной обработки задач и обмена сообщениями между компонентами приложения.

Характеристики:

  • Максимальный размер сообщения: 64 KB
  • Максимальный TTL сообщения: 7 дней (или бесконечно)
  • Миллионы сообщений в одной очереди
  • Доступ через HTTP/HTTPS

Когда использовать: простые очереди для фоновых задач. Для корпоративных сценариев с гарантированной доставкой лучше использовать Azure Service Bus.

Azure Table Storage

Table Storage -- это NoSQL хранилище ключ-значение. Подходит для хранения структурированных нереляционных данных.

Структура данных:

  • PartitionKey -- определяет раздел для распределения данных
  • RowKey -- уникальный идентификатор внутри раздела
  • Properties -- набор пар ключ-значение (до 252 свойств)

Когда использовать: простые сценарии хранения данных без связей, агрегаций и сложных запросов. Для более продвинутых потребностей используйте Cosmos DB с Table API.

Опции избыточности (Redundancy)

Azure Storage реплицирует данные для защиты от сбоев оборудования и стихийных бедствий.

Опция Описание Копий SLA чтения
LRS Locally Redundant Storage 3 копии в одном ДЦ 99.9%
ZRS Zone-Redundant Storage 3 копии в 3 зонах доступности 99.9%
GRS Geo-Redundant Storage 6 копий (3 основной + 3 парный регион) 99.9%
RA-GRS Read-Access GRS Как GRS + чтение из парного региона 99.99%
GZRS Geo-Zone-Redundant Storage 3 копии в 3 зонах + 3 в парном регионе 99.9%
RA-GZRS Read-Access GZRS Как GZRS + чтение из парного региона 99.99%

LRS -- минимальная защита, данные реплицируются внутри одного дата-центра. Если ДЦ выходит из строя, данные могут быть потеряны.

ZRS -- защита от сбоя одного дата-центра. Данные реплицируются между зонами доступности в одном регионе.

GRS -- защита от катастрофы целого региона. Данные реплицируются в парный регион, но доступны оттуда только после failover.

RA-GRS -- как GRS, но данные из парного региона доступны для чтения в любой момент (без failover).

# Создание Storage Account с GRS
az storage account create \
  --name mystorageaccount \
  --resource-group rg-demo \
  --location westeurope \
  --sku Standard_GRS \
  --kind StorageV2

Проверь себя

🧪

Сколько копий данных создает LRS (Locally Redundant Storage)?

🧪

Какая опция избыточности обеспечивает чтение данных из парного региона без failover?

🧪

Какой минимальный срок хранения данных на уровне Cool в Blob Storage?

🧪

Какой тип блоба следует использовать для хранения файлов журналов, к которым данные только дописываются?

🧪

Какой уровень доступа Blob Storage требует процесса rehydration для получения данных?