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

Репликация на уровне хранилища

Репликация на уровне хранилища — это механизм синхронизации данных между несколькими системами хранения (например, дисковыми массивами, SAN-коммутаторами или программными хранилищами), выполняемый на уровне блочных устройств, файловых систем или томов, без участия прикладного программного обеспечения (баз данных, веб-серверов). В отличие от репликации на уровне приложений, хранилищная репликация оперирует низкоуровневыми операциями ввода-вывода (I/O) и обеспечивает согласованность данных на уровне блоков, что делает её прозрачной для вышележащих систем.

Принцип работы

Репликация на уровне хранилища основана на постоянном копировании изменений с основного (primary) хранилища на одно или несколько резервных (secondary) хранилищ. Каждая операция записи, выполняемая на первичном устройстве, дублируется на вторичное устройство либо синхронно (до подтверждения записи приложению), либо асинхронно (с задержкой). Для этого используются специализированные протоколы, такие как Fibre Channel (FC), iSCSI, NVMe-oF (NVMe over Fabrics) или проприетарные протоколы производителей (например, EMC SRDF, HPE 3PAR Peer Persistence).

Синхронная репликация

При синхронной репликации операция записи на первичном хранилище считается завершённой только после того, как данные успешно записаны на вторичное устройство. Это гарантирует нулевую потерю данных (RPO = 0) при сбое первичного узла, но увеличивает задержку записи (latency) пропорционально расстоянию между хранилищами. Применяется в высоконагруженных системах, где критична целостность данных (например, в финансовых транзакциях).

Асинхронная репликация

При асинхронной репликации приложение получает подтверждение записи сразу после завершения операции на первичном хранилище, а копирование на вторичное устройство выполняется с задержкой (обычно от нескольких миллисекунд до секунд). Это снижает задержку, но допускает потерю данных в случае сбоя первичного узла до завершения синхронизации (RPO > 0). Используется для географически распределённых систем (DR-сайты) и приложений, допускающих небольшие потери данных.

Типы репликации на уровне хранилища

Репликация на уровне блоков (Block-level replication)

Оперирует блоками данных фиксированного размера (обычно 512 байт или 4 КБ). Каждый блок копируется независимо, что позволяет восстанавливать целостность томов на уровне файловой системы. Примеры: EMC SRDF (Symmetrix Remote Data Facility), IBM Metro Mirror, NetApp SnapMirror (в блочном режиме).

Репликация на уровне файлов (File-level replication)

Копирует файлы и каталоги, отслеживая изменения на уровне файловой системы. Использует протоколы NFS, SMB/CIFS или специализированные агенты. Менее эффективна для больших объёмов данных, но проще в настройке. Пример: rsync (с дополнительными инструментами), DFSR (Distributed File System Replication) в Windows.

Репликация на уровне томов (Volume-level replication)

Работает с логическими томами (LUN, Logical Unit Number) или группами томов. Включает механизмы зеркалирования (RAID 1) и копирования между удалёнными массивами. Примеры: Linux DRBD (Distributed Replicated Block Device), VMware vSAN (в режиме зеркалирования).

Применение

Обеспечение отказоустойчивости (High Availability, HA)

Репликация на уровне хранилища используется для создания кластеров с автоматическим переключением (failover). При сбое первичного хранилища вторичное немедленно берёт на себя обслуживание запросов, что минимизирует время простоя (RTO). Типичные сценарии: двухузловые кластеры на базе Microsoft SQL Server, Oracle RAC или SAP HANA.

Аварийное восстановление (Disaster Recovery, DR)

Для географически распределённых систем (например, между Москвой и Санкт-Петербургом) асинхронная репликация позволяет восстанавливать данные после катастрофических сбоев (пожар, наводнение, отключение электроэнергии). RPO может составлять от нескольких минут до нескольких часов в зависимости от настроек.

Миграция данных

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

Преимущества и недостатки

Преимущества

  • Прозрачность для приложений: не требует модификации кода или настройки СУБД.
  • Высокая производительность: работает на уровне ядра операционной системы или аппаратного контроллера, что минимизирует накладные расходы.
  • Согласованность данных: обеспечивает целостность на уровне блоков, что критично для систем с журналированием (например, файловые системы ext4, NTFS).
  • Поддержка различных протоколов: совместимость с Fibre Channel, iSCSI, NVMe-oF.

Недостатки

  • Зависимость от сети: задержки и потери пакетов могут снижать производительность, особенно при синхронной репликации.
  • Сложность настройки: требует квалифицированного персонала для настройки и мониторинга.
  • Ограниченная гибкость: не учитывает логику приложений (например, не может реплицировать только определённые таблицы базы данных).
  • Стоимость: лицензии на проприетарные решения (например, EMC, NetApp) могут быть дорогими.

Реализации

Аппаратные решения

  • EMC SRDF (Dell Technologies) — синхронная и асинхронная репликация для массивов Symmetrix и PowerMax.
  • IBM Metro Mirrorсинхронная репликация для систем IBM DS8000.
  • NetApp SnapMirror — асинхронная и синхронная репликация для NAS и SAN-систем.
  • HPE 3PAR Peer Persistence — синхронная репликация для массивов HPE 3PAR.

Программные решения

  • DRBD (Linux) — модуль ядра для репликации на уровне блоков, часто используется в кластерах Pacemaker.
  • GlusterFSраспределённая файловая система с встроенной репликацией.
  • Ceph — программно-определяемое хранилище с поддержкой репликации на уровне объектов (RBD, RADOS).
  • ZFS — файловая система с возможностью отправки снапшотов на удалённый сервер (zfs send/receive).

Критика и ограничения

Репликация на уровне хранилища не решает проблему согласованности данных на уровне приложений. Например, при сбое в середине транзакции базы данных на вторичном хранилище могут оказаться частично записанные данные, что требует дополнительных механизмов восстановления (например, журналов транзакций). Кроме того, в распределённых системах с высокой нагрузкой асинхронная репликация может приводить к рассинхронизации, если не настроены механизмы кворума или контрольных точек.

В России репликация на уровне хранилища активно используется в государственных информационных системах (ГИС) и в системах критической инфраструктуры, где требуется соответствие требованиям Федерального закона № 152-ФЗ «О персональных данных» и стандартам импортозамещения (например, решения на базе «Аэродиск», «YADRO» или «Скала-Р»).

Источники

  • Таненбаум Э., ван Стеен М. — «Распределённые системы. Принципы и парадигмы» (2003)
  • Книга «Storage Networking Protocol Fundamentals» (Cisco Press, 2006)
  • Документация DRBD (Linux HA)
  • Материалы Dell Technologies по EMC SRDF
  • Статья «Репликация данных в системах хранения» (журнал «Открытые системы», 2019)

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

На главную BFOmetr →