(это репост моего вопроса из переполнения стека, там он был оффтопом, вот правильное место, чтобы его задать)
Я пытался построить кластер 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 .