web-dev-qa-db-fra.com

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

Je confecte mon premier Gluster 3.4 Installation et tout est bon jusqu'à ce que je souhaite 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.

À partir de 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é à/exportation/brique1

J'ai ensuite couru le 192.168.0.11

volume de flustrer 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 j'ai l'erreur:

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

Bien sûr, si vous exécutez Statut de pair Gluster, il affiche 3 pairs avec les autres hôtes connectés. I.e. Nombre de pairs: 3

Nom d'hôte: 192.168.0.12 Port: 24007 UUID: BCEA6044-F841-4465-88E4-F76A0C8D5198 State: Peer In Cluster (connecté)

Nom d'hôte: 192.168.0.13 Port: 24007 UUID: 3B5C188E-9BE8-4D0F-A7BD-B738A88F2199

Nom d'hôte: 192.168.0.14 Port: 24007 UUID: F6F326EB-0181-4F99-8072-F27652DAB064 State: Economie de pair en cluster (connecté)

Mais, à partir du 192.168.0.12, la même commande montre é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)

Donc, 192.168.0.11 fait certainement partie du cluster.

La question est que je ne suis pas capable de créer le volume sur le premier serveur Gluster lors de l'exécution de la commande Glist. Est ce comportement normal ou une sorte de bug?

9
Matt

Je voyais un message d'erreur obscur sur une prise non connectée avec pair 127.0.0.1.

[2013-08-16 00: 36: 56.765755] w [socket.c: 1494: __ socket_proto_state_machine] 0-Socket.management: la lecture de la prise a échoué. Erreur (le point de port de transport n'est pas connecté), pair (127.0.0.1:1022)

Cela révèle le problème que j'avais été dû à Nat. J'essayais de créer des serveurs de Gluster qui étaient derrière A NAT Périphérique et utilisez l'IP publique pour résoudre les noms. Cela ne va tout simplement pas fonctionner correctement pour la machine locale.

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

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 était de supprimer les pairs de confiance en premier

Sudo gluster peer detach gluster2
Sudo gluster peer detach gluster3
Sudo gluster peer detach gluster4

Puis changez le fichier d'hôtes sur chaque machine pour être

# 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, Sonde de pair et créer enfin le volume qui a ensuite réussi.

Je doute que d'utiliser des adresses IP (les publics) fonctionnent dans ce cas. Cela devrait fonctionner si vous utilisez les adresses privées de votre NAT. Dans mon cas, chaque serveur était derrière A NAT dans le cloud AWS.

15
Matt

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

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

Je suppose cette réplique pure et aucune bande?

essayez ceci à partir de 192.168.0.11: -

détachez tout en premier:

Sudo gluster peer detach 192.168.0.12
Sudo gluster peer detach 192.168.0.13
Sudo gluster peer detach 192.168.0.14

suivant re-ajouter 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éplica à quatre nœuds. J'ai également défini explicitement le transport sur TCP.

si vous souhaitez rayer sur deux appareils dans un ensemble de réplica, vous utiliseriez 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 avec cela, j'ai découvert que Gluster récemment et que je suis amoureux de cette idéologie pour les systèmes de fichiers distribués. Un vrai art.

J'utilise Gluster pour fournir une redondance à A KVM DataStores virtuels. Stuff Magic

1
AngryWombat