Как правильно настроить двухузловую систему glusterfs?

Я пытаюсь создать двухузловые Linux-серверы с высокодоступным apache, используя glusterfs 3.7.6 для репликации данных и pacemaker + corosync в качестве диспетчера ресурсов. Однако я вижу проблему с gluster в конкретном сценарии, когда оба узла выключаются, и один из них сначала подключается к сети. Несмотря на то, что на этом узле есть кирпич и служба gluster работает, процесса кирпича нет.

[root@node1 ~]# gluster volume status data 
Status of volume: data
Gluster process                             TCP Port  RDMA Port  Online  Pid
------------------------------------------------------------------------------
Brick node1:/gluster_data                   N/A       N/A        N       N/A  
NFS Server on localhost                     N/A       N/A        N       N/A  
NFS Server on localhost                     N/A       N/A        N       N/A  

Task Status of Volume data
------------------------------------------------------------------------------
There are no active volume tasks

И когда я запускаю другой узел, кажется, все работает, и я могу смонтировать том.

[root@node1 ~]# gluster volume status data
Status of volume: data
Gluster process                             TCP Port  RDMA Port  Online  Pid
------------------------------------------------------------------------------
Brick node1:/gluster_data                  49152      0          Y       2674 
Brick node2:/gluster_data                  49152      0          Y       3086 
NFS Server on localhost                     N/A       N/A        N       N/A  
Self-heal Daemon on localhost               N/A       N/A        Y       2796 
NFS Server on node2                         N/A       N/A        N       N/A  
Self-heal Daemon on node2                   N/A       N/A        Y       3085 

Task Status of Volume data
------------------------------------------------------------------------------
There are no active volume tasks

И на этом этапе, если я завершите работу node2, процесс блока node1 останется активным, так что по крайней мере я могу смонтировать и использовать его.

[root@node1 ~]# gluster volume status data

Status of volume: data
Gluster process                             TCP Port  RDMA Port  Online  Pid
------------------------------------------------------------------------------
Brick node1:/gluster_data                   49152     0          Y       2674 
NFS Server on localhost                     N/A       N/A        N       N/A  
Self-heal Daemon on localhost               N/A       N/A        Y       2796 

Task Status of Volume data
------------------------------------------------------------------------------
There are no active volume tasks

Итак, по моим наблюдениям, для работы тома gluster оба узла должны быть подключены хотя бы на мгновение, чтобы блоки могли запуститься, а затем если один узел выйдет из строя, это не повлияет на работу тома. Итак, как я могу заставить его работать, когда один из узлов выходит из строя после полного отключения электроэнергии?

3
задан 2 February 2016 в 16:01
1 ответ

Проблема, которая возникает у любого узла кластера при выходе из полной остановки:

Есть ли у меня последнее состояние, или нет? Я не хочу утверждать последнее , если я отстаю от других узлов.

Вот почему кластеризация очень часто включает некий механизм кворума, так что существующие узлы могут голосовать по состоянию и сходятся по консенсусу. Два узловых кластера не могут использовать этот механизм, так как никогда не будет раздела "большинство". В релизе 3.7 Gluster получил возможность кворума.

http://gluster.readthedocs.org/en/release-3.7.0beta1/Features/server-quorum/

В этом документе говорится, что 2-узловые кластеры не могут его использовать по той самой причине, которую я описал выше.

В вашем случае, вы можете подумать о создании некоторых узлов, предназначенных только для управления, в вашей установке Gluster. Это будут пэры, которые опробованы в кластере, но не содержат никаких хранилищ. Вся их причина существования будет заключаться в поддержании состояния кластера. Они могут существовать в различных стойках, центрах данных, фазах питания, чтобы попытаться убедиться, что они находятся в другом отказоустойчивом домене, нежели кирпичи хранилища. Это увеличит количество членов в кластере, а также повысит ваши шансы иметь раздел большинства, если один из блоков хранилища окажется без другого.

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

.
7
ответ дан 3 December 2019 в 05:12

Теги

Похожие вопросы