На уровне замечений, касательно понятий “Node Group” и параметра секции [NDBD DEFAULT]
NoOfReplicas
в конфиге кластаера config.ini
NoOfReplicas
- параметр задающий количество реплик данных. Допустим, его значение 2, тогда получается у нас будет две реплики данных. Теперь дальше, допустим, NDB ноды у нас с номерами 10, 11, 12, 13 и в конфиге они перечислены в этом же порядке, тогда количество Node Group будет:
NodeGroupsCount = NDB_Nodes_Count / NoOfReplicas = 4 / 2 = 2
Номера Node Group будут: 0 и 1 (нумерация с нуля.)
Теперь, как ноды группируются в группы? А просто, по порядку номеров. Т.е. наши ноды 10, 11, 12, 13 при NoOfReplicas = 2
, распределятся так:
- Node Group 0: 10, 11
- Node Group 1: 12, 13
Если прводить аналогии, то очень похоже на RAID 10: 10+11, 12+13 - работают в зеркалирование, и в сумме (10_11)+(12_13) - в чередовании.
Отсюда ещё одно важно замечание: если ВСЕ ноды одной группы вылетают, целостность данных нарушается, как следствие ВЕСЬ кластер прекращает работу, и, как следствие: для работы (и для запуска) кластера необходимо, что бы было хотя бы по одной живой ноде из группы.
Ещё одно замечание (пока окончательно не проверено), но дополню: по одной живой ноде из группы должны стартовать в промежуток не больше 30 сек. Ещё лучше запускать ноды с параметром -n
а потом через менеджмент-панель делать или ALL START
или node-id START
И в заключение, если отвалится одна нода из группы, лучше, как можно быстрее получить об этом уведомление на почту или ещё куда. И распределять ноды одной группы так, что бы не получилось “семерых одним ударом”.