Veri merkezi ekleme

Bu dokümanda, mevcut bir veri merkezine veri merkezi (bölge olarak da bilinir) ekleme işlemi açıklanmaktadır.

Veri merkezi eklemeden önce dikkat edilmesi gereken noktalar

Veri merkezi eklemeden önce, veri merkezlerinde 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 özelliği etkinleştirilmiş şekilde yapılandırılmış kendi OpenLDAP sunucusu vardır. Yeni veri merkezini kurarken OpenLDAP'ı çoğaltma işlemini kullanacak şekilde yapılandırmanız ve mevcut veri merkezindeki OpenLDAP sunucusunu çoğaltma işlemini kullanacak şekilde yeniden yapılandırmanız gerekir.

  • ZooKeeper

    Her iki veri merkezinin de ZK_HOSTS mülkü için, her iki veri merkezindeki tüm ZooKeeper düğümlerinin IP adreslerini veya DNS adlarını aynı sırayla belirtin ve tüm düğümleri ":observer" değiştiricisiyle işaretleyin. :observer değiştiricisi olmayan düğümlere "oy verenler" denir. Yapılandırmanızda tek sayıda "oy veren" olmalıdır.

    Bu topolojide, 9. 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 etiketlenmiştir. Böylece, 1, 2, 3, 7 ve 8 numaralı düğümler olmak üzere beş oy vereniniz olur.

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

  • Cassandra

    Tüm veri merkezlerinde aynı sayıda Cassandra düğümü olmalıdır.

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

    Tüm Cassandra düğümlerinde ":d,r" son eki olmalıdır. Örneğin, "ip:1,1 = veri merkezi 1 ve raf/kullanıma hazır bölge 1" ve "ip:2,1 = veri merkezi 2 ve raf/kullanıma hazır bölge 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 numaralı raf/kullanıma hazır bölgesindeki ilk düğüm, ana sunucu 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 varsa Postgres düğümlerini ana-bekleme çoğaltma 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 kapsamında 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 önce ve sonra durumu gösterilmektedir:

    Önce Sonra

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

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

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

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

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

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

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

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

  • 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 bölümüne bakın.

Mevcut veri merkezini güncelleme

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

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

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

  • OpenLDAP'ı iki OpenLDAP düğümü arasında çoğaltma ile yapılandırın.
  • dc-2'deki yeni Cassandra ve ZooKeeper düğümlerini dc-1 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 kurmak için aşağıdaki prosedürü uygulayın.

Prosedürdeki veri merkezlerinin adları şunlardır:

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

Yeni bir veri merkezi eklemek için:

  1. dc-1'de, orijinal Cassandra düğümlerinde setup.sh'yi dc-2'deki Cassandra düğümlerini içeren yeni dc-1 yapılandırma dosyasıyla 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'yi 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, dc-1'in bölge adını belirterek tüm Cassandra düğümlerinde yeniden oluşturma komutunu çalıştırın:
    /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 Sunucusunu 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, yollar ve mesaj işleyicileri uygun düğümlere yükleyin:
    /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
  9. dc-2'de, uygun düğümlere Qpid'i 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 sunucusu ayarlayın. dc-1'deki Postgres düğümü ana, dc-2'deki Postgres düğümü ise yedek sunucudur.
    1. dc-1 ana düğümünde yapılandırma dosyasını düzenleyip aşağıdakileri ayarlayın:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    2. Yeni ana cihazda ç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ğıdakileri ayarlayacak şekilde düzenleyin:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    4. dc-2'deki yedek düğümde sunucuyu durdurun ve 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 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 analiz ve tüketici gruplarının adını belirleyin. Aşağıdaki komutların çoğu bu bilgileri gerektirir.

      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 mülkünü 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ı ve consumer-groups alanında tüketici grubu adını döndürür.

    4. dc-1 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, ana/bekleme modunda çalışan iki Postgres düğümüne sahip olacak şekilde yapılandırılmışsa 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ü analizler 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 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/yedek Postgres sunucularını analiz 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'deki ana Postgres düğümüne, UUID_2 ise dc-2'deki 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 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 yedek sunucusunun kaydını silin ve dc-1'den kaldırın:
      1. Mevcut dc-1 Postgres yedek sunucusunun kaydını kaldırın:
        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 yedek 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ı, her iki veri merkezindeki herhangi bir Cassandra sunucusunda yalnızca bir kez çalıştırmanız gerekir:
    1. Cassandra cqlsh yardımcı programını başlatın:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Cassandra anahtar alan adları için çoğaltma 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. cqlsh çıkışından çıkın:
        exit
  14. Bellek 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. Her kuruluş ve veri merkezlerinde desteklemek istediğiniz her ortam için:
    1. dc-1 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ında MP_POD özelliği tarafından tanımlanan ağ geçidi kapsülü adıdır.

    2. Yeni Mesaj İşleyicileri kuruluşa ve ortama ekleyin:
      1. dc-2'nin Yönetim Sunucusu düğümünde, dc-2'deki Mesaj İşleyen 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 İşleyen için Mesaj İşleyen'i 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 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'nin adıdır.