Объём мировой датасферы превысил 140 зеттабайт и продолжает расти экспоненциально. Каждая организация — от стартапа до корпорации — сталкивается с выбором инфраструктуры, способной обеспечить доступность, скорость и надёжность информации. Ошибка на этапе проектирования стоит миллионов в простое и потере клиентов.

В статье разбираем ключевые технологии, архитектурные паттерны и критерии выбора под конкретные нагрузки. Упор на практические сценарии, а не на маркетинговые буклеты вендоров.

Физические носители: от магнитных пластин к 3D NAND

Жёсткие диски (HDD) остаются стандартом для «холодных» архивов и бэкапов. Последовательная запись на Seagate Exos или Western Digital Ultrastar выдаёт 250–280 МБ/с при стоимости $15–18 за терабайт. Минус — латентность 4–8 мс и уязвимость к вибрации.

Твердотельные накопители (SSD) на 3D NAND с интерфейсом NVMe PCIe 4.0/5.0 дают 7000–14000 МБ/с последовательно и 0,05–0,1 мс случайного доступа. Endurance (ресурс записи) измеряется в DWPD — Samsung PM9A3 рассчитан на 1–3 DWPD, потребительские модели — на 0,1–0,3. Для баз данных и виртуализации критичен параметр steady-state performance после заполнения резервной области.

  • 💾 HDD — архивы, медиатеки, реже — логи
  • ⚡ NVMe SSD — горячие данные, БД, кэш, VM
  • 📼 Ленточные библиотеки (LTO-9) — 18 ТБ на картридж, срок хранения 30 лет, $5/ТБ
  • 🧊 Оптические диски Archival Disc — нишевое долгосрочное хранение
⚠️ Внимание: потребительские SSD без конденсаторов питания (PLP) теряют данные в кэше при аварийном отключении. Для серверов обязательны модели с Power Loss Protection.
📊 Какой тип накопителя используете для основной БД?
NVMe SSD (enterprise)
SATA SSD
HDD RAID
Облачное хранилище
Смешанная схема

RAID, эражирование и программно-определяемые хранилища

Классические RAID-массивы уступают место Software-Defined Storage (SDS). Ceph, OpenEBS, Longhorn абстрагируют железо и предоставляют блочный, файловый и объектный доступ через единый API. Репликация 3× или erasure coding (k=4, m=2) заменяют RAID-5/6, давая отказоустойчивость без rebuild-шторма.

ZFS и btrfs на уровне файловой системы реализуют контроль целостности (checksums), сжатие (zstd, lz4), дедупликацию и снапшоты. zfs send | zfs receive — стандарт репликации между сайтами. Главный нюанс: дедупликация требует 1–5 ГБ RAM на каждый ТБ уникальных данных.

РешениеТипПротокол доступаМасштабированиеСложность ops
CephSDSRBD, CephFS, RGW (S3)Горизонтальное до ПБВысокая
MinIOОбъектноеS3 APIГоризонтальное, erasure codingНизкая
TrueNAS (ZFS)Файловое/блочноеNFS, SMB, iSCSIВертикальное + кластерСредняя
LonghornБлочное (K8s)CSIГоризонтальное в кластереСредняя
SeaweedFSОбъектное/файловоеS3, FUSE, WebDAVГоризонтальноеНизкая
Почему RAID-5/6 опасны на больших дисках?

При rebuild 18 ТБ диска вероятность URE (unrecoverable read error) на потребительских HDD ~10^14 бит — это почти гарантированная потеря второго диска во время восстановления. Erasure coding решает проблему, распределяя парность по множеству узлов.

Архитектуры баз данных: OLTP, OLAP и NewSQL

Транзакционные системы (OLTP) — PostgreSQL, MySQL, MariaDB — оптимизированы под короткие ACID-транзакции, B-tree индексы и row-based хранение. Аналитические (OLAP) — ClickHouse, Apache Druid, Snowflake — используют columnar storage, векторное выполнение и сжатие данных 5–10×.

NewSQL (CockroachDB, TiDB, YugabyteDB) совмещает горизонтальное масштабирование с ACID и SQL-совместимостью. Распределённый консенсус (Raft/Paxos) добавляет 2–5 мс латентности на запись, но даёт линейную масштабируемость записи и чтения. Для геораспределённых кластеров критична топология реплик: zone=us-east, replicas=3 vs region=global, replicas=5.

⚠️ Внимание: дедупликация в ZFS включается только при достаточном RAM. При нехватке памяти производительность падает на порядки, а пул может стать нечитаемым.
💡

Выбор между OLTP и OLAP определяется паттерном запросов: если 80%+ — точечные выборки/вставки по PK — OLTP. Если сканы по миллионам строк с агрегацией — OLAP. Смешанные нагрузки требуют HTAP (TiDB, SingleStore) или разделение потоков через CDC.

Кэширование, очереди и потоковая обработка

Redis (in-memory, sub-ms латентность) покрывает 90% кейсов кэширования: сессии, rate-limiting, leaderboard'ы. Redis Cluster шардирует по 16384 слотам, но не поддерживает мульти-ключевые транзакции across slots. Dragonfly и Valkey — форки с многопоточностью и выше throughput на тех же железах.

Для event-driven архитектур: Apache Kafka (log retention, replay, exactly-once), Redpanda (C++, совместимость с Kafka API, ниже ресурсы), NATS JetStream (легковесный, встроенный KV/Object Store). Выбор зависит от требований к удержанию истории и порядку доставки.

  • 🔥 Redis — кэш, сессии, real-time счетчики
  • 📜 Kafka — аудит-логи, CDC, event sourcing, долгая ретеншн
  • 🚀 Redpanda — Kafka-совместимость, проще_ops, нет JVM
  • ☁️ NATS JetStream — микросервисы, edge, встроенный KV

☑️ Подготовка к продакшену Redis Cluster

Выполнено: 0 / 6

Объектные хранилища и Data Lake

S3 API стал де-факто стандартом. MinIO на своём железе даёт производительность 100+ ГБ/с на 10-нодовом кластере за $0,01/ГБ/мес (CapEx). Облачные аналоги — AWS S3, S3 Select для фильтрации на стороне хранилища, Glacier Instant Retrieval для холодных данных с ms-доступом.

Форматы таблиц: Apache Iceberg, Delta Lake, Apache Hudi добавляют ACID, time travel, schema evolution и partition pruning поверх Parquet/ORC. Iceberg выигрывает за счёт hidden partitioning и поддержки множества движков (Spark, Flink, Trino, ClickHouse).

CREATE TABLE events (

event_time TIMESTAMP(6),

user_id BIGINT,

payload STRING

) USING iceberg

PARTITIONED BY (days(event_time), bucket(16, user_id))

TBLPROPERTIES ('write.target-file-size-bytes'='268435456');

💡

Для Data Lake на MinIO включите erasure coding (parity=2) и настройте ILM: переход в холодный тиер через 90 дней. Экономит до 60% CapEx при сохранении SLA восстановления < 12 часов.

Бэкап, DR и иммутабельность

Правило 3-2-1: три копии, два типа носителей, одна off-site. Veeam, Restic, BorgBackup (дедупликация, шифрование, сжатие), Velero для K8s (ресурсы + PV). Immutable-бэкапы (WORM) защищают от ransomware: MinIO Governance/Compliance mode, AWS S3 Object Lock, Veeam Hardened Repository (Linux + immutability bit).

RPO/RTO определяют архитектуру: синхронная репликация (RPO=0) требует < 5 мс RTT между дата-центрами. Асинхронная (RPO=15–60 мин) — через CDC (Debezium, Airbyte) или нативный репликатор БД. Тестирование восстановления — не опция, а требование аудита.

⚠️ Внимание: снапшоты виртуальных машин не заменяют application-consistent бэкапы БД. Без quiesce/flush транзакционные логи могут быть в несогласованном состоянии.

Мониторинг, наблюдаемость и capacity planning

Ключевые метрики: latency percentiles (p50, p95, p99, p99.9), IOPS (read/write/mixed), throughput (МБ/с), utilization (CPU, RAM, disk, network), error rate и queue depth. Prometheus + Grafana — стандарт де-факто. VictoriaMetrics или Thanos для долгосрочного хранения метрик.

Capacity planning: прогноз роста на 12–18 месяцев с запасом 30–40%. Автоскейлинг дисков в K8s (StorageClass allowVolumeExpansion: true) работает только для расширения, shrink не поддерживается. Планируйте закупки за 6–8 недель до достижения 70% заполнения.

💡

Наблюдаемость без алертинга по p99 latency и disk saturation — слепота. Настройте SLO: p99 < 10 мс для OLTP, p99 < 500 мс для OLAP. Любое превышение — инцидент, а не «норма».

Чек-лист выбора стека под нагрузку

Нет универсального решения. Стартап с 10 ГБ БД и 100 RPS отлично живёт на managed PostgreSQL + Redis + S3. Энтерпрайз с 50 ТБ горячих данных и требованием RPO=0 нуждается в геораспределённом NewSQL, SDS и выделенном канале репликации.

Начните с профиля нагрузки: read/write ratio, working set size, latency budget, consistency requirements. Прогоните бенчмарки (sysbench, tpcc, YCSB) на целевом железе. Документируйте trade-offs — они станут основой архитектурных решений на годы вперёд.

FAQ: Частые вопросы о технологиях хранения данных
Какая разница между S3 и POSIX-файловой системой?

S3 — объектное хранилище с плоским пространством имён, eventual consistency (или strong при включении), доступ через HTTP API. Нет случайного чтения/записи внутри объекта, нет блокировок, нет иерархических директорий (только префиксы). POSIX даёт случайный доступ, файловые блокировки, иерархию, но сложнее масштабировать горизонтально.

Нужен ли мне NewSQL или достаточно PostgreSQL с репликацией?

Если запись не превышает 10–20k TPS и работает в одном регионе — PostgreSQL с синхронной репликой и пулером соединений (PgBouncer) проще и дешевле. NewSQL оправдан при горизонтальном масштабировании записи, мульти-региональности или необходимости шардинга без рефакторинга приложения.

Как выбрать между Iceberg, Delta Lake и Hudi?

Iceberg — лучшая поддержка движков и hidden partitioning. Delta Lake — нативная интеграция с Databricks/Spark, удобен если вы в экосистеме Databricks. Hudi — оптимизирован для upsert-heavy workloads и CDC ingestion. Для нового проекта без привязки к вендору — Iceberg.

Что такое DWPD и как рассчитать ресурс SSD?

DWPD (Drive Writes Per Day) — сколько раз в день можно перезаписать весь диск в течение гарантийного периода (обычно 5 лет). Формула: TBW (Total Bytes Written) / (Capacity × 365 × Warranty Years). Пример: 1.92 ТБ SSD с TBW 3500 ТБ → 3500 / (1.92 × 365 × 5) ≈ 1 DWPD.

Как защитить бэкапы от ransomware?

Используйте immutable storage (S3 Object Lock Compliance mode, Veeam Hardened Repository, MinIO Governance). Разделите учётные записи: бэкап-агент пишет, но не может удалять. Храните копию в изолированной сети или на ленточной библиотеке с air-gap. Тестируйте восстановление еженедельно.