Я устанавливаю свою первую установку 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. Это нормальное поведение или какая-то ошибка?
Я видел непонятное сообщение об ошибке о неподключенном сокете с одноранговым узлом 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. Я пытался создать серверы Gluster, которые находились за устройством NAT и использовали общедоступный 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
Затем измените файл 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
и т.д
Затем одноранговый зонд и, наконец, создайте том, который затем был успешным.
Сомневаюсь, что использование IP-адресов (публичных) в этом случае сработает. Это должно работать, если вы используете частные адреса за NAT. В моем случае каждый сервер находился за NAT в облаке AWS.
Попробуйте явно определить количество реплик как четыре узла, используя этот формат: -
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 для обеспечения HA-избыточности виртуальных хранилищ данных KVM. магия