Назад | Перейти на главную страницу

Riak не позволяет добавлять узел, потому что он находится в собственном кластере

(это репост моего вопроса из переполнения стека, там он был оффтопом, вот правильное место, чтобы его задать)

Я пытался построить кластер Riak на Raspberry Pi. Создал образ с Эрландом и Риаком, похоже, один узел работает правильно. Затем я клонировал это изображение для своего другого Pi:

riak@192.168.8.59
riak@192.168.8.214
riak@192.168.8.215

Все они имеют идентичную конфигурацию, единственное, что отличается, - это статические IP-адреса в vm.args и app.config.

Теперь проблема в том, что я строю кластер, начиная с riak@192.168.8.59, добавил узел riak@192.168.8.214 и вроде все нормально:

# ./riak-admin member-status
================================= Membership ==================================
Status     Ring    Pending    Node
-------------------------------------------------------------------------------
valid     100.0%     50.0%    'riak@192.168.8.214'
valid       0.0%     50.0%    'riak@192.168.8.59'
-------------------------------------------------------------------------------

Хотя однажды я попытаюсь добавить третий узел (riak@192.168.8.215) Я получаю следующее сообщение об ошибке:

# ./riak-admin cluster join riak@192.168.8.215
Failed: This node is already a member of a cluster

Почему у меня не было этой проблемы с riak@192.168.8.214? Кажется, это происходит только с riak@192.168.8.215 узел.

Я не могу принудительно удалить riak@192.168.8.215 из этого кластера, потому что он говорит:

# ./riak-admin cluster force-remove riak@192.168.8.215
Failed: 'riak@192.168.8.215' is the claimant (see: riak-admin ring_status).
The claimant is the node responsible for initiating cluster changes,
and cannot forcefully remove itself. You can use 'riak-admin down' to
mark the node as offline, which will trigger a new claimant to take
over.  However, this will clear any staged changes.

Или

# ./riak-admin cluster leave                          
Failed: 'riak@192.168.8.215' is the only member.

Я просто не могу этого понять, думаю, мне нужна свежая точка зрения. Я также хотел бы добавить, что выполняю все шаги из документации:

http://docs.basho.com/riak/latest/ops/building/basic-cluster-setup/

А также принял во внимание учебник для Raspberry Pi (но я не использую Raspbian, я использую ArchLinux).

http://basho.com/building-a-riak-cluster-on-raspberry-pi/

Я также добавлю, что сеть работает нормально, я могу пинговать и ssh с каждого узла на каждый узел.

Я рассчитываю на ваши советы. Ура!

РЕДАКТИРОВАТЬ:

Как было сказано ранее, они предложили использовать riak-admin down <node> команда, чтобы остановить этот узел claimant, это тоже не сработало.

# ./riak-admin down riak@192.168.8.215
Failed: riak@192.168.8.215 is up

Я не могу остановить это, потому что он работает ... Однако если я попробую то же самое, когда Риак не встает, я получаю:

# ./riak-admin down riak@192.168.8.215
Node is not running!

Это довольно сбивает с толку. Очевидно, я не понимаю, что здесь происходит, надеюсь, кто-то сможет это прояснить.

Попробуйте следующие шаги:

  • riak stop на всех узлах
  • rm -rf /var/lib/riak/ring/* на всех узлах
  • Двойная проверка /etc/riak/vm.args для обеспечения -name аргумент использует правильный IP-адрес
  • riak start на всех узлах
  • Повторно запустить riak-admin cluster join riak@192.168.8.59 command на двух других узлах. Важно помнить, что все остальные узлы присоединяются к одному «стартовому» узлу - riak@192.168.8.59 в таком случае
  • Бегать riak-admin cluster plan проверить на riak@192.168.8.59 узел
  • Бегать riak-admin cluster commit на riak@192.168.8.59 узел

Нет необходимости останавливать все узлы и удалять данные кольца. Операция кластера, такая как присоединение узлов, может быть выполнена после пометки остановленного узла-заявителя как отключенного. Ниже приведены примеры шагов для трехузлового кластера и отказа заявителя: https://gist.github.com/shino/dd9a75e84b2b5792a079 .