Veri merkezi ekleme

Bu belgede, mevcut bir veriye veri merkezinin (bölge olarak da adlandırılır) nasıl ekleneceği açıklanmaktadır. yardım etmek istiyorum.

Veri merkezi eklemeden önce dikkat edilmesi gereken noktalar

Veri merkezi eklemeden önce OpenLDAP'yi nasıl yapılandıracağınızı, Veri merkezlerinde ZooKeeper, Cassandra ve Postgres sunucuları. Ayrıca, İki veri merkezindeki düğümler arasında gerekli bağlantı noktaları açık olmalıdır.

  • OpenLDAP

    Her veri merkezinin, çoğaltma etkin şekilde yapılandırılmış kendi OpenLDAP sunucusu vardır. Google Takvim widget'ını yeni veri merkezini yüklemeniz, OpenLDAP'yi çoğaltmayı kullanacak şekilde yapılandırmanız ve mevcut veri merkezindeki OpenLDAP sunucusunu yeniden yapılandırmaya çalışın.

  • ZooKeeper

    ZK_HOSTS mülkü için her iki veri merkezindeki tüm ZooKeeper düğümlerinin IP adreslerini veya DNS adlarını belirtin , aynı sırayla gösterir ve tüm düğümleri ":observer" değiştiricisiyle işaretler. :observer değiştiricisi olmayan düğümlere "oy verenler" adı verilir. Tek sayı olmalı "oy verenlerin" sayısı yapılandırdığınızdan emin olun.

    Bu topolojide, ana makine 9'daki ZooKeeper ana makinesi gözlemcidir:

    Aşağıdaki örnek yapılandırma dosyasında, düğüm 9 Beş seçmenin olması için :observer değiştiricisi: 1, 2, 3, 7 ve 8. düğümler

    ZK_CLIENT_HOSTS için özelliğini kullanarak, yalnızca ZooKeeper'ın IP adreslerini veya DNS adlarını belirtin verilerdeki tüm ZooKeeper düğümleri için aynı sırayla veri merkezindeki düğümler yardım etmek istiyorum.

  • Kassandra

    Her bir veri merkezi için CASS_HOSTS için tüm Cassandra IP'sini belirttiğinizden emin olun her iki veri için de adresleri (DNS adları değil) üretebiliriz. 1. veri merkezi için önce bu veri merkezindeki Cassandra düğümlerini listeleyin. Veri merkezi için 2. Önce bu veri merkezindeki Cassandra düğümlerini listeleyin. Cassandra düğümlerini aynı tüm Cassandra düğümleri için bir sıralama kuralı görürsünüz.

    Tüm Cassandra düğümlerinde ':d,r' son eki olmalıdır; örneğin: 'ip:1,1 = veri merkezi 1 ve raf/stok durumu bölgesi 1 ve 'ip:2,1 = Veri merkezi 2 ve raf/kullanılabilirlik bölgesi 1.

    Örneğin, "192.168.124.201:1,1 192.168.124.202:1,1 192.168.124.203:1,1 192.168.124.204:2,1 192.168.124.205:2,1 192.168.124.206:2,1"

    Her veri merkezinin raf/kullanılabilirlik bölgesi 1'deki ilk düğüm, başlangıç noktası olarak kullanılır sunucu. Bu dağıtım modelinde Cassandra kurulumu şu şekilde görünür:

  • Postgres

    Varsayılan olarak, Edge tüm Postgres düğümlerini ana modda yükler. Ancak birden fazla veri merkezlerinde, Postgres düğümlerini ana bekleme çoğaltmasını kullanacak şekilde yapılandırırsınız. Böylece, başarısız olursa bekleme düğümü sunucu trafiğine devam edebilir. Tipik olarak, bir veri merkezinde ana Postgres sunucusu, ikinci verilerde bekleme sunucusu yardım etmek istiyorum.

    Mevcut veri merkezi halihazırda ana/bekleme moduna geçtikten sonra, bu prosedürün bir parçası olarak mevcut bekleme düğümünün kaydını silin ve bunu yeni veri merkezindeki bir bekleme düğümüyle değiştirin.

    Aşağıdaki tabloda her ikisi için de Postgres yapılandırmasından önceki ve sonraki sürümler gösterilmektedir senaryolar:

    Önce Sonra

    dc-1'deki tek Ana Postgres düğümü

    dc-1'deki ana Postgres düğümü

    dc-2'deki beklemedeki Postgres düğümü

    dc-1'deki ana Postgres düğümü

    dc-1'deki beklemedeki Postgres düğümü

    dc-1'deki ana Postgres düğümü

    dc-2'deki beklemedeki Postgres düğümü

    dc-1'deki eski Bekleme Postgres düğümünün kaydını silin

  • Bağlantı noktası gereksinimleri

    İki veri merkezindeki düğümler arasında gerekli bağlantı noktalarının açık olduğundan emin olmalısınız. Bağlantı noktası diyagramı için Bağlantı noktası gereksinimleri bölümüne bakın.

Mevcut veri merkezini güncelleme

Veri merkezi eklemek için yeni verileri yükleme ve yapılandırma adımlarını uygulamanız gerekir merkezi veri merkezindeki düğümleri güncellemeniz gerekir. Bu Search Console'a yeni Cassandra ve ZooKeeper düğümleri eklediğiniz için ve veri merkezlerini yeniden yapılandırmanız gerekir. Çoğaltmayı kullanmak için OpenLDAP'yi kullanın.

Yapılandırma dosyalarını oluşturma

Aşağıda, iki veri merkezine ait sessiz yapılandırma dosyaları gösterilmektedir. Bu dosyalarda her merkezde, Yükleme topolojilerinde gösterildiği gibi 6 düğüm bulunur. dc-1 için yapılandırma dosyasının şunun için ek ayarlar yapın:

  • OpenLDAP'yi iki OpenLDAP düğümünde çoğaltma ile yapılandırma.
  • dc-1'in yapılandırma dosyasına, dc-2'deki yeni Cassandra ve ZooKeeper düğümlerini ekleyin.
# Datacenter 1
IP1=IPorDNSnameOfNode1
IP2=IPorDNSnameOfNode2
IP3=IPorDNSnameOfNode3
IP7=IPorDNSnameOfNode7
IP8=IPorDNSnameOfNode8
IP9=IPorDNSnameOfNode9 
HOSTIP=$(hostname -i)
MSIP=$IP1
ADMIN_EMAIL=opdk@google.com
APIGEE_ADMINPW=Secret123
LICENSE_FILE=/tmp/license.txt
USE_LDAP_REMOTE_HOST=n
LDAP_TYPE=2
LDAP_SID=1
LDAP_PEER=$IP7
APIGEE_LDAPPW=secret
MP_POD=gateway-1
REGION=dc-1
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer"
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 $IP7:2,1 $IP8:2,1 $IP9:2,1"
SKIP_SMTP=n
SMTPHOST=smtp.example.com
SMTPUSER=smtp@example.com 
SMTPPASSWORD=smtppwd   
SMTPSSL=n
SMTPPORT=25
SMTPMAILFROM="My Company <myco@company.com>"
# Datacenter 2
IP1=IPorDNSnameOfNode1
IP2=IPorDNSnameOfNode2
IP3=IPorDNSnameOfNode3
IP7=IPorDNSnameOfNode7
IP8=IPorDNSnameOfNode8
IP9=IPorDNSnameOfNode9 
HOSTIP=$(hostname -i)
MSIP=$IP7
ADMIN_EMAIL=opdk@google.com
APIGEE_ADMINPW=Secret123
LICENSE_FILE=/tmp/license.txt
USE_LDAP_REMOTE_HOST=n
LDAP_TYPE=2
LDAP_SID=2
LDAP_PEER=$IP1
APIGEE_LDAPPW=secret
MP_POD=gateway-2
REGION=dc-2
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer"
ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9"
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP7:2,1 $IP8:2,1 $IP9:2,1 $IP1:1,1 $IP2:1,1 $IP3:1,1"
SKIP_SMTP=n
SMTPHOST=smtp.example.com
SMTPUSER=smtp@example.com 
SMTPPASSWORD=smtppwd   
SMTPSSL=n
SMTPPORT=25
SMTPMAILFROM="My Company <myco@company.com>"

Yeni veri merkezi ekleyin

Yeni bir veri merkezi kurmak için aşağıdaki prosedürü kullanın.

Prosedürde, veri merkezleri şu adlara sahiptir:

  • dc-1: mevcut veri merkezi
  • dc-2: yeni veri merkezi

Yeni bir veri merkezi eklemek için:

  1. dc-1'de, setup.sh dosyasını yeni dc-1 ile orijinal Cassandra düğümlerinde yeniden çalıştırın. dc-2'deki Cassandra düğümlerini içeren bir config dosyası oluşturun:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
  2. dc-1'de, Yönetim Sunucusu düğümünde setup.sh dosyasını yeniden çalıştırın:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
  3. dc-2'de, tüm düğümlere apigee-setup'ı yükleyin. Daha fazla bilgi için Edge Apigee-setup yardımcı programını yükleme bölümüne bakın bilgisi.
  4. dc-2'de, Cassandra ve ZooKeeper'ı uygun düğümlere yükleyin:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
  5. dc-2'de, yeniden oluşturma komutunu tüm Cassandra düğümlerinde dc-1'in bölge adı:
    /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassIP rebuild dc-1

    Kullanıcı adınızı ve şifrenizi yalnızca Cassandra için JMX kimlik doğrulamasını etkinleştirdiğinizden emin olun.

  6. dc-2'de, Yönetim Sunucusu'nu uygun düğüme yükleyin:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
  7. dc-2'deki Yönetim Sunucusu düğümünde, apigee-provision'yi yükleyin, Bu işlem apigee-adminapi.sh yardımcı programını yükler:
    /opt/apigee/apigee-service/bin/apigee-service apigee-provision install
  8. dc-2'de, uygun düğümlere Rotalar ve İleti İşlemcileri yükleyin:
    /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
  9. dc-2'de, Qpid'i uygun düğümlere yükleyin:
    /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
  10. dc-2'de, Postgres'i uygun düğüme yükleyin:
    /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
  11. Postgres düğümleri için Postgres ana/bekleme modunu ayarlayın. dc-1'deki Postgres düğümü ana, dc-2'deki Postgres düğümü bekleme sunucusudur.
    1. dc-1'deki ana düğümde, yapılandırma dosyasını düzenleyerek şunları ayarlayın:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    2. Yeni ana slaytta çoğaltmayı etkinleştirin:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
    3. dc-2'deki bekleme düğümünde yapılandırma dosyasını düzenleyerek şunları ayarlayın:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    4. dc-2'deki bekleme düğümünde sunucuyu durdurun ve ardından mevcut Postgres verileri:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
      rm -rf /opt/apigee/data/apigee-postgresql/

      Gerekirse, bu verileri silmeden önce yedekleyebilirsiniz.

    5. dc-2'de bekleme düğümünü yapılandırın:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
  12. dc-1'de analiz yapılandırmasını güncelleyin ve kuruluşları yapılandırın.
    1. dc-1'in Yönetim Sunucusu düğümünde Postgres'in UUID'sini alın düğüm:
      apigee-adminapi.sh servers list -r dc-1 -p analytics -t postgres-server \
        --admin adminEmail --pwd adminPword --host localhost

      UUID, döndürülen verilerin sonunda görünür. Bu değeri kaydedin.

    2. dc-2'nin Yönetim Sunucusu düğümünde Postgres'in UUID'sini alın düğümünü önceki adımda gösterildiği gibi seçin. Bu değeri kaydedin.
    3. dc-1'in Yönetim Sunucusu düğümünde analiz ve tüketici grupları. Aşağıdaki komutların çoğunda bu bilgiler gerekir.

      Varsayılan olarak analiz grubunun adı "axgroup-001" ve tüketicinin adı grubu "tüketici-grubu-001". Bir bölgenin sessiz yapılandırma dosyasında ilgili bölgenin adını ayarlayabilirsiniz. "AXGROUP" özelliğini kullanarak analiz grubunun "AXGROUP" değerini seçebilirsiniz.

      Analytics'in ve tüketici gruplarının adlarından emin değilseniz aşağıdaki komutuna ekleyerek bulabilirsiniz:

      apigee-adminapi.sh analytics groups list \
        --admin adminEmail --pwd adminPword --host localhost

      Bu komut, ad alanındaki Analytics grubu adını ve tüketici grubunu döndürür adını girin.

    4. dc-1'in Yönetim Sunucusu düğümünde mevcut Postgres'i kaldırın. sunucuyu temel alarak bir bağlantı oluşturur:
      1. Postgres düğümünü tüketici grubundan kaldırın:
        apigee-adminapi.sh analytics groups consumer_groups datastores remove \
          -g axgroup-001 -c consumer-group-001 -u UUID \
          -Y --admin adminEmail --pwd adminPword --host localhost

        dc-1, tablodaki iki Postgres düğümünü çalıştıracak şekilde ana/bekleme modu, ikisini de kaldırın:

        apigee-adminapi.sh analytics groups consumer_groups datastores remove \
          -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" \
          -Y --admin adminEmail --pwd adminPword --host localhost
      2. Postgres düğümünü analiz grubundan kaldırın:
        apigee-adminapi.sh analytics groups postgres_server remove \
          -g axgroup-001 -u UUID -Y --admin adminEmail \
          --pwd adminPword --host localhost

        dc-1, ana/bekleme modunda çalışan iki Postgres düğümüne sahip olacak şekilde yapılandırıldıysa, her ikisini de kaldırın:

        apigee-adminapi.sh analytics groups postgres_server \
          remove -g axgroup-001 -u UUID1,UUID2 -Y --admin adminEmail \
          --pwd adminPword --host localhost
    5. dc-1'in Yönetim Sunucusu düğümünde, yeni ana makineyi/beklemeyi ekleyin Sunucuları analiz grubuna gönder:
      1. İki Postgres sunucusunu da analiz grubuna ekleyin:
        apigee-adminapi.sh analytics groups postgres_server \
          add -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail \
          --pwd adminPword --host localhost

        Bu UUID_1, ana Postgres düğümüne karşılık gelir. dc-1 ve UUID_2, beklemedeki Postgres'e karşılık gelir dc-2'deki düğüm.

      2. PG sunucularını tüketici grubuna ana/beklemede olarak ekleyin:
        apigee-adminapi.sh analytics groups consumer_groups datastores \
          add -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" --admin adminEmail \
          --pwd adminPword --host localhost
    6. dc-2'deki Qpid sunucularını analiz grubuna ekleyin:
      1. dc-1'in Yönetim Sunucusu düğümünde Qpid'in UUID'lerini alın dc-2'deki düğümler:
        apigee-adminapi.sh servers list -r dc-2 -p central -t qpid-server \
          --admin adminEmail --pwd adminPword --host localhost

        UUID'ler, döndürülen verilerin sonunda görünür. Bu değerleri kaydedin.

      2. dc-1'in Yönetim Sunucusu düğümünde Qpid düğümlerini Analytics grubu (iki komutu da çalıştırın):
        apigee-adminapi.sh analytics groups qpid_server \
          add -g axgroup-001 -u "UUID_1" --admin adminEmail \
          --pwd adminPword --host localhost
        
        apigee-adminapi.sh analytics groups qpid_server \
          add -g axgroup-001 -u "UUID_2" --admin adminEmail \
          --pwd adminPword --host localhost
      3. dc-1'in Yönetim Sunucusu düğümünde Qpid düğümlerini tüketici grubu (her iki komutu da çalıştırın):
        apigee-adminapi.sh analytics groups consumer_groups consumers \
          add -g axgroup-001 -c consumer-group-001 -u "UUID_1" \
          --admin adminEmail --pwd adminPword --host localhost
        
        apigee-adminapi.sh analytics groups consumer_groups consumers \
          add -g axgroup-001 -c consumer-group-001 -u "UUID_2" \
          --admin adminEmail --pwd adminPword --host localhost
    7. Eski Postgres bekleme sunucusunun kaydını sildikten sonra dc-1'den silin:
      1. Mevcut dc-1 Postgres bekleme sunucusunun kaydını silin:
        apigee-adminapi.sh servers deregister -u UUID -r dc-1 \
          -p analytics -t postgres-server -Y --admin adminEmail \
          --pwd adminPword --host localhost

        UUID, dc-1'deki eski Postgres düğümüdür.

      2. Mevcut dc-1 Postgres bekleme sunucusunu silin:
        apigee-adminapi.sh servers delete -u UUID \
          --admin adminEmail --pwd adminPword --host localhost
  13. Cassandra anahtar alanlarını iki veri merkezi için doğru çoğaltma faktörüyle güncelleyin. Siz Bu adımı, veri merkezindeki herhangi bir Cassandra sunucusunda yalnızca bir kez çalıştırmanız yeterlidir:
    1. Cassandra cqlsh yardımcı programını başlatın:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. "cqlsh>" bölümünde aşağıdaki CQL komutlarını yürütün çoğaltmayı ayarlama istemi seviyeler:
      1. ALTER KEYSPACE "identityzone" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' }; 
      2. ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. Şu komutu kullanarak tuş alanlarını görüntüleyin:
        select * from system.schema_keyspaces;
      4. cqlsh Çıkışı:
        exit
  14. Dc-1'deki tüm Cassandra düğümlerinde aşağıdaki nodetool komutunu çalıştırarak hafıza:
    /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup

    Kullanıcı adınızı ve şifrenizi yalnızca Cassandra için JMX kimlik doğrulamasını etkinleştirdiğinizden emin olun.

  15. Veri merkezlerinde desteklemek istediğiniz her kuruluş ve her ortam için:
    1. dc-1'in Yönetim Sunucusu düğümünde, yeni MP_POD'u Kuruluş:
      apigee-adminapi.sh orgs pods add -o orgName -r dc-2 -p gateway-2 \
        --admin adminEmail --pwd adminPword --host localhost

      Burada gateway-2, ağ geçidi kapsülünün dc-2 yapılandırma dosyasındaki MP_POD mülkü.

    2. Yeni İleti İşleyicileri kuruluşa ve ortama ekleyin:
      1. dc-2'nin Yönetim Sunucusu düğümünde, dc-2'deki İleti İşlemci düğümleri:
        apigee-adminapi.sh servers list -r dc-2 -p gateway-2 \
          -t message-processor --admin adminEmail --pwd adminPword --host localhost

        UUID'ler, döndürülen verilerin sonunda görünür. Bu değerleri kaydedin.

      2. dc-1'in Yönetim Sunucusu düğümünde, her bir İleti İşleyen için dc-2'de, İleti İşleyici'yi kuruluşun bir ortamına ekleyin:
        apigee-adminapi.sh orgs envs servers add -o orgName -e envName \
          -u UUID --admin adminEmail --pwd adminPword --host localhost
    3. dc-1'in Yönetim Sunucusu düğümünde kuruluşu kontrol edin:
      apigee-adminapi.sh orgs apis deployments -o orgName -a apiProxyName \
        --admin adminEmail --pwd adminPword --host localhost

      Burada apiProxyName, kuruluşta dağıtılan bir API proxy'sinin adıdır.