web-dev-qa-db-ja.com

このGlusterボリュームを作成できないのはなぜですか?

最初のGluster 3.4インストールをセットアップしています。分散複製ボリュームを作成するまでは問題ありません。

私は4つのサーバー192.168.0.11、192.168.0.12、192.168.0.13と192.168.0.14を持っています。

192.168.0.11から私は実行しました:

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

各サーバーの/ export/brick1にストレージボリュームがマウントされている

その後、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

しかし、私はエラーが出ます:

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

Gluster peer statusを実行すると、他の接続されたホストとの3つのピアが表示されます。つまり、ピアの数:3

ホスト名:192.168.0.12ポート:24007 Uuid:bcea6044-f841-4465-88e4-f76a0c8d5198状態:ピアのクラスター(接続済み)

ホスト名:192.168.0.13ポート:24007 Uuid:3b5c188e-9be8-4d0f-a7bd-b738a88f2199状態:クラスター内のピア(接続済み)

ホスト名:192.168.0.14ポート:24007 Uuid:f6f326eb-0181-4f99-8072-f27652dab064状態:ピアー(クラスター内)

ただし、192.168.0.12からは、同じコマンドで3つのホストも表示され、192.168.0.11もその一部です。つまり.

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は間違いなくクラスタの一部です。

問題は、glusterコマンドを実行すると、なぜ最初のglusterサーバーにボリュームを作成できないのかということです。これは正常な動作ですか、それとも何らかのバグですか?

9
Matt

ピア127.0.0.1の接続されていないソケットに関する不明瞭なエラーメッセージが表示されました。

[2013-08-16 00:36:56.765755] W [socket.c:1494:__ socket_proto_state_machine] 0-socket.management:ソケットからの読み取りに失敗しました。エラー(トランスポートエンドポイントが接続されていません)、ピア(127.0.0.1:1022)

私が抱えていた問題はNATによるものでした。 NATデバイスの背後にあるglusterサーバーを作成し、パブリックIPを使用して名前を解決しようとしていました。これはローカルマシンでは正しく機能しません。

私が持っていたのは、各ノードで次のようなものでした。

含むhostsファイル

192.168.0.11  gluster1
192.168.0.12  gluster2
192.168.0.13  gluster3
192.168.0.14  gluster4

修正は、信頼できるピアを最初に削除することでした

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

次に、各マシンのホストファイルを次のように変更します。

# 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

次にピアプローブを行い、最後にボリュームを作成します。ボリュームは成功しました。

この場合、IPアドレス(パブリックアドレス)を使用するとうまくいくとは思えません。 NATの背後にあるプライベートアドレスを使用する場合に機能します。私の場合、各サーバーはAWSクラウドのNATの背後にありました。

15
Matt

次の形式を使用して、レプリカ数を4つのノードとして明示的に定義してみてください:-

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

この純粋なレプリカでストライプがないと思いますか?

これを192.168.0.11から試してください:-

最初にすべてを切り離します。

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

次にこの形式で再度追加します

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

4ノードのレプリカセットを明示的に定義しました。また、トランスポートをtcpで明示的に定義しました。

レプリカセット内の2つのデバイス間でストライプ化する場合は、次のようなものを使用します。-

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

それを続けて、私は最近glusterを発見しました。私はこの分散型ファイルシステムのイデオロギーに夢中です。本物の芸術作品です。

私はglusterを使用して、KVM仮想データストアにHA冗長性を提供しています。魔法のもの

1
AngryWombat