Deepak:

When you name a node in app.config with -name it has to have a '.' in it,  like 
r...@hostname.net  As you have surmised, you can get around that if you use the 
-sname argument instead. 

They have to be done consistently.  In your example, had you used the -sname 
argument, `riak@riaknode1` would work.  Making a host entry `riaknode1.priv` 
that points to the local address would work with the -name argument.

The inportant thing about -name and -sname is that they can't mix within a 
cluster.

Cluster replace is designed to replace a node with a new one and transfer all 
the partitions. You can cheat and use it to rename a node though.  

The process to do this would look like the following:

Stop the node to rename with `riak stop`
Mark it 'down' from another node in the cluster using `riak-admin down «old 
nodename».
Rename the node in vm.args.
Delete the ring directory.
Start the node with `riak start`.  
It will come up as a single instance which you can verify with `riak-admin 
member-status`.
Join the node to the cluster with `riak-admin cluster join «cluster nodename» `
Set it to replace the old instance of itself with `riak-admin cluster replace 
«old nodename» «new nodename»
Plan the changes with `riak-admin cluster plan`
Commit the changes with `riak-admin cluster commit`

As you can see, this is a very large effort, so best to use hostnames that 
aren't moving around.  Apologies for you getting this twice, Deepak. I failed 
to reply to the list as well.

Hope this makes sense...
Charlie

On Jan 1, 2013, at 2:43 PM, Deepak Balasubramanyam <deepak.b...@gmail.com> 
wrote:

> I took the AWS EC2 riak image for a spin today. I have a query regarding riak 
> nodes and how they behave when the machine reboots.
> 
> When an EC2 instance reboots, the internal ip / internal DNS / external DNS 
> change. This renders the app.config and -name argument on vm.args incorrect. 
> I was exploring solutions to deal with this problem. 
> 
> 1. Preventive measures
> 
> Someone on this thread dated May 2011 suggested using host file entries that 
> point to the local internal IP address. That does not seem to work. Riak 
> fails with the following error when I add a new entry to /etc/hosts and 
> configure vm.args with -name riak@riaknode1
> 
> Hostname riaknode1 is illegal
> 
> I confirmed that riaknode1 pings correctly before starting riak. I guess 
> erlang tries to match the hostname of the system resulting in this failure ? 
> Can anyone throw some light on this ?
> 
> 2. Use -sname
> 
> Is starting the erlang VM with the sname flag an option if it will help 
> prevent the 'illegal hostname' error ? 
> Disclaimer: My knowledge of erlang is close to zilch, so sorry if that option 
> sounded like something you could dismiss easily :)
> 
> 3. Use cluster replace
> 
> a. I understand that the IPs in app.config and vm.args can be replaced with 
> the correct IP on a restart and using a subsequent 'cluster replace' command 
> will do. Will executing the 'cluster plan' and 'cluster commit' commands now 
> produce network chatter ? 
> 
> b . What happens if 2 nodes go down and one was joined with the other. They 
> both have 2 different IP addresses on restart. How will 'cluster replace' 
> work now ?
> 
> Do let me know your thoughts.
> 
> Thanks
> -Deepak
> _______________________________________________
> riak-users mailing list
> riak-users@lists.basho.com
> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

_______________________________________________
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to