Не удается восстановить неисправный узел кластера

Я создал кластер glusterfs (6.1) с 6 серверами (node01 - node06) в режиме Replicate (=6), но не могу восстановить неисправный сервер (node01, этот vm был сброшен / перестроен, но я хочу сохранить его имя хоста /ip) после этого учебное пособие ( https://support.rackspace.com/how-to/recover-from-a-failed-server-in-a-glusterfs-array/):

  • Я могу добавить node01 обратно в кластер, получив UUID с работающего сервера (состояние однорангового узла) и обновив файл "/var/lib/glusterd/glusterd.info" (node01).

  • Затем я обновил расширенные атрибуты (rust.glusterfs.volume-id) каталога node01 и перезапустил службу кластеров:

sudo setfattr -n trust.glusterfs.volume-id -v хэш / data / brick1 / vol

sudo systemctl перезапустить Glusterd

объем sudo

Объём sudo

  • логи и выводы:

Состояние тома кластера sudo

Brick node01:/data/brick1/volr              N/A       N/A        N       N/A
Brick node02:/data/brick1/volr              49152     0          Y       5734
Brick node03:/data/brick1/volr              49152     0          Y       5733
Brick node04:/data/brick1/volr              49152     0          Y       5691  
Brick node05:/data/brick1/volr              49152     0          Y       5721  
Brick node06:/data/brick1/volr              49152     0          Y       5723

объем sudo

Launching heal operation to perform full self heal on volume volr has been successful
Use heal info commands to check status.

Объём sudo

Brick node01:/data/brick1/volr
Status: Transport endpoint is not connected
Number of entries: -

Brick node02:/data/brick1/volr
Status: Connected
Number of entries: 0

Brick node03:/data/brick1/volr
Status: Connected
Number of entries: 0

Brick node04:/data/brick1/volr
Status: Connected
Number of entries: 0

Brick node05:/data/brick1/volr
Status: Connected
Number of entries: 0

Brick node06:/data/brick1/volr
Status: Connected
Number of entries: 0

Любая помощь будет принята с благодарностью.

1 ответ

Решение

Я смог воспроизвести вашу проблему с точно такими же симптомами.

Вы правильно посмотрели переустановленный узел, node01, но процедура замены кирпича не очень хорошо документирована.

В официальной документации есть несколько странных инструкций по замене неисправного кирпича на новый с другим именем. Это излишне сложно, и я думаю, что вы хотите использовать то же имя кирпича.

Вы не смогли запустить кирпич, потому что у заменяющего кирпича не было необходимых метаданных, хранящихся в node1:/data/brick1/volr/.glusterfs,

Вот что я сделал, чтобы заменить кирпич:


При условии, что:

  • node01 это восстановленный сервер, который уже был запущен,
  • есть объем называется vol, а также
  • кирпич для замены node01:/data/brick1/volr

Сделайте следующее:

  1. На node01Выключите GlusterFS:

    sudo killall -9 glusterd glusterfsd glusterfs
    
  2. Удалите кирпич, чтобы получить чистый лист:

    sudo rm -rfv /data/brick1/volr
    
  3. Создайте папку Brick снова:

    sudo mkdir -pv /data/brick1/volr
    
  4. Запустить снова glusterd.service:

    sudo systemctl restart glusterd.service
    
  5. Сбросить кирпич:

    sudo gluster volume reset-brick vol node01:/data/brick1/volr node01:/data/brick1/volr commit
    
  6. Если процесс заживления еще не начался, запустите его:

    sudo gluster volume heal vol full
    

Дополнительные ресурсы

Другие вопросы по тегам