Cassandra düğümleri ekleme

Bir kümeye Cassandra düğümü eklerken aşağıdaki iki önemli noktayı göz önünde bulundurmanız gerekir:

  • Akışlamayı en aza indirmek ve dengeli bir halka sağlamak için Cassandra halkasındaki düğümlerin mevcut konumları değiştirilmemelidir.
  • Tüm veri merkezlerindeki düğüm sayısı tutarlı olmalıdır.

İlk hedefi sağlamak için her yeni düğüm eklediğinizde Cassandra kümesindeki düğüm sayısını ikiye katlamanız çok önemlidir.

Örneğin, iki veri merkezine dağıtılmış standart bir 12 düğümlü küme kurulumu topolojisiyle başlarsanız her veri merkezinde üç tane olmak üzere toplam altı Cassandra düğümünüz olur. Bu kümeyi genişletmek için her veri merkezine üç düğüm eklemeniz gerekir. Böylece toplam düğüm sayısı 12'ye (her veri merkezinde altı düğüm) çıkar. Daha fazla genişleme gerekiyorsa her veri merkezine altı düğüm daha eklemeniz gerekir. Böylece toplam düğüm sayısı 24 olur (her veri merkezinde 12 düğüm).

Bu dokümanda, mevcut bir Edge for Private Cloud kurulumuna üç yeni Cassandra düğümü ekleme talimatları verilmektedir. Başka düğümler eklemek için aynı adımları uygulayabilirsiniz. Kümenizi genişletirken düğüm sayısını her zaman ikiye katladığınızdan emin olun.

Cassandra düğümüne yönelik sistem gereksinimlerinin listesi için Yükleme Şartları bölümüne bakın.

Mevcut Edge yapılandırması

Üretim sistemi için desteklenen tüm Edge topolojileri üç Cassandra düğümü kullanılmasını belirtir. Üç düğüm, yapılandırma dosyasında CASS_HOSTS mülküne aşağıdaki gibi belirtilir:

IP1=10.10.0.1
IP2=10.10.0.2
IP3=10.10.0.3
HOSTIP=$(hostname -i)
ADMIN_EMAIL=opdk@google.com
APIGEE_ADMINPW=Secret123
LICENSE_FILE=/tmp/license.txt
MSIP=$IP1 
USE_LDAP_REMOTE_HOST=n
LDAP_TYPE=1
APIGEE_LDAPPW=secret
MP_POD=gateway
REGION=dc-1
ZK_HOSTS="$IP1 $IP2 $IP3"
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1" 
SKIP_SMTP=n
SMTPHOST=smtp.example.com
SMTPUSER=smtp@example.com
SMTPPASSWORD=smtppwd

REGION mülkünün bölge adını "dc-1" olarak belirttiğini unutmayın. Yeni Cassandra düğümlerini eklerken bu bilgilere ihtiyacınız vardır.

Üç yeni Cassandra düğümünü eklemek için yapılandırma dosyasını değiştirme

Bu örnekte, üç yeni Cassandra düğümü aşağıdaki IP adreslerindedir:

  • 10.10.0.14
  • 10.10.0.15
  • 10.10.0.16

Yeni düğümleri eklemek için öncelikle Edge yapılandırma dosyasını güncellemeniz gerekir:

IP1=10.10.0.1
IP2=10.10.0.2
IP3=10.10.0.3
# Add the new node IP addresses.
IP14=10.10.0.14
IP15=10.10.0.15
IP16=10.10.0.16
HOSTIP=$(hostname -i)
ADMIN_EMAIL=opdk@google.com
...
# Update CASS_HOSTS to add each new node after an existing nodes. 
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1 $IP14:1,1 $IP2:1,1 $IP15:1,1 $IP3:1,1 $IP16:1,1" 

Bu sayede mevcut düğümler ilk jeton ayarlarını korur ve her yeni düğümün ilk jetonu, mevcut düğümlerin jeton değerleri arasında olur.

Edge'i yapılandırma

Yapılandırma dosyasını düzenledikten sonra:

  • Mevcut Cassandra düğümlerini yeniden yapılandırma
  • Cassandra'yı yeni düğümlere yükleme
  • Yönetim sunucusunu yeniden yapılandırma

Mevcut Cassandra düğümlerini yeniden yapılandırın

Mevcut Cassandra düğümlerinde:

  1. setup.sh dosyasını "-p c" profiliyle ve yeni yapılandırma dosyasıyla yeniden çalıştırın:
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile

Cassandra'yı yeni düğümlere yükleme

Cassandra'yı yeni düğümlere yüklemek için aşağıdaki prosedürü uygulayın.

Her yeni Cassandra düğümünde:

  1. Cassandra'yı üç düğüme yükleyin:
    1. apigee-setup'yi Edge apigee kurulum yardımcı programını yükleme bölümünde açıklandığı şekilde ilk düğüme yükleyin.
    2. Güncellenen yapılandırma dosyasını kullanarak Cassandra'yı ilk düğüme yükleyin:
      /opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile
    3. Kalan yeni Cassandra düğümleri için bu iki adımı tekrarlayın.
  2. Üç yeni Cassandra düğümünü yeniden oluşturun. Bölge adını, düğümü eklediğiniz veri merkezi olarak belirtin (dc-1, dc-2 vb.). Bu örnekte dc-1:
    1. İlk düğümde şunları çalıştırın:
      /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h nodeIP rebuild dc-1

      Buradaki nodeIP, Cassandra düğümünün IP adresidir.

      Yalnızca Cassandra için JMX kimlik doğrulamasını etkinleştirdiyseniz kullanıcı adınızı ve şifrenizi iletmeniz gerekir.

    2. Bu adımı kalan yeni Cassandra düğümlerinde tekrarlayın.

Yönetim sunucusunu yeniden yapılandırma

Yönetim sunucusu düğümünde

  1. Yeni eklenen Cassandra düğümleri için Yönetim Sunucusu'nu güncellemek üzere setup.sh dosyasını yeniden çalıştırın:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f updatedConfigFile

Tüm Yönlendiricileri ve Mesaj İşleme

  1. Tüm yönlendiricilerde:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  2. Tüm Mesaj İşleyicilerde:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

Mevcut Cassandra düğümlerinde disk alanını boşaltma

Yeni bir düğüm ekledikten sonra, disk alanında yer açmak için önceden var olan düğümlerde nodetool cleanup komutunu kullanabilirsiniz. Bu komut, artık mevcut Cassandra düğümüne ait olmayan yapılandırma jetonlarını temizler.

Yeni bir düğüm ekledikten sonra önceden var olan Cassandra düğümlerinde disk alanı açmak için aşağıdaki komutu yürütün:

/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup

Yalnızca Cassandra için JMX kimlik doğrulamasını etkinleştirdiyseniz kullanıcı adınızı ve şifrenizi iletmeniz gerekir.

Yeniden oluşturmayı doğrulama

Yeniden oluşturma işleminin başarılı olduğunu doğrulamak için aşağıdaki komutları kullanın:

nodetool [-u username -pw password] -h nodeIP netstats

Bu komut, yerel aktarımın (veya ikili protokolün) çalışıp çalışmadığını gösterir. Bu sayede Cassandra yeni istemci isteklerini kabul edebilir.

nodetool [-u username -pw password] -h nodeIP statusbinary

Bu komut, yerel aktarımın (veya ikili protokolün) çalışıp çalışmadığını belirtir.

nodetool [-u username -pw password] -h nodeIP describecluster

Bu komut, yeni düğümlerin eski düğümlerle aynı şema sürümünü kullanıp kullanmadığını gösterir.

nodetool kullanımı hakkında daha fazla bilgi için nodetool kullanım dokümanlarını inceleyin.