Как я могу установить Riak на нескольких удаленных узлах, используя горячую загрузку кода? - PullRequest
1 голос
/ 04 февраля 2010

Я изучал Riak на одной машине и имею доступ к кластеру узлов Erlang (в Ubuntu 9). Используя удаленную загрузку кода, как мне установить Riak на все удаленные узлы?

Например, представьте, что у меня есть кластер узлов Erlang. На одном из узлов установлен Riak. Могу ли я сделать что-то вроде nl (riak) для установки Riak на другие узлы.

Ответы [ 3 ]

4 голосов
/ 09 февраля 2010

Поскольку мы добавили Innostore и встроили движок Javascript Riak больше не является чистым Erlang-приложением. Это означает, что установка через удаленную загрузку кода Erlang не будет работать. Если вы используете Riak в однородном кластере, вы можете создать один выпуск OTP с помощью 'make rel', скопировать его на каждую машину в кластере и настроить app.config и vm.args.

Теоретически будет работать загрузочный сервер, но я не знаю никого, кто бы запускал Riak таким образом. Если вы решите попробовать, мы (Basho) будем рады помочь через список рассылки riak-users .

3 голосов
/ 08 февраля 2010

Короткий ответ: вы не можете.
Удаленная загрузка кода работает на уровне module (в отличие от приложения). Riak состоит из нескольких модулей Erlang и требует некоторых зависимостей. nl(riak) по существу загружает один модуль на все подключенные узлы.

Длинный ответ: ты можешь, но не делай этого.
На самом деле, вы можете собрать список модулей, связанных с Riak, затем удаленно загрузить их и настроить Riak по проводам. Модуль application может помочь с этим. Проблема с этим подходом заключается в том, что если удаленный узел выходит из строя или перезагружается, вам нужно будет снова перенести все модули и повторить настройку.

Если какая-то «удаленная загрузка» должна быть задействована, вам следует установить Riak где-нибудь в $ERL_LIBS на удаленной машине, чтобы процесс загрузки мог быть инициирован через rpc:call/4.

1 голос
/ 08 февраля 2010

Afaik, для этого есть модуль erl_boot_server.Я никогда не использовал (или пытался) это, но, похоже, это то, что вы ищете: http://erldocs.com/R13B03/kernel/erl_boot_server.html?search=erl&i=0

...