我正在设置我的第一个Gluster 3.4安装,并且一切都很好,直到我想创build一个分布式复制卷。
我有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对等状态,它会显示其他连接主机的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服务器上创build卷。 这是正常的行为还是某种错误?
我看到一个关于与对等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)
事实certificate,我遇到的问题是由于NAT。 我试图创build位于NAT设备后面的gluster服务器,并使用公共IP来parsing名称。 这只是不能正常工作的本地机器。
我在每个节点上都是这样的。
包含的主机文件
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
然后更改每台机器上的hosts文件
# 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
等等
然后对等探测,最后创build成功的音量。
我怀疑在这种情况下使用IP地址(公共的)将工作。 它应该工作,如果你使用NAT后面的私人地址。 就我而言,每个服务器都在AWS云端的NAT之后。
尝试使用以下格式显式地将副本计数定义为四个节点:
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
注意我明确地定义了这个四节点副本集。 我也明确定义了通过tcp的传输。
如果你想在一个副本集中的两个设备上分条,那么你会使用这样的东西: –
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冗余。 魔术的东西