Выберите продукт

Ceph vs ZFS replication vs DRBD для хранения VDS: производительность, отказоустойчивость и эксплуатация

Хранилище для VDS — это компромисс между latency/IOPS, отказоустойчивостью и сложностью поддержки. Разбираем Ceph RBD, ZFS replication и DRBD: как подтверждается запись, где появляется write amplification, как работают quorum и fencing и как оценить recovery time в реальных авариях.
Ceph vs ZFS replication vs DRBD для хранения VDS: производительность, отказоустойчивость и эксплуатация

Зачем сравнивать Ceph, ZFS replication и DRBD именно для VDS

Для платформы VDS обычно важны три вещи: предсказуемые задержки и IOPS, понятное поведение при отказах (узел, диск, сеть, «половина кластера») и эксплуатация без сюрпризов (обновления, мониторинг, восстановление, рост). Ceph, ZFS replication и DRBD решают похожую задачу — защитить данные и обеспечить доступность — но делают это разными методами, поэтому и «цена» (сеть, CPU, процессы, риски) различается.

Ниже — не маркетинговое «что лучше», а разбор того, как технологии ведут себя в проде: где появляются хвосты latency, что будет при деградации, как быстро реально восстановиться и какие сценарии поломок чаще всего делают больно.

Модели данных: что реплицируется и где принимается решение о записи

Ceph RBD

Ceph RBD — распределённое блочное хранилище: данные дробятся на объекты и раскладываются по OSD согласно карте размещения. Клиент пишет в RBD-образ, а Ceph решает, на какие OSD положить реплики. «Кто с кем согласован» контролируется мониторами (MON) и состоянием кластера.

Практический вывод: Ceph рассчитан на горизонтальный рост и переживание отказов без ручных «перекидываний томов», но требует нормальной сети, запаса по ресурсам и дисциплины эксплуатации.

ZFS replication (send/receive)

ZFS replication — это репликация снапшотов через zfs send/zfs receive. Это не «кластерный блок-девайс», а доставка состояния датасета/тома на другой хост. Чаще всего репликация асинхронная: RPO почти всегда больше нуля и определяется частотой снапшотов и скоростью доставки инкрементов.

Сильная сторона: DR, резервная площадка, миграции, быстрые откаты по снапшотам. Слабая: типовая схема не даёт прозрачной синхронной записи одного и того же тома одновременно на двух узлах.

DRBD

DRBD реплицирует блочное устройство между узлами (обычно Primary/Secondary). В синхронном режиме запись подтверждается только после записи локально и на реплике. Отсюда понятная HA-модель «как локальный диск, но с зеркалом» и предсказуемое влияние задержки сети.

Ключевой риск: split brain при проблемах связи/кластер-менеджмента. Поэтому DRBD почти всегда должен идти вместе с fencing/STONITH и отработанными сценариями переключения.

Схема сравнения Ceph, DRBD и ZFS replication: задержки, RPO и путь записи

Производительность: latency, IOPS и где появляется write amplification

Единой «таблички цифр» не будет: всё зависит от сети (10/25/100G), носителей (SSD/NVMe/HDD), профиля I/O (4K random write, 70/30 mixed, sequential), настроек кешей и того, что именно вы считаете «производительностью» (среднее vs p95/p99). Но архитектурные закономерности у всех трёх подходов довольно устойчивые.

Ceph: длинный путь записи и хвосты при деградации

У Ceph путь записи обычно длиннее: клиент → сеть → несколько OSD → подтверждение реплик → журналирование/бэкенд. При размере репликации 3 вы получаете несколько операций на каждый логический блок, плюс сетевой трафик. Это и воспринимается как практический write amplification (вместе с накладными расходами на протокол и метаданные).

  • Средняя latency обычно выше, чем у локального диска, и часто выше, чем у DRBD в пределах одного ЦОД, особенно на sync-write.
  • Хвосты p95/p99 могут заметно вырастать во время recovery/backfill/rebalance (и это важно именно для VDS, где «прыжки» задержек быстро видны гостям).
  • Ceph очень чувствителен к CPU и сети на OSD-узлах: «экономия» на процессорах/сетевых картах почти всегда превращается в нестабильные задержки.

При этом правильно спроектированный Ceph умеет масштабировать суммарные IOPS и пропускную способность с ростом кластера — если нет узких мест и выдержаны домены отказа.

DRBD: синхронная репликация и цена RTT

В синхронном DRBD главным ограничителем становится RTT между узлами: подтверждение записи включает доставку данных на вторую сторону. В одной стойке или в одном ЦОД это часто даёт очень хорошие и предсказуемые задержки; между площадками — задержка растёт линейно с RTT, и это быстро становится заметно на мелких sync-write.

Write amplification проще: минимум 2 копии данных (локально и на реплике), без «распределённого планировщика размещения» как у Ceph. Именно поэтому DRBD часто ощущается «ближе к локальному диску», если сеть короткая и стабильная.

ZFS replication: прод — локальный, репликация — фоновая

Если ВМ живут на локальном ZFS (например, zvol), то продовая производительность определяется локальным стеком: ARC, запись в transaction groups, COW-эффекты, настройка recordsize/volblocksize, SLOG при sync-выгрузке и т.д. Репликация снапшотов обычно идёт отдельным потоком и её можно ограничить, чтобы не портить latency на проде.

Главное честно зафиксировать: ZFS replication — это не online HA-репликация записи «прямо сейчас» (в типовой схеме), а механизм доставки состояния с некоторым RPO.

FastFox VDS
Облачный VDS-сервер в России
Аренда виртуальных серверов с моментальным развертыванием инфраструктуры от 195₽ / мес

Quorum, сеть и вопрос «кто прав» при проблемах связи

Ceph: quorum как предохранитель от неконсистентной записи

В Ceph quorum у MON — фундамент. Мониторы должны иметь кворум, чтобы кластер принимал согласованные решения. Это резко снижает вероятность сценария «две стороны считают себя главными», но вводит другой эффект: при сетевой нестабильности часть операций может быть остановлена до восстановления связности/кворума.

Для VDS это означает практический приоритет: дизайн сети и размещение MON критичны. «Маленький Ceph без запаса» + нестабильная сеть часто выглядит для клиента как «то работает, то нет», хотя с точки зрения целостности Ceph делает правильную вещь — не даёт писать в потенциально неконсистентное состояние.

DRBD: split brain и почему без fencing это лотерея

Опасный сценарий DRBD — разделение сети, при котором обе стороны начинают вести себя как Primary (или кластер-менеджер ошибочно допускает двойной Primary). Это и есть split brain: две независимые версии одного тома. Дальше вы выбираете «какая сторона правильная», и это может означать длительный простой и ручные действия.

DRBD в HA работает предсказуемо только при заранее продуманном fencing/STONITH и регулярно отработанных сценариях потери связи. Без этого вы меняете риск «упал сервер» на риск «разъехались данные».

Если у вас уже есть кластер-менеджмент, полезно держать под рукой практические сценарии переключения и разборов инцидентов. Как подход к «правильной репликации и фейловеру» хорошо ложатся материалы про GTID и семисинхронную репликацию в MySQL: фейловер MySQL с GTID и semisync.

ZFS replication: split brain нет, но есть RPO и дисциплина переключения

Классического split brain как у DRBD здесь нет: вы не пишете одновременно в один том с двух сторон. Но появляется ось риска RPO: если снапшоты отправляются раз в 5 минут, то в худшем случае вы потеряете до 5 минут изменений (плюс то, что не успело доехать из-за окна репликации).

Тут особенно важно не путать «репликация настроена» и «аварийное переключение отработано»: что будет с IP, маршрутами, DNS, доступами, и как быстро вы реально поднимете гипервизор/экспорт на второй стороне.

Recovery time: как быстро вы реально подниметесь после аварии

Ceph

В Ceph есть два разных «восстановления»: (1) продолжение работы ВМ при отказе диска/OSD/узла и (2) возврат к здоровому состоянию (rebalance/backfill). Для пользователя критично первое, но для админа второе не менее важно: пока идёт восстановление, p95/p99 latency может быть хуже нормы.

Если кластер спроектирован с запасом (CPU, сеть, домены отказа) — отказ одного узла часто малозаметен. Если запаса нет — «восстановление» превращается в долгую деградацию с жалобами на «всё тормозит».

DRBD

В идеальном HA-сценарии recovery time — это время, за которое кластер-менеджер распознаёт отказ, выполняет fencing и поднимает сервисы на втором узле. На практике время определяется таймаутами, состоянием файловой системы после падения и качеством тестов. Если произошёл split brain, recovery time становится непредсказуемым — это уже не фейловер, а разбор и выбор «истины».

ZFS replication

Recovery time обычно складывается из действий «промоутнуть» реплику (выбрать нужный снапшот/датасет), поднять экспорт/виртуализацию и вернуть связность для клиентов. Самые частые задержки — организационные: маршрутизация, IP, зависимости сервисов, доступы. С точки зрения данных всё проще: есть снапшоты, их и поднимаете.

Чеклист учений по аварийному переключению и восстановлению хранилища для VDS

Масштабирование и эксплуатация: где вы платите сложностью

Ceph: мощно, но требовательно к операционке

Ceph хорош, когда нужно масштабирование и отказоустойчивость пула: добавляете узлы — растёт ёмкость и потенциальная производительность. Но Ceph требует зрелой эксплуатации: мониторинг, плановые обновления, понимание деградаций, контроль заполнения и балансировки.

  • Recovery/backfill может неожиданно «съесть» latency и IOPS.
  • Перекосы между OSD и ошибки проектирования доменов отказа приводят к нестабильности.
  • Производительность трудно прогнозировать без нагрузочного теста под ваш профиль.

DRBD: проще архитектурно, строже по процессам

DRBD проще внедрять в небольшой платформе: пары узлов, зеркалирование блоков, понятный фейловер. Но «простота» провоцирует экономить на fencing и тестировании. Если fencing нельзя обеспечить (политически/технически), DRBD становится заметно рискованнее, чем кажется на схеме.

Как единое масштабируемое хранилище «на десятки узлов» DRBD не является сильной стороной. Зато для ограниченного числа критичных пулов/томов он часто даёт лучший баланс предсказуемости и трудозатрат.

ZFS replication: отличный DR-инструмент и хороший второй контур

ZFS replication обычно приятна в эксплуатации: снапшоты, инкременты, простая диагностика. Масштабирование — это масштабирование отдельных хостов и потоков репликации, а не построение единого storage-кластера.

Частая продакшн-практика — использовать ZFS replication как второй контур даже при другом «основном» сторидже: для DR-площадки, миграций и быстрых откатов.

Виртуальный хостинг FastFox
Виртуальный хостинг для сайтов
Универсальное решение для создания и размещения сайтов любой сложности в Интернете от 95₽ / мес

Мини-плейбук: что замерять и что проверять до выбора

1) Снимите профиль нагрузки и тестируйте хвосты

В VDS-среде «среднее значение» часто бесполезно. Замеряйте p95/p99 latency, отдельно для read/write и отдельно для sync-операций. Нагрузочный тест проводите максимально близко к реальности (размер блоков, количество потоков, очередь, доля записи).

2) Проговорите RPO/RTO и домены отказа

Если RPO должен быть нулевым, асинхронная репликация снапшотов вам не подходит как единственный механизм. Если у вас две площадки с ощутимым RTT — синхронная запись (DRBD или «строгий» Ceph-дизайн) может резко увеличить задержки. Домены отказа (стойка/ЦОД/площадка) определяют не только схему, но и требования к сети и процессам.

3) Отрепетируйте аварии как процедуру

Самая практичная проверка — регулярные учения: выключили узел, отключили линк, имитировали деградацию диска, замерили время, задокументировали. Если вы применяете репликации для БД, полезно также держать понятный план восстановления на уровне данных: например, для PostgreSQL хорошо помогает дисциплина PITR и работа с WAL — см. резервное копирование и восстановление PostgreSQL через PITR/WAL.

Итог: что выбрать для хранилища VDS

Ceph RBD — выбор для распределённого кластерного хранилища, когда нужен горизонтальный рост и переживание отказов на уровне пула. Вы получаете самовосстановление и работу через quorum, но платите сложностью, требованиями к сети/CPU и возможными хвостами latency во время восстановлений.

DRBD — сильное решение для HA-пар с синхронной репликацией и моделью «как локальный диск». Часто даёт отличную предсказуемость в одном ЦОД, но требует fencing/STONITH и дисциплины, иначе риск split brain перекрывает выгоды.

ZFS replication — практичный и удобный механизм DR/миграций/откатов: локальная производительность на проде, понятные снапшоты, простая диагностика. Но в типовой схеме это почти всегда история про RPO (пусть и небольшой), а не про мгновенную синхронную доступность одного тома.

Команды для базовой настройки ZFS replication (пример)

Ниже — минимальный шаблон, чтобы было от чего оттолкнуться в тестовой среде. Команды — примерные; имена пулов/датасетов подставьте свои.

zfs snapshot -r tank/vmdata@replica-2026-02-10-1200
zfs send -R tank/vmdata@replica-2026-02-10-1200 | zfs receive -F backup/vmdata
zfs snapshot -r tank/vmdata@replica-2026-02-10-1205
zfs send -R -i tank/vmdata@replica-2026-02-10-1200 tank/vmdata@replica-2026-02-10-1205 | zfs receive -F backup/vmdata

При выборе решения для платформы VDS самый надёжный путь — зафиксировать SLO по latency, допустимый RPO/RTO, протестировать под своим профилем нагрузки и отдельно прогнать учения по отказам. Именно там различия между Ceph, DRBD и ZFS replication проявляются сильнее всего.

Поделиться статьей

Вам будет интересно

2026: rsync vs rclone vs syncthing vs unison — что выбрать для репликации файлов в production OpenAI Статья написана AI (GPT 5)

2026: rsync vs rclone vs syncthing vs unison — что выбрать для репликации файлов в production

Разбираем, чем на практике отличаются rsync, rclone, syncthing и unison: где лучше зеркалирование по SSH, где S3/WebDAV, а где нуж ...
Linux 6.x: io_uring vs libaio vs POSIX AIO — практическое сравнение для VDS OpenAI Статья написана AI (GPT 5)

Linux 6.x: io_uring vs libaio vs POSIX AIO — практическое сравнение для VDS

Разбираем три подхода к async I/O в Linux 6.x: io_uring, libaio и POSIX AIO. Что влияет на latency, throughput и IOPS на NVMe, как ...
S3-compatible vs WebDAV vs SFTP для backup storage: что выбрать и почему OpenAI Статья написана AI (GPT 5)

S3-compatible vs WebDAV vs SFTP для backup storage: что выбрать и почему

Когда бэкапы нужно хранить вне сервера, выбор обычно сводится к S3-compatible объектному хранилищу, WebDAV или SFTP. Разбираю, что ...