Hi James,

Gonna move this back to the list so that others can add to the discussion. Definitely sounds like it may be a firewall issue. You should get "Firewall is stopped" if it is actually stopped.

$ sudo service iptables status
Firewall is stopped.

From your output, it is still running. Here are some instructions on how to permanently turn it off.

http://www.cyberciti.biz/faq/disable-linux-firewall-under-centos-rhel-fedora/

Since it sounds like you are safe in your companies intranet, I would suggest trying the above and turn off the firewall completely.

In regards to our install - for a production solution, we build from sources in a manner that we can actually have multiple installs of both Erlang and Riak (we are 100% Erlang) to allow us to roll back quickly. This gives us fine grain control over 1) when we want to upgrade to a new release, 2) the mount point for our data (we use bitcask), and 3) the ability to roll back to a previous release. This is true for both Erlang and Riak. This also assumes that a RIAK upgrade does not transform physical data - which it has never yet as far as I am aware.

Our solution is pretty simple and is based on a blog post by Robert Aloi:

http://aloiroberto.wordpress.com/2010/11/24/how-to-manage-multiple-erlang-installations/

Here are the steps that I follow (sorry, havent made a shell script out of it). Would love to hear any feedback from anyone on the list on where we could be doing better. Following this, I can build a new 5 node cluster from scratch within an hour.

Configuring Erlang
./configure --prefix=/home/riak/erlang/R15B01 --enable-ssl=yes --enable-kernel-poll --enable-hipe --enable-smp-support --enable-threads --enable-m64-build

FOR THE MAC:
CFLAGS=-O0 ./configure --enable-hipe --enable-smp-support --enable-threads --enable-kernel-poll --enable-darwin-64bit --prefix=/opt/erlang/R15B01

As root:
 1. useradd -m -G wheel riak
 2. visudo to enable wheel sudoers
 3. passwd riak <whatever>
 4. su - riak

As riak:
[building erlang]
5. sudo yum install gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf git

NOTE: If yum can not install git, do the following:
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
     rpm -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm
     yum install --enablerepo=webtatic git-all

 6. mkdir erlang
 7. cd erlang
 8. mkdir R15B01
 9. wget http://erlang.org/download/otp_src_R15B01.tar.gz
10. tar zxvf otp_src_R15B01.tar.gz
11. cd otp_src_R15B01
12. ./configure --prefix=/home/riak/erlang/R15B01 --enable-ssl=yes --enable-kernel-poll --enable-hipe --enable-smp-support --enable-threads --enable-m64-build
13. make
14. make install
15. cd ~
16. mkdir bin
17. vi .bashrc (add)
RIAK_HOME=$HOME/riak-1.2.0/rel/riak
PATH=$PATH:/$HOME/bin:/sbin:/usr/bin:$RIAK_HOME/bin

18. . .bashrc
19. cd bin
20. vi e15 (add)
#!/bin/bash
env PATH=/home/riak/erlang/R15B01/bin:$PATH "$@"


21. chmod +x e15
to test, type the following on the command line:
e15 erl

22. Do the following. Append these in /etc/sysctl.conf then run sysctl -p to apply them. No need to reboot, now your kernel should be able to handle a lot more open connections, yay.

# General gigabit tuning:
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216

# this gives the kernel more memory for tcp
# which you need with many (100k+) open socket connections

net.ipv4.tcp_mem = 50576   64768   98152
net.core.netdev_max_backlog = 2500

23. Make sure the file max is high enough
sysctl fs.file-max

[building riak]
24. cd /home/riak
25. wget http://downloads.basho.com.s3-website-us-east-1.amazonaws.com/riak/CURRENT/riak-1.2.0.tar.gz
26. tar zxvf riak-1.2.0.tar.gz
27. cd riak-1.2.0
28. e15 make rel
29. ifconfig to get ipaddress

[configuring the firewall (if needed)]
30. Add

## Firewall
{ kernel, [
            {inet_dist_listen_min, 6000},
            {inet_dist_listen_max, 7999}
          ]},

to app.config at top level (same as risk.core)

31. sudo vi /etc/sysconfig/iptables (and add the following to RH-Firewall-1-INPUT just above the icmp-host-prohibited)

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 4369 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 8099 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 7010:7015 -j ACCEPT

32. sudo service iptables restart


Cheers,
Bryan

On 10/30/12 8:14 PM, SWEENEY, JAMES wrote:

Hey thanks for the reply Bryan, I did go through the instructions below. Plus I had checked the iptables right away after I installed, and iptables does not seem to be running on any of my centos servers ie this is the result I get when running service iptables status --

[root@essd-riak-test-server ~]# sudo service iptables status

Table: filter

Chain INPUT (policy ACCEPT)

num target     prot opt source               destination

Chain FORWARD (policy ACCEPT)

num target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)

num target     prot opt source               destination

[root@essd-riak-test-server ~]#

The type of install I have done is installed from the dev package from the riak site, not installed from source code. Does that matter for clustering? Everything about my install seems fine except that it my cluster commands fail and I can't join nodes for a clustered environment.

The nodes are on a cloud server that is controlled by another group in my company. We have made sure the ports that riak needs are opened for centos to centos communication, and I can telnet from one centos / riak server to another successfully, but just can join a node.

*From:*riak-users [mailto:[email protected]] *On Behalf Of *Bryan Hughes
*Sent:* Tuesday, October 30, 2012 5:36 PM
*To:* [email protected]
*Subject:* Re: Issue with clustering Riak nodes on CentOS servers.

Hi James,

We have a 5 node cluster running in production with no problems on CentOS. We have each node isolated on a private lan. Our application server has two interfaces, one to the outside world with a very restricted firewall, and the second connected to the private lan with the 5 nodes.

Assuming you set the node names accordingly and followed:

http://docs.basho.com/riak/latest/cookbooks/Basic-Cluster-Setup/

One thing to check would your firewall, which is by default on with CentOS.

>sudo service iptables status

If you have your 4 nodes on a private lan, or perhaps well protected behind a firewall as an internal deployment, then it is relatively straight forward. You can just turn off your firewall on the 4 machines.

If your machines are not on a isolated private lan and are exposed to the internet, or just need to be protected behind a firewall, you will need to do the following.

http://docs.basho.com/riak/1.2.0/cookbooks/Network-Security-and-Firewall-Configurations/

First, in your app.config, you will need to add the following at the top level (same as riak.core). You can pick whatever min and max range you want - here I arbitrarily chosen 4 ports:

{ kernel, [
            {inet_dist_listen_min, 7010},
            {inet_dist_listen_max, 7014}
          ]},

Next, on each or our riak nodes, you will need to edit your iptables. I tend to edit them manually using sudo.

> sudo vi /etc/sysconfig/iptables (and add the following to RH-Firewall-1-INPUT just above the icmp-host-prohibited)

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 4369 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 8087 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 8099 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 7010:7014 -j ACCEPT

> sudo service iptables restart

After doing this on all the nodes, they should all be visible to each other. If you wanted to lock down your firewall even further, you can specify a range of IP addresses.

Finally, on the machine that your erlang application or Riak client, you will need to do the following:

sudo vi /etc/sysconf/iptable (and add the following to RH-Firewall-1-INPUT just above the icmp-host-prohibited)

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8098 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8087 -j ACCEPT

> sudo service iptables restart


Hope this helps...
Bryan

On 10/30/12 11:39 AM, SWEENEY, JAMES wrote:

    Hello,  I am attempting to create a 4 node riak installation on 4 separate 
CentOS servers.   Installation of Riak went well.  We have run simple tests 
like riak ping, sudo curl \-vhttp://127.0.0.1:8098/riak/test, ect,  and 
everything seems fine with the riak servers,  they all start up with no errors. 
 We used the default ports in the app.config files.   Ie:  epmd listener: 
TCP:4369

    handoff_port listener: TCP:8099

    web_port: TCP:8098

    pb_port: TCP:8087

    We have updated all ip addresses in the config files as instructed on the 
riak site.  Also, we have verified by telnet that the ports are all open and 
that I can telnet between the riak servers.    Still after all of that,  when I 
try to do a cluster command I get the following response:

    [root@essd-riak-test-server ~]# riak-admin cluster [email protected]  
<mailto:[email protected]>

    Attempting to restart script through sudo -H -u riak

    [email protected]  <mailto:[email protected]>  is not reachable!

    [root@essd-riak-test-server ~]#

    I have been stuck on this issue for quite a while and tried everything I 
found on the riak web site to resolve this.  Any help you could offer would 
greatly be appreciated.   Thanks in advance.

    Sincerely,

    James Sweeney

    _______________________________________________

    riak-users mailing list

    [email protected]  <mailto:[email protected]>

    http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

--
    Bryan Hughes
    CTO and Founder / *Go Factory*
    (415) 515-7916
    http://www.go-factory.net

    /"Art is never finished, only abandoned. - Leonardo da Vinci"/


--

Bryan Hughes
CTO and Founder / *Go Factory*
(415) 515-7916
http://www.go-factory.net

/"Art is never finished, only abandoned. - Leonardo da Vinci"/


_______________________________________________
riak-users mailing list
[email protected]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to