Чому я не можу створити цей об'єм блиску?


9

Я налаштовую свою першу інсталяцію 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

Звичайно, якщо ви маєте статус однорангового рівня, він показує 3 однолітки з іншими підключеними хостами. тобто кількість однолітків: 3

Ім'я хоста: 192.168.0.12 Порт: 24007 Uuid: bcea6044-f841-4465-88e4-f76a0c8d5198 Стан: Peer in Cluster (Connected)

Ім'я хоста: 192.168.0.13 Порт: 24007 Uuid: 3b5c188e-9be8-4d0f-a7bd-b738a88f2199 Стан: Peer in Cluster (Підключено)

Ім'я хоста: 192.168.0.14 Порт: 24007 Uuid: f6f326eb-0181-4f99-8072-f27652dab064 Стан: Peer in Cluster (Підключено)

Але з 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. Це нормальна поведінка чи якась помилка?

Відповіді:


15

Я бачив незрозуміле повідомлення про помилку щодо непоєднаного сокета з одноранговим 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, і використовувати загальнодоступний IP для вирішення імен. Це просто не працює належним чином для локальної машини.

Що у мене було щось на зразок наступного на кожному вузлі.

Файл хосту, що містить

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. У моєму випадку кожен сервер був за NAT у хмарі AWS.


1
У моєму випадку я не повинен торкатися до 127.0.0.1, працюючи з внутрішнім IP - адресою був досить
arod

1

Спробуйте чітко визначити кількість реплік чотирма вузлами, використовуючи цей формат: -

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 для забезпечення надмірності HA у віртуальних сховищах даних KVM. магічні речі


На жаль, я отримую абсолютно таку ж помилку. Крім того, коли не вказується кількість реплік, і з усіма томами, що в даний час відокремлюються, я отримую однакову помилку. Вилучивши цеглу 192.168.0.11, вона стверджує, що хост 192.168.0.12 не знаходиться у статусі кластера, що вам належить, тому вам потрібно спочатку перевірити їх. Принаймні це так у версії 3.4
Метт

Можливо, ви маєте рацію, запропонувавши лише його химерність в останній версії. той факт, що ви встановлюєте всіх трьох однолітків у наборі, вказує на те, що всі роботи працюють незалежно від помилок, встановлених на 192.168.0.11. Що відбувається, коли ви змонтуєте пай з п'ятого тестового вузла і записуєте в glusterFS. чи пише на всіх цеглинах?
AngryWombat

Насправді я навіть не можу створити нормальний розподілений об'єм на одній цеглі. Я просто отримую помилку, яка говорить, що її неможливо створити. У журналах є безрезультатна інформація. Мені це здається, що я його взагалі викидаю.
Метт

У мене була аналогічна проблема 5 тижнів тому, перехід на v3.3 вирішив мою проблему. Єдиною іншою пропозицією на цьому етапі було б врахування ролі до 3.3 та повторне тестування.
AngryWombat

Також, можливо, просто почніть з двох вузлів і працюйте звідти ... Який дистрибутив ви використовуєте? У мене запущено buntu 12.04 з цим репо: - sudo add-apt-repository ppa: semiosis / ubuntu-glusterfs-3.3
AngryWombat
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.