ZFS в Linux (ZoL) и репликация в реальном времени

Я хотел бы понять, что является лучшим решением для репликации в реальном времени между двумя блоками ZFS в Linux (ZoL), соединенными каналом 10 GbE. Цель состоит в том, чтобы использовать их для виртуальных машин; только один ящик одновременно будет запускать виртуальные машины и саму файловую систему ZFS. Снимок должен быть возможен на первом (активном) поле. Я планирую использовать диски SATA корпоративного / ближнего класса, поэтому о двухпортовых дисках SAS не может быть и речи.

Я думал о следующих возможностях:

  • используйте iSCSI для экспорта удаленных дисков и создания зеркала между дисками ZFS локального блока и удаленными дисками iSCSI. Большим преимуществом этого решения является его простота, поскольку оно использует собственное зеркалирование ZFS. С другой стороны, ZFS не будет отдавать приоритет локальным дискам по сравнению с удаленными, что может привести к некоторому снижению производительности (я полагаю, это вряд ли актуально для сети 10 Гбит / с). Более того, и причиной большей озабоченности является поведение ZFS в случае потери сетевого соединения между двумя блоками. Будет ли он повторно синхронизировать массив, когда удаленный компьютер станет доступным, или потребуется ручное вмешательство?
  • используйте DRBD для синхронизации двух ZVOLS и положите ZFS поверх устройства DRBD. Другими словами, я говорю о сложенном решении ZVOL + DRBD + ZFS. Мне кажется, это предпочтительный подход, так как DRBD 8.4 очень стабильный и проверенный. Тем не менее, здесь много уровней ввода / вывода, и производительность может пострадать.
  • используйте обычный ZFS + GlusterFS сверху. С точки зрения ZFS это более простое / лучшее решение, поскольку весь трафик репликации делегируется GlusterFS. Вы нашли GlusterFS достаточно стабильным?

Что вы считаете лучшим подходом? Благодарю.

1 ответ

Решение

Я рекомендую кластерную настройку SAS с двумя узлами или непрерывную асинхронную репликацию с интервалом 15 или 30 секунд. Последний хорош для преемственности, в то время как последний обеспечивает способ географического разделения. Их можно использовать вместе.

Однако, если вы хотите поэкспериментировать, вы можете использовать Infiniband SRP или 100GbE RDMA для создания зеркала ZFS между вашими двумя узлами.

Например, каждый узел 1 и узел 2 имеют локальный диск (предположим, аппаратный RAID) и представляют это локальное хранилище через SRP. Один узел одновременно управляет zpool, и этот пул состоит из локальных дисков узла 1 и удаленного диска узла 2.

Ваше зеркалирование синхронно, потому что это зеркало ZFS. Отказоустойчивость и согласованность обрабатываются с помощью нормального поведения переноса. Импорт / владение / экспорт Zpool обрабатываются Pacemaker и стандартными утилитами кластера...

Или вы можете использовать коммерческое решение, которое делает то же самое. Увидеть:

http://www.zeta.systems/blog/2016/10/11/High-Availability-Storage-On-Dell-PowerEdge-&-HP-ProLiant/

Другие вопросы по тегам