Этот вопрос связан с бывший, более общий, но на этот раз я хотел бы более конкретно спросить, может ли ZFS заменить DRBD в таком случае, как мой. Это два сервера, на каждом из которых размещены свои собственные виртуальные машины или другие службы, при этом виртуальные машины или некоторые другие данные реплицируются друг на друга, чтобы сократить время простоя в случае неисправности оборудования или обслуживания. Эта настройка соответствует задумке, мне нужны предпочтительные локальные операции чтения / записи и возможна потеря данных в произвольный период времени.
DRBD поддерживает такой сценарий с различными протоколами зеркалирования, где протокол репликации A является асинхронным, поскольку мне это нужно. Основное преимущество DRBD в моей настройке заключается в том, что переключиться на протокол с большей синхронизацией очень просто, это просто вопрос настройки и перезапуска. Кроме того, можно поместить dm-crypt поверх блочного устройства DRBD и поместить файловую систему в dm-crypt, чтобы все данные были зашифрованы.
С другой стороны, проблема DRBD в том, что ему нужны блочные устройства, и нужно заботиться об их доступности и размере, используя другие технологии, такие как RAID, LVM и тому подобное. Особенно интересно изменение размера, так как на моих серверах есть свободные слоты для подключения дополнительных дисков в будущем. Поддерживать изменение размера, Мне нужно будет использовать LVM под DRBD, чтобы сначала добавить хранилище с помощью LVM, а затем изменить размер DRBD, чтобы учесть новое хранилище. Затем мне все еще нужно иметь дело с dm-crypt, самой файловой системой и т. Д. Это читается довольно сложно и для меня подвержено ошибкам.
С другой стороны, файловые системы, такие как ZFS, уже предоставляют свой собственный LVM и могут отправлять / получать инкрементные снимки. Таким образом, теоретически ZFS должна иметь возможность реализовать тот же протокол. Такой подход, как DRBD, не требует использования RAID, LVM и т. Д. Можно просто добавить хранилище на серверы, поместить его в пулы ZFS, и он сразу станет доступен для размещения большего количества / большие виртуальные машины или что-то еще. Отправка / получение моментальных снимков звучит так же эффективно, как и все, что делает DRBD, потому что это только инкрементные двоичные данные с любыми накладными расходами, необходимыми для описания изменений, которые должны быть поняты в принимающей ZFS. Я читал о людях, использующих бесконечные циклы без времени ожидания для отправки / получения снимков ZFS и последующего прямого удаления их из источника, потому что они нужны только для краткосрочной репликации.
Однако шифрование кажется проблемой для ZFS. dm-crypt может работать с такими вещами, как zvols, а в будущем может поддержка шифрования напрямую, но в настоящее время это не так. Кроме того, отправка / получение снимков всегда выполняется асинхронно, нет возможности реализовать протокол синхронизации, такой как DRBD, если это необходимо. Это может быть приемлемо, поскольку нет необходимости использовать LVM и упрощает общую настройку.
Или я ошибаюсь, есть ли другой способ, кроме отправки / получения снимков, как ZFS может перенаправлять данные на другие хосты из коробки и только ZFS?
Видите ли вы какие-то фундаментальные различия в производительности или ограничения при отправке / получении снимков с использованием ZFS очень часто за короткие периоды времени по сравнению с протоколами зеркалирования DRBD? Последнее могло бы быть немного более эффективным из-за только уровня блока, я думаю.
Какие еще различия между DRBD и ZFS вы можете придумать? Помните, что в настоящее время мне не нужны HA-материалы DRBD, сейчас я сосредоточен на репликации данных.
Спасибо!
Я спросил несколько похожее (но другое) вопрос в последнее время
Короче говоря, все зависит от цели репликации, которую вы хотите достичь, и от того, подходит ли ZoL вашему варианту использования:
С другой стороны, я предлагаю вам не использовать ZVOL, которые скрывают некоторые неприятные сюрпризы.