Veri merkezi ekleme

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

Veri merkezi eklemeden önce dikkat edilmesi gereken noktalar

Veri merkezi yüklemeden önce veri merkezleri genelinde OpenLDAP, ZooKeeper, Cassandra ve Postgres sunucularını 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 emin olmanız gerekir.

  • OpenLDAP

    Her veri merkezinin, çoğaltma etkin şekilde yapılandırılmış kendi OpenLDAP sunucusu vardır. Yeni veri merkezini yüklediğinizde, OpenLDAP'yi çoğaltmayı kullanacak şekilde yapılandırmanız ve çoğaltmayı kullanmak için mevcut veri merkezindeki OpenLDAP sunucusunu yeniden yapılandırmanız gerekir.

  • ZooKeeper

    Her iki veri merkezinin ZK_HOSTS özelliği için 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ştiriciyle işaretleyin. :observer değiştiricisi bulunmayan düğümler "oy verenler" olarak adlandırılır. Yapılandırmanızda tek sayıda "oy veren" olması gerekir.

    Bu topolojide, ana makine 9'da ZooKeeper'ın sunucusu gözlemcidir:

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

    Her veri merkezinin ZK_CLIENT_HOSTS özelliğinde, yalnızca veri merkezindeki tüm ZooKeeper düğümlerinin IP adreslerini veya DNS adlarını aynı sırayla belirtin.

  • Cassandra

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

    Tüm Cassandra düğümlerinde ":d,r" son eki olmalıdır. Örneğin, "ip:1,1 = veri merkezi 1, raf/kullanılabilirlik 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, 192.168.124.124.124.202:1,1 192.168.124.203:1,1"

    Her veri merkezinin raf/kullanılabilirlik alt bölgesi 1'deki ilk düğüm, kaynak sunucu olarak kullanılır. Bu dağıtım modelinde Cassandra kurulumu aşağıdaki gibi görünür:

  • Postgre'ler

    Varsayılan olarak Edge tüm Postgres düğümlerini ana modda yükler. Ancak birden fazla veri merkeziniz olduğunda Postgres düğümlerini ana beklemede çoğaltmayı kullanacak şekilde yapılandırırsınız. Böylece, ana düğüm başarısız olursa bekleme düğümü sunucu trafiğine devam edebilir. Genellikle, ana Postgres sunucusunu bir veri merkezinde, bekleme sunucusunu ise ikinci veri merkezinde yapılandırırsınız.

    Mevcut veri merkezi, ana/bekleme modunda çalışan iki Postgres düğümü 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 Postgres öncesi ve sonrası yapılandırması gösterilmektedir:

    Önce Sonra

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

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

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

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

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

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

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

    dc-1'de eski Bekleme Postgres düğümünün kaydını iptal et

  • 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ı şeması için Bağlantı noktası gereksinimleri başlıklı makaleye bakın.

Mevcut veri merkezi güncelleniyor

Veri merkezi eklemek için yeni veri merkezi düğümlerini kurma ve yapılandırma adımlarını uygulamanız gerekir ancak orijinal veri merkezindeki düğümleri de güncellemeniz gerekir. Yeni veri merkezine, mevcut veri merkezinden erişilebilir olması gereken yeni Cassandra ve ZooKeeper düğümleri eklediğiniz ve çoğaltmayı kullanmak için OpenLDAP'yi yeniden yapılandırmanız gerektiği için bu değişiklikler gereklidir.

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

Aşağıda, Yükleme topolojileri bölümünde gösterildiği gibi her veri merkezinin 6 düğüme sahip olduğu iki veri merkezinin sessiz yapılandırma dosyaları gösterilmektedir. dc-1 yapılandırma dosyasının şu konumlara ek ayarlar eklediğine dikkat edin:

  • OpenLDAP'yi iki OpenLDAP düğümünde çoğaltma ile 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 veri merkezi ekleme

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

Prosedürde, veri merkezleri aşağıdaki adlara sahiptir:

  • 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'yi 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'yi 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.
  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, dc-1'in bölge adını belirterek tüm Cassandra düğümlerinde yeniden oluştur komutunu çalıştırın:
    /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ştirdiyseniz 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-adminapi.sh yardımcı programını yükleyen apigee-provision'yi yükleyin:
    /opt/apigee/apigee-service/bin/apigee-service apigee-provision install
  8. dc-2'de, Rotalar ve İleti İşleyicileri'ni uygun düğümlere yükleyin:
    /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
  9. dc-2'de uygun düğümlere Qpid'yi 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 özelliğini kurun. dc-1'deki Postgres düğümü ana, dc-2'deki Postgres düğümü ise bekleme sunucusudur.
    1. dc-1'deki ana düğümde, yapılandırma dosyasını şu şekilde düzenleyin:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    2. Yeni ana makinede ç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ı şu şekilde düzenleyin:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    4. dc-2'deki bekleme düğümünde sunucuyu durdurun ve ardından mevcut tüm 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. Bekleme düğümünü dc-2'de 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, analizin ve tüketici gruplarının adını belirleyin. Aşağıdaki komutların çoğu için bu bilgiler gereklidir.

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

      Analizlerin 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 analytics grubu adını ve consumer-groups (tüketici grupları) alanında tüketici grubu adını döndürür.

    4. dc-1'in Yönetim Sunucusu düğümünde, mevcut Postgres sunucusunu analiz 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 iki Postgres düğümü ana/bekleme modunda çalışacak ş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 iki Postgres düğümü ana/bekleme modunda çalışacak ş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/beklemedeki Postgres sunucularını analiz grubuna ekleyin:
      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

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

      2. PG sunucularını tüketici grubuna ana/beklemede yapan grup 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 içindeki 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 analiz 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
    7. Eski Postgres bekleme sunucusunun kaydını sildikten ve 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

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

      2. Mevcut dc-1 Postgres bekleme sunucusunu sil:
        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ı her iki veri merkezindeki 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. Cassandra anahtar alanları için çoğaltma düzeylerini ayarlamak için "cqlsh>" isteminde aşağıdaki CQL komutlarını yürütü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. Şu komutu kullanarak tuş alanlarını görüntüleyin:
        select * from system.schema_keyspaces;
      4. cqlsh çıkışı:
        exit
  14. Bellekte yer açmak 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

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

  15. Veri merkezlerinde desteklemek istediğiniz her kuruluş ve 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ği tarafından tanımlanan ağ geçidi kapsülünün adıdır.

    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üğü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 İleti İşleyici için İ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.