Veri merkezi ekleme

Bu belgede, mevcut bir veri merkezine nasıl veri merkezi (bölge olarak da adlandırılır) ekleneceği açıklanmaktadır.

Veri merkezi eklemeden önce dikkat edilmesi gereken noktalar

Bir veri merkezi eklemeden önce SymasLDAP, ZooKeeper, Cassandra ve Postgres sunucularını veri merkezlerinde nasıl yapılandıracağınızı anlamanız gerekir. Ayrıca, iki veri merkezindeki düğümler arasında gerekli bağlantı noktalarının açık olduğundan da emin olmanız gerekir.

  • SymasLDAP

    Her veri merkezinin, replikasyon etkin olarak yapılandırılmış kendi SymasLDAP sunucusu vardır. Yeni veri merkezini yüklediğinizde SymasLDAP'yi replikasyon kullanacak şekilde yapılandırmanız ve mevcut veri merkezindeki SymasLDAP sunucusunu replikasyon kullanacak şekilde yeniden yapılandırmanız gerekir.

  • ZooKeeper

    Her iki veri merkezi için ZK_HOSTS özelliğinde, her iki veri merkezindeki tüm ZooKeeper düğümlerinin IP adreslerini veya DNS adlarını aynı sırada belirtin ve tüm düğümleri ":observer" değiştiricisiyle işaretleyin. :observer değiştiricisi olmayan düğümlere "seçmenler" denir. Yapılandırmanızda tek sayıda "seçmen" olmalıdır.

    Bu topolojide, 9 numaralı ana makinedeki ZooKeeper ana makinesi gözlemcidir:

    Aşağıda gösterilen örnek yapılandırma dosyasında, 9. düğüm :observer değiştiricisiyle etiketlenir. Böylece 1., 2., 3., 7. ve 8. düğümler olmak üzere beş seçmeniniz olur.

    Her veri merkezi için ZK_CLIENT_HOSTS özelliğinde, veri merkezindeki tüm ZooKeeper düğümleri için veri merkezindeki yalnızca ZooKeeper düğümlerinin IP adreslerini veya DNS adlarını aynı sırada belirtin.

  • Cassandra

    Her veri merkezi için CASS_HOSTS, her iki veri merkezi için de tüm Cassandra IP adreslerini (DNS adları değil) belirttiğinizden emin olun. 1. veri merkezi için önce bu veri merkezindeki Cassandra düğümlerini listeleyin. 2. veri merkezi için önce bu veri merkezindeki Cassandra düğümlerini listeleyin. Veri merkezindeki tüm Cassandra düğümleri için Cassandra düğümlerini aynı sırada listeleyin.

    Tüm Cassandra düğümlerinin ":d,r" soneki olmalıdır. Örneğin, "ip:1,1" = veri merkezi 1 ve raf/kullanılabilirlik alanı 1, "ip:2,1" = veri merkezi 2 ve raf/kullanılabilirlik alanı 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 1. kabin/kullanılabilirlik alanındaki ilk düğüm, başlangıç sunucusu olarak kullanılır. Bu dağıtım modelinde Cassandra kurulumu şu şekilde görünür:

  • Postgres

    Edge, varsayılan olarak tüm Postgres düğümlerini ana modda yükler. Ancak birden fazla veri merkeziniz olduğunda, Postgres düğümlerini ana-bekleme replikasyonunu kullanacak şekilde yapılandırırsınız. Böylece ana düğüm arızalanırsa bekleme düğümü sunucu trafiğine devam edebilir. Genellikle ana Postgres sunucusunu bir veri merkezinde, yedek sunucuyu ise ikinci veri merkezinde yapılandırırsınız.

    Mevcut veri merkezi, ana/bekleme modunda çalışan iki Postgres düğümüne sahip olacak şekilde yapılandırılmışsa bu prosedürün bir parçası olarak mevcut bekleme düğümünün kaydını silin ve yeni veri merkezindeki bir bekleme düğümüyle değiştirin.

    Aşağıdaki tabloda, her iki senaryo için de Postgres yapılandırmasının öncesi ve sonrası gösterilmektedir:

    Önce Sonra

    dc-1'de tek ana Postgres düğümü

    dc-1 bölgesindeki ana Postgres düğümü

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

    dc-1 bölgesindeki ana Postgres düğümü

    dc-1'de bekleme modunda Postgres düğümü

    dc-1 bölgesindeki ana Postgres düğümü

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

    dc-1'deki eski Standby Postgres düğümünün kaydını iptal edin.

  • Bağlantı noktası gereksinimleri

    İki veri merkezindeki düğümler arasında gerekli bağlantı noktalarının açık olduğundan emin olmanız gerekir. Bağlantı noktası şeması için Bağlantı noktası gereksinimleri başlıklı makaleye bakın.

Mevcut veri merkezini güncelleme

Veri merkezi eklemek için yeni veri merkezi düğümlerini yükleme ve yapılandırma adımlarını uygulamanızın yanı sıra orijinal veri merkezindeki düğümleri de güncellemeniz gerekir. Bu değişiklikler, yeni veri merkezine yeni Cassandra ve ZooKeeper düğümleri eklediğiniz için gereklidir. Bu düğümlerin mevcut veri merkezine erişilebilir olması ve SymasLDAP'in çoğaltmayı kullanacak şekilde yeniden yapılandırılması gerekir.

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

Aşağıda, iki veri merkezinin sessiz yapılandırma dosyaları gösterilmektedir. Yükleme topolojileri bölümünde gösterildiği gibi her veri merkezinde 6 düğüm vardır. dc-1'in yapılandırma dosyasının aşağıdakilere ek ayarlar eklediğini unutmayın:

  • SymasLDAP'yi iki SymasLDAP düğümü arasında replikasyonla yapılandırın.
  • dc-2'deki yeni Cassandra ve ZooKeeper düğümlerini dc-1'in yapılandırma dosyasına 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 bir veri merkezi ekleme

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

Prosedürde, veri merkezlerinin adları şöyledir:

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

Yeni bir veri merkezi eklemek için:

  1. dc-1'de, dc-2'deki Cassandra düğümlerini içeren yeni dc-1 yapılandırma dosyasıyla orijinal Cassandra düğümlerinde setup.sh dosyasını yeniden çalıştırın:
    /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

    Para kazanma özelliğini kullanıyorsanız para kazanma kurulumu komutunu yeniden çalıştırın:

    /opt/apigee/apigee-setup/bin/setup.sh -p mo -f mint_configFile1

  3. dc-2'de apigee-setup'yi tüm düğümlere yükleyin. Daha fazla bilgi için Edge apigee-setup yardımcı programını yükleme başlıklı makaleyi inceleyin.
  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, tüm Cassandra düğümlerinde yeniden oluşturma komutunu çalıştırın ve dc-1'in bölge adını belirtin:
    /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassIP rebuild dc-1

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

  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, Rotaları ve Mesaj İşleyicileri uygun düğümlere 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 kurulumunu yapın. dc-1'deki Postgres düğümü ana, dc-2'deki Postgres düğümü ise yedek sunucudur.
    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 sunucuda ç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ı aşağıdaki şekilde düzenleyin:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    4. dc-2'deki bekleme düğümünde sunucuyu durdurun ve ardından mevcut Postgres verilerini silin:
      /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 düğümünün UUID'sini alın:
      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, önceki adımda gösterildiği gibi Postgres düğümünün UUID'sini alın. Bu değeri kaydedin.
    3. dc-1'in Yönetim Sunucusu düğümünde, analytics ve tüketici gruplarının adını belirleyin. Aşağıdaki komutların çoğu için bu bilgiler gerekir.

      Varsayılan olarak, analiz grubunun adı "axgroup-001", tüketici grubunun adı ise "consumer-group-001" olur. Bir bölgenin sessiz yapılandırma dosyasında, AXGROUP özelliğini kullanarak analiz grubunun adını ayarlayabilirsiniz.

      Analiz ve tüketici gruplarının adlarından emin değilseniz bunları görüntülemek için aşağıdaki komutu kullanın:

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

      Bu komut, ad alanında analiz grubu adını, consumer-groups alanında ise tüketici grubu adını döndürür.

    4. dc-1'in Yönetim Sunucusu düğümünde, mevcut Postgres sunucusunu analytics grubundan kaldırın:
      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, ana/bekleme modunda çalışan iki Postgres düğümüne sahip olacak şekilde yapılandırılmışsa her 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ılmışsa 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/bekleme Postgres sunucularını analytics grubuna ekleyin:
      1. Her iki 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

        Burada UUID_1, dc-1 içindeki ana Postgres düğümüne, UUID_2 ise dc-2 içindeki yedek Postgres düğümüne karşılık gelir.

      2. PG sunucularını ana/yedek olarak tüketici grubuna 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, dc-2'deki Qpid düğümlerinin UUID'lerini alın:
        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 grubuna ekleyin (her 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 grubuna ekleyin (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

        Para kazanma'yı kullanıyorsanız Qpid düğümlerini dc-1'in Yönetim Sunucusu düğümündeki MINT grubuna ekleyin:

        apigee-adminapi.sh analytics groups qpid_server \
        add -g mxgroup001 -u UUID_1 --admin adminEmail \
        --pwd adminPword --host localhost
        
        apigee-adminapi.sh analytics groups qpid_server \
        add -g mxgroup001 -u UUID_2 --admin adminEmail \
        --pwd adminPword --host localhost
    7. Eski Postgres bekleme sunucusunun kaydını silin ve dc-1'den kaldırın:
      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

        Burada UUID, dc-1'deki eski yedek 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. Bu adımı yalnızca bir kez, iki veri merkezinden herhangi birindeki Cassandra sunucusunda çalıştırmanız yeterlidir:
    1. Cassandra cqlsh yardımcı programını başlatın:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Cassandra anahtar alanları için replikasyon düzeylerini ayarlamak üzere "cqlsh>" isteminde aşağıdaki CQL komutlarını çalıştırın:
      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. Aşağıdaki komutu kullanarak anahtar alanlarını görüntüleyin:
        SELECT * FROM system_schema.keyspaces;
      4. Çıkış cqlsh:
        exit
  14. Belleği boşaltmak için dc-1'deki tüm Cassandra düğümlerinde aşağıdaki nodetool komutunu çalıştırı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.

  15. Veri merkezleri arasında 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ş'a ekleyin:
      apigee-adminapi.sh orgs pods add -o orgName -r dc-2 -p gateway-2 \
        --admin adminEmail --pwd adminPword --host localhost

      Burada gateway-2, dc-2 yapılandırma dosyasındaki MP_POD özelliğiyle tanımlanan ağ geçidi pod'unun adıdır.

    2. Yeni mesaj işlemcileri kuruluşa ve ortama ekleyin:
      1. dc-2'nin Yönetim Sunucusu düğümünde, dc-2'deki Mesaj İşlemcisi düğümlerinin UUID'lerini alın:
        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, dc-2'deki her Mesaj İşleyici için Mesaj İşleyici'yi kuruluşun 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.

  16. Para kazanma'yı kullanıyorsanız DC2'ye para kazanma düğümünü yükleyin.

    DC2'deki yönetim sunucusu ve mesaj işlemcisi düğümlerinde MINT kurulum komutunu çalıştırın:

    /opt/apigee/apigee-setup/bin/setup.sh -p mo -f mint_configFile1