У меня есть вопрос / интерес по поводу разделения мозга в конфигурации Drbd Primary / Primary. Предположим, два узла (хоста), host1
и host2
настроен с помощью Drbd Primary / Primary и двух разных общих ресурсов (NFS, CIFS или iSCSI) реплицированной области (например, /drbd
)
/drbd/file1.data
/drbd/file2.data
Если бы пул клиентов имел доступ только host1
поделиться только чтением и печатью file1.data
и еще один бассейн только host2
Поделиться с file2.data
, этот сценарий должен избегать ситуации разделения мозга в случае отказа одного узла или это просто догадка?
Конечная цель - балансировка нагрузки между двумя узлами в нормальном состоянии и сворачивание на один узел только в случае отказа.
Спасибо!
Эдди
Я бы сказал - это зависит от используемой файловой системы.
Используя NFS, вы не можете гарантировать, что записи будут выполняться в разные блоки drbd (так что «discard-zero-changes» не поможет восстановить после разделения мозга).
Но если вы используете файловую систему с поддержкой кластера (например, ocfs) сверху, шансы, что ваши данные не будут повреждены впоследствии, выше, особенно если вы используете разные ветки каталогов.
Но в вашем сценарии - я бы использовал два отдельных устройства в основном / дополнительном режиме, используя обычную файловую систему ext3.
Пока у вас есть один Ресурс DRBD в режиме prim / prim и запись в него с разных узлов, вы воля иметь разделенный мозг в случае сбоя сети.
Кроме того, если /drbd
это обычная (некластерная) файловая система с двумя подкаталогами, которые затем используются на двух хостах, повреждение данных гарантированный даже при нормальной работе, поскольку локальные файловые системы не знают, что другие машины записывают на их блочное устройство.
Создание надежной установки HA / балансировки нагрузки - это сложная тема, которая во многом зависит от того, чего вы хотите достичь, но она будет включать в себя некоторую форму программного обеспечения для управления кластером, возможно, кластерную файловую систему и многие другие компоненты.