GlusterFS розділив мозок без шляху, що це означає?


11

Я щойно перевіряв стан своїх точок glusterfs, і в мене є запис із розділеними записами мозку, які не мають шляху:

# gluster volume heal private_uploads info
Brick server01:/var/lib/glusterfs/brick01/uploads/
<gfid:4c0edafb-0c28-427c-a162-e530280b3396> - Is in split-brain
<gfid:42d62418-1be9-4f96-96c4-268230316869> - Is in split-brain
Number of entries: 2

Brick server02:/var/lib/glusterfs/brick01/uploads/
<gfid:42d62418-1be9-4f96-96c4-268230316869> - Is in split-brain
<gfid:4c0edafb-0c28-427c-a162-e530280b3396> - Is in split-brain
Number of entries: 2

Що це означає? Як це виправити?

Я використовую GlusterFS 3.5.9:

# gluster --version
glusterfs 3.5.9 built on Mar 28 2016 07:10:17
Repository revision: git://git.gluster.com/glusterfs.git

Ви використовуєте лише 2 сервери у своєму кластері?
сироти

Відповіді:


8

Що таке спліт-мозок?

Як зазначається в Офіційній документації з управління Split-Brain, наданій RedHat, розділений мозок - це стан, коли невідповідності даних або доступності виникають внаслідок обслуговування двох окремих наборів даних з перекриттям за обсягом, або через сервери в мережевому дизайні, або стан відмови, заснований на тому, що сервери не передають та синхронізують свої дані один одному. І це термін, застосовний для копіювання конфігурації.

Зверніть увагу, що сказано, що "стан відмови, заснований на тому, що сервери не передають та синхронізують свої дані один одному" - через будь-яку ймовірність - але це не означає, що ваші вузли можуть втратити з'єднання. Peer може бути ще в кластері та з'єднаний.

Типи розділеного мозку:

У нас є три різні типи розділеного мозку, і наскільки я бачу ваш, це вхід розділеного мозку. Для пояснення трьох типів розділеного мозку:

  • Дані спліт-мозок: Зміст файлу під розділеним мозком різний у різних парах реплік і автоматичне загоєння неможливо.

  • Метадані розділеного мозку : , Метадані файлів (наприклад, розширений атрибут, визначений користувачем) різні, і автоматичне виправлення неможливо.

  • Введення розділеного мозку: Це трапляється, коли у файлі є різні gfids на кожній з пар реплік.


Що таке GFID?

Внутрішній ідентифікатор файлу GlusterFS (GFID) - це uuid, унікальний для кожного файлу у всьому кластері. Це аналогічно номеру inode у звичайній файловій системі. GFID файлу зберігається у його імені xattr trusted.gfid. Щоб знайти шлях від GFID, я настійно рекомендую прочитати цю офіційну статтю, надану GlusterFS.


Як вирішити запис розділеного мозку?

Існує кілька методів, щоб запобігти виникненню розділеного мозку, але для його усунення відповідні файли gfid-посилання потрібно видалити. Файли gfid-посилання присутні у каталозі .glusterfs у каталозі цегли верхнього рівня. До речі, будьте уважні, що перед тим, як видалити gfid-посилання, ви повинні переконатися у відсутності жорстких посилань на файли, присутні на цій цеглі. Якщо жорсткі посилання існують, їх потрібно видалити. Потім ви можете скористатися процесом самолікування, виконавши наступні команди.

Тим часом, для перегляду списку файлів на томі, що знаходяться в розділеному мозку, ви можете використовувати:

# gluster volume heal VOLNAME info split-brain

Також слід остерігатися, що для тиражуваних томів, коли цегла переходить в офлайн і повертається в Інтернеті, для повторної синхронізації всіх реплік потрібно самолікування.

Для перевірки стану оздоровлення томів та файлів можна скористатися:

# gluster volume heal VOLNAME info

Оскільки ви використовуєте версію 3.5, у вас немає автоматичного зцілення. Тож виконуючи вказані раніше дії, потрібно запустити самолікування. Робити так:

  • Тільки у файлах, які потребують загоєння:

    # gluster volume heal VOLNAME

  • На всіх файлах:

    # gluster volume heal VOLNAME full

Сподіваюся, це допоможе вам вирішити свою проблему. Будь ласка, прочитайте офіційні документи для отримання додаткової інформації. Ура.


2

Я думаю, що документ досить зрозумілий, він навіть наводив вам подібний приклад.

І для лікувальних команд Глюстерфа, таких як

гучність глюстеру зцілити ** VOLNAME ** спліт-мозок останній-mtime ** ФАЙЛ **

FILE може бути як повним ім'ям файлу, як видно з кореня тома (або) gfid-string представлення файлу

Тож вам не потрібно турбуватися з цього приводу.

І як конвертувати GFID в шлях говорить:

Внутрішній ідентифікатор файлу GlusterFS (GFID) - це uuid, унікальний для кожного файлу у всьому кластері.

цей скрипт може сказати вам, яке ім’я файлу належить до якого gfid, але відбувся розкол мозку, він може не мати імені файлу.

Ви працюєте в 3.5 і не маєте полуавтоматичне лікування cdd, тому вам може знадобитися самостійно виправити конфлікт вручну, що зазвичай означає вирішити, який файл gfid потрібно видалити.


Моя версія Gluster, здається, не має такої команди, інакше, так, це просто. Крім того, у мене немає імен файлів, у мене є uuids.
pupeno

2

Як це виправити?

Роздільну роздільну здатність мозку можна знайти тут . У випадку, якщо це не допоможе багато, керівництво як робити тут повинно зробити свою роботу. У цьому випадку я вважаю статтю також корисною.

Як уникнути спліт-мозку.

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

Деякі приклади.

VMware VSAN дозволяє запускати 2-вузловий кластер із свідченням диска, що працює на 3-му хості або в хмарі. Джерело

StarWind Virtual SAN працює лише в 2-вузлових налаштуваннях за допомогою сервісу Microsoft Failover Cluster, який також містить механізм голосування кворуму, щоб уникнути проблеми з розділеним мозком. Джерело

Для обох мережа Heartbeat використовується для обслуговування / контролю зв'язку між вузлами та кворумом. Щоб уникнути розщеплення мозку, я бачу, що обов'язково потрібно переходити із зайвими каналами серцебиття.


1

спліт-мозок виникає, коли два вузли кластера відключені. Кожен вузол вважає, що інший не працює.

розщеплений мозок

Щоб виправити це, ви повинні зрозуміти, чому два ваших вузла вже не розмовляють між собою.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.