Pourquoi ne puis-je pas créer ce volume brillant?


9

Je configure ma première installation de Gluster 3.4 et tout va bien jusqu'à ce que je veuille créer un volume répliqué distribué.

J'ai 4 serveurs 192.168.0.11, 192.168.0.12, 192.168.0.13 et 192.168.0.14.

Depuis 192.168.0.11 j'ai couru:

gluster peer probe 192.168.0.12
gluster peer probe 192.168.0.13
gluster peer probe 192.168.0.14

Sur chaque serveur, j'ai un volume de stockage monté sur / export / brick1

J'ai ensuite couru sur 192.168.0.11

gluster volume create gv0 replica2 192.168.0.11:/export/brick1 192.168.0.12:/export/brick1 192.168.0.13:/export/brick1 192.168.0.14:/export/brick1

Mais je reçois l'erreur:

volume create: gv0: failed: Host 192.168.0.11 is not in 'Peer in Cluster' state

Effectivement, si vous exécutez le statut d'homologue gluster, il affiche 3 homologues avec les autres hôtes connectés. Soit Nombre de pairs: 3

Nom d'hôte: 192.168.0.12 Port: 24007 Uuid: bcea6044-f841-4465-88e4-f76a0c8d5198 État: Peer dans le cluster (connecté)

Nom d'hôte: 192.168.0.13 Port: 24007 Uuid: 3b5c188e-9be8-4d0f-a7bd-b738a88f2199 État: homologue dans le cluster (connecté)

Nom d'hôte: 192.168.0.14 Port: 24007 Uuid: f6f326eb-0181-4f99-8072-f27652dab064 État: homologue dans le cluster (connecté)

Mais, à partir de 192.168.0.12, la même commande affiche également 3 hôtes et 192.168.0.11 en fait partie. c'est à dire

Number of Peers: 3

Hostname: 192.168.0.11
Port: 24007
Uuid: 09a3bacb-558d-4257-8a85-ca8b56e219f2
State: Peer in Cluster (Connected)

Hostname: 192.168.0.13
Uuid: 3b5c188e-9be8-4d0f-a7bd-b738a88f2199
State: Peer in Cluster (Connected)

Hostname: 192.168.0.14
Uuid: f6f326eb-0181-4f99-8072-f27652dab064
State: Peer in Cluster (Connected)

192.168.0.11 fait donc définitivement partie du cluster.

La question est, pourquoi ne puis-je pas créer le volume sur le premier serveur gluster lors de l'exécution de la commande gluster. Est-ce un comportement normal ou une sorte de bogue?

Réponses:


15

Je voyais un message d'erreur obscur sur un socket non connecté avec l'homologue 127.0.0.1.

[2013-08-16 00: 36: 56.765755] W [socket.c: 1494: __ socket_proto_state_machine] 0-socket.management: la lecture à partir du socket a échoué. Erreur (le point de terminaison de transport n'est pas connecté), homologue (127.0.0.1:1022)

Il s'avère que le problème que je rencontrais était dû au NAT. J'essayais de créer des serveurs gluster qui étaient derrière un périphérique NAT et d'utiliser l'adresse IP publique pour résoudre les noms. Cela ne fonctionnera tout simplement pas correctement pour la machine locale.

Ce que j'avais était quelque chose comme ce qui suit sur chaque nœud.

Un fichier d'hôtes contenant

192.168.0.11  gluster1
192.168.0.12  gluster2
192.168.0.13  gluster3
192.168.0.14  gluster4

Le correctif consistait à supprimer d'abord les pairs de confiance

sudo gluster peer detach gluster2
sudo gluster peer detach gluster3
sudo gluster peer detach gluster4

Modifiez ensuite le fichier d'hôtes sur chaque machine

# Gluster1
127.0.0.1     gluster1
192.168.0.12  gluster2
192.168.0.13  gluster3
192.168.0.14  gluster4


# Gluster2
192.168.0.11  gluster1
127.0.0.1     gluster2
192.168.0.13  gluster3
192.168.0.14  gluster4

etc

Ensuite, examinez les pairs et créez enfin le volume qui a ensuite réussi.

Je doute que l'utilisation d'adresses IP (les adresses publiques) fonctionne dans ce cas. Cela devrait fonctionner si vous utilisez les adresses privées derrière votre NAT. Dans mon cas, chaque serveur était derrière un NAT dans le cloud AWS.


1
Dans mon cas, je n'ai pas eu à toucher 127.0.0.1, travailler avec une adresse IP interne était suffisant
arod

1

Essayez de définir explicitement le nombre de réplicas comme quatre nœuds en utilisant ce format: -

gluster volume create NEW-VOLNAME [stripe COUNT] [replica COUNT] [transport <tcp | rdma>] NEW-BRICK ...

Je suppose que cette réplique pure et sans rayures?

essayez ceci à partir de 192.168.0.11: -

détachez tout d'abord:

sudo gluster peer detach 192.168.0.12
sudo gluster peer detach 192.168.0.13
sudo gluster peer detach 192.168.0.14

ajouter à nouveau dans ce format

gluster volume create gv0 replica 4 transport tcp 192.168.0.11:/export/brick1 192.168.0.12:/export/brick1 192.168.0.13:/export/brick1 192.168.0.14:/export/brick1

Remarque J'ai explicitement défini ce jeu de réplicas à quatre nœuds. J'ai également défini explicitement le transport sur TCP .

si vous souhaitez répartir deux appareils dans un jeu de répliques, vous utiliserez quelque chose comme ceci: -

gluster volume create gv0 stripe 2 replica 2 transport tcp 192.168.0.11:/export/brick1 192.168.0.12:/export/brick1 192.168.0.13:/export/brick1 192.168.0.14:/export/brick1

Continuez comme ça, j'ai découvert gluster récemment et je suis amoureux de cette idéologie pour les systèmes de fichiers distribués .. une véritable œuvre d'art.

J'utilise gluster pour fournir une redondance HA à une banque de données virtuelle KVM. trucs magiques


Malheureusement, j'obtiens exactement la même erreur. De plus, lorsque je ne spécifie pas de nombre de répliques et que tous les volumes sont actuellement détachés, j'obtiens la même erreur. En supprimant la brique 192.168.0.11, il prétend ensuite que l'hôte 192.168.0.12 n'est pas dans l'état de cluster homologue, vous devez donc d'abord les tester. C'est du moins le cas dans la version 3.4
Matt

Vous avez peut-être raison de suggérer que c'est juste une bizarrerie dans la dernière version. le fait que vous définissez les trois homologues dans l'ensemble indique que les brinks fonctionnent tous, quelles que soient les erreurs définies sur 192.168.0.11. Que se passe-t-il lorsque vous montez le partage à partir d'un cinquième nœud de test et que vous écrivez sur glusterFS. l'écriture apparaît-elle sur toutes les briques?
AngryWombat

En fait, je ne peux même pas créer un volume distribué normal sur une seule brique. Je reçois juste une erreur qui dit qu'il n'a pas pu être créé. Les journaux contiennent des informations inutiles. Cela me donne envie de le jeter complètement.
Matt

J'ai eu un problème similaire il y a 5 semaines, le passage à la v3.3 a résolu mon problème. La seule autre suggestion à ce stade serait de considérer un rôle de retour à 3.3 et de retester.
AngryWombat

Peut-être aussi commencez par les deux nœuds et continuez à partir de là ... Quelle distribution utilisez-vous? J'ai fait fonctionner le mien sur buntu 12.04 avec ce dépôt: - sudo add-apt-repository ppa: semiosis / ubuntu-glusterfs-3.3
AngryWombat
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.