Return-Path: X-Original-To: apmail-cassandra-user-archive@www.apache.org Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 369997FDE for ; Sun, 11 Dec 2011 12:17:29 +0000 (UTC) Received: (qmail 95899 invoked by uid 500); 11 Dec 2011 12:17:26 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 95866 invoked by uid 500); 11 Dec 2011 12:17:26 -0000 Mailing-List: contact user-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@cassandra.apache.org Delivered-To: mailing list user@cassandra.apache.org Received: (qmail 95858 invoked by uid 99); 11 Dec 2011 12:17:26 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 11 Dec 2011 12:17:26 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of skrolle@gmail.com designates 209.85.213.172 as permitted sender) Received: from [209.85.213.172] (HELO mail-yx0-f172.google.com) (209.85.213.172) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 11 Dec 2011 12:17:18 +0000 Received: by yenm7 with SMTP id m7so3901364yen.31 for ; Sun, 11 Dec 2011 04:16:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; bh=fOKm6RHWODC+tF+0UR1g18QufvuinhcSwpQXsCL7lfs=; b=EYz29rxkTCwM+r9531zpf6yEdTW99Rz2gZ0LVyp/tiRPqa+8L5iu1s90hk0LF4/df6 qswM/hKf8yd59N7jU0xREUCa9g5knQsnHwnhE6bKSCbUubmLBlgXh8sLqc9O2eUEXhWD OC8gkj0sWh51cRV8QT1oys5I8ibQqP4sE+ZFo= MIME-Version: 1.0 Received: by 10.236.185.133 with SMTP id u5mr20504172yhm.106.1323605818046; Sun, 11 Dec 2011 04:16:58 -0800 (PST) Received: by 10.101.9.33 with HTTP; Sun, 11 Dec 2011 04:16:57 -0800 (PST) Date: Sun, 11 Dec 2011 13:16:57 +0100 Message-ID: Subject: Moving existing nodes to a different network. From: =?ISO-8859-1?Q?Henrik_Schr=F6der?= To: user@cassandra.apache.org Content-Type: multipart/alternative; boundary=20cf30549a2b9b78ec04b3cffe97 X-Virus-Checked: Checked by ClamAV on apache.org --20cf30549a2b9b78ec04b3cffe97 Content-Type: text/plain; charset=ISO-8859-1 I have an existing cluster of four Cassandra nodes. The machines have both an internal and an external IP, and originally I set them up to use the external network. A little while later I moved them to the internal network by bringing all machines down, changing the config, and bringing them up again. In the logs I found they all said "Changing ownership of token XXX", and nodetool ring reported that the cluster consisted of those four machines on their internal ips. After that, as part of a cleanup process, I moved the tokens on all machines to make sure the cluster was balanced, and it also worked perfectly. However, now I have to temporarily move the cluster back to the external network for a little while. I tried doing the same thing as last time, bringing all nodes down, changing the config (rpc address, gossip address, list of seeds) and bringing them up again, but this resulted in a very confused cluster. When I ran nodetool ring, it reported eight nodes, the four internal ips were marked as down, and the four external were marked as up, but with the token they had when they previously used that ip. Checking the logs, there was no token ownership change, all nodes picked the saved token they had when they last used the external ip, and not the token they should have, the one I moved each server to when on the internal ip. I immediately moved all servers back to the internal IP, and then nodetool reported the same as before, a cluster of four machines, all up, and all on the token they're supposed to have. No mention of the external ips or the old tokens they had there. How do I reset this data? Where is it stored? Why does it store all of this when nodetool doesn't report it? Why does a node store several saved tokens? How do I change their ip without losing any data and without having to do removetoken or similar? One thought I have is to bring down one node, delete the system keyspace, and bring it back up, at which point it would only use what's in the config, but fetch the schema from the other nodes. Or would it also fetch the old information of what token it had when it was on the external ip? Or would something else go wrong? /Henrik --20cf30549a2b9b78ec04b3cffe97 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable I have an existing cluster of four Cassandra nodes. The machines have both = an internal and an external IP, and originally I set them up to use the ext= ernal network. A little while later I moved them to the internal network by= bringing all machines down, changing the config, and bringing them up agai= n. In the logs I found they all said "Changing ownership of token XXX&= quot;, and nodetool ring reported that the cluster consisted of those four = machines on their internal ips. After that, as part of a cleanup process, I= moved the tokens on all machines to make sure the cluster was balanced, an= d it also worked perfectly.

However, now I have to temporarily move the cluster back to the externa= l network for a little while. I tried doing the same thing as last time, br= inging all nodes down, changing the config (rpc address, gossip address, li= st of seeds) and bringing them up again, but this resulted in a very confus= ed cluster. When I ran nodetool ring, it reported eight nodes, the four int= ernal ips were marked as down, and the four external were marked as up, but= with the token they had when they previously used that ip. Checking the lo= gs, there was no token ownership change, all nodes picked the saved token t= hey had when they last used the external ip, and not the token they should = have, the one I moved each server to when on the internal ip.

I immediately moved all servers back to the internal IP, and then nodet= ool reported the same as before, a cluster of four machines, all up, and al= l on the token they're supposed to have. No mention of the external ips= or the old tokens they had there.

How do I reset this data? Where is it stored? Why does it store all of = this when nodetool doesn't report it? Why does a node store several sav= ed tokens? How do I change their ip without losing any data and without hav= ing to do removetoken or similar?

One thought I have is to bring down one node, delete the system keyspac= e, and bring it back up, at which point it would only use what's in the= config, but fetch the schema from the other nodes. Or would it also fetch = the old information of what token it had when it was on the external ip? Or= would something else go wrong?


/Henrik
--20cf30549a2b9b78ec04b3cffe97--