ZooKeeper bakımı hakkında

Edge for Private Cloud 4.19.01 sürümü

ZooKeeper toplulukları, bir veya daha fazla ZooKeeper düğümü kaybına rağmen veri kaybı olmadan çalışmaya devam edecek şekilde tasarlanmıştır. Bu esneklik sayesinde, sistem kapalı kalma süresi olmadan ZooKeeper düğümlerinde etkili bir şekilde bakım yapılabilir.

ZooKeeper ve Edge hakkında

Edge'deki ZooKeeper düğümleri, çeşitli Edge bileşenlerinin konumu ve yapılandırmasıyla ilgili yapılandırma verilerini içerir ve yapılandırma değişikliklerinin farklı bileşenlerine bildirim gönderir. Bir üretim sistemi için desteklenen tüm Edge topolojileri en az üç ZooKeeper düğümü kullanır.

ZooKeeper düğümlerini belirtmek için Edge yapılandırma dosyasındaki ZK_HOSTS ve ZK_CLIENT_HOSTS özelliklerini kullanın. Örneğin:

ZK_HOSTS="$IP1 $IP2 $IP3"
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"

Burada:

  • ZK_HOSTS, ZooKeeper düğümlerinin IP adreslerini belirtir. IP adresleri, tüm ZooKeeper düğümlerinde aynı sırada listelenmelidir.

    Çoklu Veri Merkezi ortamında, tüm Veri Merkezlerindeki tüm ZooKeeper düğümlerini listeleyin.

  • ZK_CLIENT_HOSTS, yalnızca bu Veri Merkezi tarafından kullanılan ZooKeeper düğümlerinin IP adreslerini belirtir. IP adresleri, Veri Merkezi'ndeki tüm ZooKeeper düğümlerinde aynı sırada listelenmelidir.

    Tek bir Veri Merkezi kurulumunda bunlar ZK_HOSTS tarafından belirtilen düğümlerdir. Çoklu Veri Merkezi ortamlarında, her bir Veri Merkezi'nin Edge yapılandırma dosyasında yalnızca söz konusu Veri Merkezi'nin ZooKeeper düğümleri listelenmesi gerekir.

Varsayılan olarak, tüm ZooKeeper düğümleri voter düğümleri olarak tanımlanır. Bu, tüm düğümlerin ZooKeeper liderinin seçilmesine katılacağı anlamına gelir. Düğümün bir seçmen değil, gözlemci düğümü olduğunu belirtmek için :observer değiştiricisini ZK_HOSTS ile ekleyebilirsiniz. Gözlemci düğümü, lider seçimine katılmaz.

:observer değiştiricisini genellikle birden fazla Edge Veri Merkezi oluştururken veya tek bir Veri Merkezi'nde çok sayıda ZooKeeper düğümü olduğunda belirtirsiniz. Örneğin, iki Veri Merkezi bulunan 12 ana makineli Edge kurulumunda, Veri Merkezi 2'deki 9. düğümde bulunan ZooKeeper gözlemcidir:

Daha sonra Veri Merkezi 1 için yapılandırma dosyanızda aşağıdaki ayarları kullanırsınız:

ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer"
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"

Veri Merkezi 2 için:

ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer"
ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9"

Aşağıdaki bölümlerde lider, seçmen ve gözlemci düğümleri hakkında daha fazla ayrıntının yanı sıra seçmen ve gözlemci düğümleri eklemeyle ilgili dikkat edilmesi gereken noktalar açıklanmaktadır.

Liderler, takipçiler, seçmenler ve gözlemciler hakkında

Çok düğümlü bir ZooKeeper kurulumunda, düğümlerden biri lider olarak belirlenir. Diğer tüm ZooKeeper düğümleri takipçi olarak tanımlanır. Okuma işlemleri herhangi bir ZooKeeper düğümünden yapılabilir, ancak tüm yazma istekleri lidere yönlendirilir. Örneğin, Edge'e yeni bir Mesaj İşleyici eklenir. Bu bilgi ZooKeeper liderine yazılır. Daha sonra tüm takipçiler verileri çoğaltır.

Edge kurulum zamanında, her ZooKeeper düğümünü seçmen veya gözlemci olarak tanımlarsınız. Lider, tüm seçmen ZooKeeper düğümleri tarafından seçilir. Liderlerin seçilmesi için tek koşul, işler durumda olan ZooKeeper seçmen düğümlerinin quorum bulunmasıdır. Çoğunluk, tüm Veri Merkezlerindeki seçmen ZooKeeper düğümlerinin yarısından fazlasının işlevsel olduğu anlamına gelir.

Seçmen sayısı yeterliliği yoksa lider seçilemez. Bu senaryoda, Zookeeper istekleri yerine getiremez. Bu, yeterli çoğunluk geri yüklenene kadar Uç Yönetim Sunucusu'na istekte bulunamayacağınız, Management API isteklerini işleyemeyeceğiniz veya Edge kullanıcı arayüzüne giriş yapamayacağınız anlamına gelir.

Örneğin, tek bir Veri Merkezi kurulumunda:

  • Üç ZooKeeper düğümü yüklediniz
  • Tüm ZooKeeper düğümleri seçmendir
  • Yeterli çoğunluk, işleyen iki seçmen düğümüdür
  • Yalnızca bir seçmen düğümü varsa ZooKeeper topluluğu çalışamaz

İki veri merkezi olan bir kurulumda:

  • Veri Merkezi başına toplam altı düğüme ulaşmak üzere üç ZooKeeper düğümü yüklediniz.
  • Veri Merkezi 1'de üç seçmen düğümü vardır
  • Veri Merkezi 2'nin iki seçmen düğümü ve bir gözlemci düğümü vardır
  • Çoğunluk, her iki Veri Merkezindeki beş seçmeni temel alır ve bu nedenle, işlevsel durumda olan üç seçmen düğümüdür
  • Yalnızca iki veya daha az seçmen düğümü varsa ZooKeeper topluluğu çalışamaz

Düğümleri seçmen veya gözlemci olarak eklerken dikkat edilmesi gereken noktalar

Sistem gereksinimleriniz, Edge yüklemenize ilave ZooKeeper düğümleri eklemenizi gerektirebilir. ZooKeeper düğümleri ekleme dokümanlarında, Edge'e nasıl ek ZooKeeper düğümleri ekleneceği açıklanmaktadır. ZooKeeper düğümlerini eklerken, eklenecek düğüm türlerini dikkate almanız gerekir: seçmen veya gözlemci.

Bir veya daha fazla seçmen düğümü olumsuz olduğunda ZooKeeper topluluğunun çalışmaya devam edebilmesi için yeterli sayıda seçmen düğümünüzün bulunduğundan emin olmanız gerekir. Seçmen düğümleri ekleyerek çoğunluk oranını artırırsınız. Bu sayede daha fazla seçmen düğümünün azalmasına tolerans verebilirsiniz.

Bununla birlikte, yazma işlemleri, lider hakkında anlaşmaya varmak için yeterli çoğunluk olması gerektiğinden, ek seçmen düğümleri eklemek yazma performansını olumsuz yönde etkileyebilir. Lideri belirlemek için gereken süre seçmen düğümlerinin sayısına bağlıdır ve bu sayı, daha fazla seçmen düğümü ekledikçe artar. Bu nedenle, tüm düğümleri seçmen yapmak istemezsiniz.

Seçmen düğümleri eklemek yerine gözlemci düğümleri ekleyebilirsiniz. Gözlemci düğümleri oy vermediğinden ve yeterli çoğunluk boyutunu etkilemediğinden, gözlemci düğümleri eklemek lider seçmenin getirdiği ek yüke neden olmadan genel sistem okuma performansını artırır. Bu nedenle, bir gözlemci düğümünün çökmesi topluluğun lideri seçme yeteneğini etkilemez. Bununla birlikte, hizmet verisi istekleri için kullanılabilecek daha az düğüm bulunduğundan, gözlemci düğümlerini kaybetmek, ZooKeeper topluluğunun okuma performansında düşüşe neden olabilir.

Apigee, tek bir Veri Merkezinde gözlemci düğümlerinin sayısından bağımsız olarak en fazla beş seçmen bulunmasını önerir. Apigee, iki Veri Merkezinde en fazla dokuz (bir Veri Merkezinde beş, diğerinde ise dördü) seçmen bulunmasını önerir. Daha sonra sistem gereksinimleriniz için gerektiği kadar gözlemci düğümü ekleyebilirsiniz.

Zookeeper düğümünü kaldırma

Zookeeper düğümünü kaldırmak istemenizin birçok nedeni olabilir. Örneğin, bir düğüm bozulmuş veya yanlış ortama eklenmiş olabilir.

Bu bölümde, düğüm devre dışıyken ve erişilemez olduğunda Zookeeper düğümünü nasıl kaldıracağınız açıklanmaktadır.

Bir Hayvanat Bahçesi düğümünü kaldırmak için:

  1. Sessiz yapılandırma dosyanızı düzenleyip kaldırmak istediğiniz Zookeeper düğümünün IP adresini kaldırın.
  2. Kalan ZooKeeper düğümlerini yeniden yapılandırmak için Zookeeper için setup komutunu yeniden çalıştırın:
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper setup -f updated_config_file
  3. Tüm Zookeeper düğümlerini yeniden başlatın:
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart
  4. Yönetim Sunucusu düğümünü yeniden yapılandırın:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server setup -f updated_config_file
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  5. Tüm Yönlendiricileri yeniden yapılandırın:
    /opt/apigee/apigee-service/bin/apigee-service edge-router setup -f updated_config_file
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  6. Tüm Mesaj İşleyicilerini yeniden yapılandırın:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor setup -f updated_config_file
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  7. Tüm Qpid düğümlerini yeniden yapılandırın:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server setup -f updated_config_file
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
  8. Tüm Postgres düğümlerini yeniden yapılandırın:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server setup -f updated_config_file
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart

Bakımla ilgili dikkat edilmesi gereken noktalar

Aynı anda tek bir düğümde gerçekleştirdiyseniz ZooKeeper bakımını tam olarak çalışan bir toplulukta kapalı kalma süresi olmadan gerçekleştirebilirsiniz. Bir seferde yalnızca bir ZooKeeper düğümünün devre dışı olmasını sağlayarak lideri seçmek için her zaman yeterli sayıda seçmen düğümünün bulunduğundan emin olabilirsiniz.

Birden fazla veri merkezinde bakım

Birden fazla Veri Merkezi ile çalışırken ZooKeeper topluluğunun Veri Merkezleri arasında ayrım yapmadığını unutmayın. ZooKeeper derlemeleri, tüm Veri Merkezlerindeki ZooKeeper düğümlerinin tamamını tek bir topluluk olarak görüntüler.

Belirli bir Veri Merkezi'ndeki seçmen düğümlerinin konumu, ZooKeeper tarafından çoğunluk hesaplamaları yapılırken bir faktör değildir. Bağımsız düğümler Veri Merkezleri arasında aşağı inebilir ancak çoğunluk tüm toplulukta korunduğu sürece ZooKeeper çalışmaya devam eder.

Bakımın etkileri

Bazı durumlarda, bakım için bir seçmen düğümü veya gözlemci düğümü olan bir ZooKeeper düğümünü kapatmanız gerekir. Örneğin, düğümde Edge'in sürümünü yükseltmeniz gerekebilir, ZooKeeper'ı barındıran makine başarısız olabilir veya ağ hatası gibi başka bir nedenle düğüm kullanılamayabilir.

Aşağı giden düğüm bir gözlemci düğümüyse düğüm geri yüklenene kadar ZooKeeper topluluğu performansında hafif bir düşüş görebilirsiniz. Düğüm, seçmen düğümüyse lider seçim sürecine katılan bir düğümün kaybı nedeniyle ZooKeeper topluluğunun geçerlilik durumunu etkileyebilir. Seçmen düğümünün düşme nedeni ne olursa olsun, kullanılabilir seçmen düğümlerinde yeterli çoğunluğu korumak önemlidir.

Bakım prosedürü

Bakım prosedürlerini yalnızca ZooKeeper grubunun çalıştığından emin olduktan sonra uygulayın. Bu, gözlemci düğümlerinin çalışır durumda olduğu ve bakım sırasında yeterli çoğunluğu korumak için yeterli sayıda seçmen düğümü olduğu varsayılır.

Rastgele boyutlardan oluşan bir ZooKeeper topluluğu, bu koşullar karşılandığında veri kaybı veya performans üzerinde anlamlı bir etki olmaksızın herhangi bir noktada tek bir düğümün kaybını tolere edebilir. Bu, aynı anda tek bir düğüm üzerinde bulunduğu sürece topluluktaki herhangi bir düğümde bakım gerçekleştirebileceğiniz anlamına gelir.

Bakım işleminin bir parçası olarak, ZooKeeper düğümünün türünü (lider, seçmen veya gözlemci) belirlemek için aşağıdaki prosedürü kullanın:

  1. ZooKeeper düğümünde yüklü değilse nc eklentisini yükleyin:
    sudo yum install nc
  2. Aşağıdaki nc komutunu, düğümde (2181 ZooKeeper bağlantı noktasıdır) çalıştırın:
    echo stat | nc localhost 2181

    Çıkışı şu biçimde görmeniz gerekir:

    Zookeeper version: 3.4.5-1392090,
    built on 09/30/2012 17:52 GMT
    Clients: /a.b.c.d:xxxx[0](queued=0,recved=1,sent=0)
    Latency min/avg/max: 0/0/0
    Received: 1
    Sent: 0
    Connections: 1
    Outstanding: 0
    Zxid: 0xc00000044
    Mode: follower
    Node count: 653

    Düğümlerin çıkış Mode satırında, düğüm yapılandırmasına bağlı olarak observer, leader veya follower (lider olmayan bir oy veren anlamına gelir) değerini görmeniz gerekir.

  3. Her ZooKeeper düğümünde 1 ve 2. adımları tekrarlayın.

Özet

ZooKeeper topluluğunda bakım gerçekleştirmenin en iyi yolu, bu işlemi her seferinde bir düğümde yapmaktır. Hatırlatma:

  • ZooKeeper topluluğunun işlevsel durumda kalması için bakım sırasında seçmen düğümleri için yeterli çoğunluğu korumanız gerekir.
  • Gözlemci düğümünü kaldırmak, yeterli çoğunluk durumunu veya lider seçme yeteneğini etkilemez.
  • Çoğunluk, tüm Veri Merkezlerindeki tüm ZooKeeper düğümleri için hesaplanır.
  • Önceki sunucu çalışır hale geldikten sonra, bakım işlemine bir sonraki sunucu için devam edin.
  • ZooKeeper düğümünü incelemek için nc komutunu kullanın.