Riak не позволяет добавить узел, потому что он находится в своем собственном кластере
(это репост моего вопроса от переполнения стека, там был оффтоп, вот правильное место, чтобы спросить его)
Я пытался построить кластер Riak на Raspberry Pi. Создав изображение с помощью Erland и Riak, кажется, что один узел работает правильно. Затем я клонировал это изображение для моих разных пи:
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!
Это довольно запутанно. Очевидно, я не понимаю, что здесь происходит, я надеюсь, что кто-то может это прояснить.
2 ответа
Попробуйте эти шаги:
riak stop
на всех узлахrm -rf /var/lib/riak/ring/*
на всех узлах- Двойная проверка
/etc/riak/vm.args
для обеспечения-name
аргумент использует правильный IP-адрес riak start
на всех узлах- Re беги
riak-admin cluster join riak@192.168.8.59
Команда на двух других узлах. Важно помнить, что все другие узлы присоединяются к одному и тому же "начальному" узлу -riak@192.168.8.59
в этом случае - Бежать
riak-admin cluster plan
проверить наriak@192.168.8.59
узел - Бежать
riak-admin cluster commit
наriak@192.168.8.59
узел
Нет необходимости останавливать все узлы и удалять кольцевые данные. Операция кластера, такая как объединение узлов, может быть выполнена после пометки как остановленного узла заявителя. Ниже приведены примеры шагов для сбоя кластера из 3 узлов и заявителя: https://gist.github.com/shino/dd9a75e84b2b5792a079.