Почему при тестировании узла Riak "тест riak-admin" не выполняется, а "curl -v http://127.0.0.1/8098/types/default/props" завершается успешно
Я настраиваю кластер из пяти физических узлов. Остальные четыре подходят ко всем тестам, кроме одного, который не прошел тест admin-riak. Состояние кластера для нескольких команд riak-admin показано ниже
do-admin@DBNode1:~$ sudo riak-admin member-status
=============== Membership ============================
Status Ring Pending Node
-------------------------------------------------------------------------------
valid 20.3% -- 'riak@dbnode1.do.ug'
valid 20.3% -- 'riak@dbnode2.do.ug'
valid 20.3% -- 'riak@dbnode3.do.ug'
valid 20.3% -- 'riak@dbnode4.do.ug'
valid 18.8% -- 'riak@dbnode5.do.ug'
-------------------------------------------------------------------------------
Valid:5 / Leaving:0 / Exiting:0 / Joining:0 / Down:0
dot-admin@DBNode1:~$ sudo riak-admin ring-status
================================== Claimant ===================================
Claimant: 'riak@dbnode2.do.ug'
Status: up
Ring Ready: true
============================== Ownership Handoff ==============================
No pending changes.
============================== Unreachable Nodes ==============================
All nodes are up and reachable
do-admin@DBNode1:~$ sudo riak-admin cluster status
---- Cluster Status ----
Ring ready: true
+------------------------+------+-------+-----+-------+
| node |status| avail |ring |pending|
+------------------------+------+-------+-----+-------+
| riak@dbnode1.do.ug |valid | up | 20.3| -- |
| (C) riak@dbnode2.do.ug |valid | up | 20.3| -- |
| riak@dbnode3.do.ug |valid | up | 20.3| -- |
| riak@dbnode4.do.ug |valid | up | 20.3| -- |
| riak@dbnode5.do.ug |valid | up | 18.8| -- |
+------------------------+------+-------+-----+-------+
Key: (C) = Claimant; availability marked with '!' is unexpected
do-admin@DBNode1:~$ curl -v http://dbnode1.dot.ug:8098/types/default/props
* Hostname was NOT found in DNS cache
* Trying 192.168.172.38...
* Connected to dbnode1.dot.ug (192.168.172.38) port 8098 (#0)
> GET /types/default/props HTTP/1.1
> User-Agent: curl/7.35.0
> Host: dbnode1.dotshule.ug:8098
> Accept: */*
>
< HTTP/1.1 200 OK
< Vary: Accept-Encoding
* Server MochiWeb/1.1 WebMachine/1.10.5 (jokes are better explained) is not blacklisted
< Server: MochiWeb/1.1 WebMachine/1.10.5 (jokes are better explained)
< Date: Sat, 17 Jan 2015 21:05:22 GMT
< Content-Type: application/json
< Content-Length: 428
<
* Connection #0 to host dbnode1.dotshule.ug left intact
{"props":{"allow_mult":false,"basic_quorum":false,"big_vclock":50,"chash_keyfun":{"mod":"riak_core_util","fun":"chash_std_keyfun"},"dvv_enabled":false,"dw":"quorum","last_write_wins":false,"linkfun":{"mod":"riak_kv_wm_link_walker","fun":"mapreduce_linkfun"},"n_val":3,"notfound_ok":true,"old_vclock":86400,"postcommit":[],"pr":0,"precommit":[],"pw":0,"r":"quorum","rw":"quorum","small_vclock":50,"w":"quorum","young_vclock":20}}
dot-admin@DBNode1:~$ sudo riak-admin test
Node 'riak@dbnode1.dot.ug ' is not reachable from 'riak_test@dbnode1.dot.ug'.
После всех этих тестов с одинаковыми результатами на всех узлах, за исключением ** теста riak-admin **, который похож на все остальные узлы. Для третьего узла
dot-admin@DBNode3:~$ sudo riak-admin test
Successfully completed 1 read/write cycle to 'riak@dbnode3.dotshule.ug'
Я сомневаюсь, что этот кластер готов к использованию для хранения данных, потому что на этом ресурсе сайта Basho говорят, что вы можете использовать любой из методов, чтобы проверить, готов ли узел. Они не говорят, что с узлом все в порядке, если один метод успешен, а другой - неуспешен. Так что я застрял на том, чтобы пойти дальше, чтобы использовать кластер или нет. Удивительно, но этот узел успешно во всех операциях присоединился к нему в кластере!! Я попытался создать этот узел с нуля снова, но это не помогло!
За любую помощь буду рад.
1 ответ
Ошибка Node <targetnode> is not reachable from <sourcenode>.
указывает на то, что net_adm:ping(<targetnode>)
возвращенный pang
вместо понг.
Проверь это:
epmd
процесс запущен/usr/lib/riak/erts-5.10.3/epmd -names
показать, что узел зарегистрирован (скорректировать путь в соответствии с вашей установкой)- selinx, iptables или другое программное обеспечение безопасности не блокирует временные порты или порт epmd 4369
Модуль net_adm попытается разрешить часть узла целевого имени узла, то есть часть после '@', свяжется с epmd на порту 4369 по этому IP-адресу, чтобы получить порт для указанного узла, затем установит TCP-соединение с узлом в этом порту. Что-то в этом процессе не завершается.