Почему при тестировании узла Riak «тест riak-admin» завершается неудачно, а «curl -v http://127.0.0.1/8098/types/default/props» завершается успешно

Я настраиваю кластер riak из пяти физических узлов. Остальные четыре успешно прошли все тесты, за исключением одного, который не прошел тест admin-riak. Состояние кластера для нескольких команд riak-admin показано ниже.

do-admin@DBNode1:~$ sudo riak-admin member-status  
=============== Membership ============================
Status     Ring    Pending    Node
-------------------------------------------------------------------------------
valid      20.3%      --      '[email protected]'
valid      20.3%      --      '[email protected]'
valid      20.3%      --      '[email protected]'
valid      20.3%      --      '[email protected]'
valid      18.8%      --      '[email protected]'
-------------------------------------------------------------------------------
Valid:5 / Leaving:0 / Exiting:0 / Joining:0 / Down:0

dot-admin@DBNode1:~$ sudo riak-admin ring-status
================================== Claimant ===================================
Claimant:  '[email protected]'
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|
+------------------------+------+-------+-----+-------+
|     [email protected] |valid |  up   | 20.3|  --   |
| (C) [email protected] |valid |  up   | 20.3|  --   |
|     [email protected] |valid |  up   | 20.3|  --   |
|     [email protected] |valid |  up   | 20.3|  --   |
|     [email protected] |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 '[email protected] ' is not reachable from '[email protected]'.

После всех этих тестов с одинаковыми результатами на всех узлах, кроме теста **riak-admin**, который аналогичен этому на всех других узлах. Для третьего узла

dot-admin@DBNode3:~$ sudo riak-admin test
Successfully completed 1 read/write cycle to '[email protected]'

Я сомневаюсь, что этот кластер готов к использованию для хранения данных, потому что на этом Ресурс сайта Басё, говорят, что можно использовать любой из методов, чтобы проверить, готова ли нода. Они не говорят, что узел все еще в порядке, если один метод работает, а другой терпит неудачу. Поэтому я застрял в том, стоит ли продолжать использовать кластер или нет. Удивительно, но этому узлу удалось во всех операциях присоединиться к нему в кластере!! Я попытался снова создать этот узел с нуля, но это не помогло!

За любую помощь буду рад.


person Vianney Sserwanga    schedule 17.01.2015    source источник
comment
Было ли изменено имя узла в конфигурационном файле после запуска Riak? Команда riak-admin test должна получить имя узла из файла конфигурации с помощью сценария env.sh. Тот факт, что он получает dbnode1.dot.ug, когда member_status показывает [email protected], по-видимому, означает, что он был изменен.   -  person Joe    schedule 19.01.2015
comment
Нет, это ошибка редактирования, все узлы относятся к этой номенклатуре [email protected]   -  person Vianney Sserwanga    schedule 20.01.2015


Ответы (1)


Ошибка Node <targetnode> is not reachable from <sourcenode>. указывает на то, что net_adm:ping(<targetnode>) вернул pang вместо pong.

Проверь это:

  • процесс epmd запущен
  • /usr/lib/riak/erts-5.10.3/epmd -names показать, что узел зарегистрирован (настройте путь в соответствии с вашей установкой)
  • selinx, iptables или другое программное обеспечение безопасности не блокирует эфемерные порты или порт 4369 epmd

Модуль net_adm попытается разрешить хостовую часть имени целевого узла, т. е. часть после «@», связаться с epmd по порту 4369 по этому IP-адресу, чтобы получить порт для указанного узла, а затем установить TCP-соединение с узлом. в этом порту. Что-то в этом процессе не завершается.

person Joe    schedule 20.01.2015
comment
Когда я запускаю sudo riak attach на любом другом узле, чтобы получить доступ к терминалу erlang, а затем запускаю net_adm:ping('[email protected]'). Я получаю pong. Когда я запускаю nodes(), он также появляется. Я получаю те же результаты для других узлов, когда выполняю ту же процедуру на этом узле!! Порт epmd 4369 также открыт для всех узлов.... - person Vianney Sserwanga; 21.01.2015
comment
Я не знаю внутренней операции этой команды оболочки riak-admin sudo riak-admin test, и до сих пор я не знаю, откуда берется этот другой узел [email protected] в ответе Node '[email protected] ' is not reachable from '[email protected]'., когда я запускаю эту команду sudo riak-admin test. Basho сообщает, что в случае сбоя узел не готов!! - person Vianney Sserwanga; 21.01.2015
comment
как насчет riak ping из узла, у которого возникли проблемы? - person Joe; 21.01.2015
comment
sudo riak ping возвращает pong. Я думаю, это указывает на то, что узел riak работает на резидентной (локальной) машине. - person Vianney Sserwanga; 22.01.2015
comment
Это очень странно, потому что он выполняет точно такую ​​же проверку, которая вызывает указанную вами ошибку. riak ping использует код здесь для проверки связи node, riak-admin test использует код здесь для вызова функции client_test. Оба теста с net_adm:ping. Если riak ping может пропинговать локальный узел, а riak-admin test не может, возможно, проблема с разрешениями или selinux? - person Joe; 22.01.2015
comment
SELinux не устанавливается, и разрешения установлены по умолчанию, если я могу что-то сказать!!. Я запускал даже riak-admin diag вроде все нормально. Я использовал кластер в этом состоянии, кажется, работает нормально! Теперь это странно. - person Vianney Sserwanga; 22.01.2015
comment
Это особенно странно, потому что riak-admin test сначала вызывает node_up_check, который вызывает net_adm:ping, что завершается успешно (в противном случае он прервался бы). Затем он вызывает riak:client_test, который также вызывает net_adm:ping, который затем терпит неудачу. - person Joe; 22.01.2015
comment
Я думаю, что когда riak-admin test настраивает тестовый узел, [email protected] используемый файл cookie может отличаться от файла cookie, который использует узел, поскольку я изменил значение файла cookie со значения по умолчанию в файле riak.conf. Тем не менее, все остальные узлы имеют такое же значение параметра cookie, измененное в файлах riak.conf, и они в порядке с riak-admin test. - person Vianney Sserwanga; 23.01.2015
comment
Чтобы убедиться в этом, отредактируйте скрипт riak-admin на проблемной машине, добавив echo в начало строка 1013, если параметр setcookie отличается от файла cookie в вашем файле конфигурации, сообщите об ошибке в проекте. - person Joe; 23.01.2015