Veri merkezi ekleme

Private Cloud için Edge v4.18.01

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 kullanacak şekilde yapılandırmanız ve mevcut veri merkezindeki OpenLDAP sunucusunu çoğaltma kullanacak şekilde yeniden yapılandırmanız gerekir.
  • ZooKeeper
    Her iki veri merkezinin 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 "oy veren" sayısı tek 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, beş oy vereniniz olması için ":observer" değiştiricisiyle etiketlenmiştir: 1, 2, 3, 7 ve 8 numaralı düğümler.

    Her bir veri merkezinin ZK_CLIENT_HOSTS özelliği için, veri merkezindeki tüm ZooKeeper düğümleri için yalnızca veri merkezindeki ZooKeeper düğümlerinin IP adreslerini veya DNS adlarını aynı sırayla belirtin.
  • Cassandra
    Tüm veri merkezlerinde aynı sayıda Cassandra düğümü olmalıdır.

    Her veri merkezi için CASS_HOSTS parametresinde, 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ırayla listeleyin.

    Tüm Cassandra düğümlerinde ":<d>,<r>' son eki olmalıdır. Örneğin, "<ip>:1,1 = 1. veri merkezi ve 1. raf/kullanıma hazır bölge ve "<ip>:2,1 = 2. veri merkezi ve 1. raf/kullanıma hazır bölge.
    Ö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. Bununla birlikte, 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 ve bekleme sunucusunu ikinci veri merkezinde yapılandırırsınız.

    Mevcut veri merkezi zaten 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 bunu 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 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'deki yedek 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 Yükleme Koşulları başlıklı makaleyi inceleyin.

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 için 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-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 ekleme prosedürü

Bu işlemde veri merkezleri şu şekilde adlandırılır:

  • dc-1: Mevcut veri merkezi
  • dc-2: yeni veri merkezi
  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'u 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/tanımlar/qwiklabs-cassandra/bin/nodetool -h cassIP rebuild dc-1
  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'ı yükleyin:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-provision install
  8. dc-2'de, Rotaları ve Mesaj İşlemcileri 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/kaynaklarının/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ü ise yedek sunucudur.

    Bu işlemin ilerleyen aşamalarında, dc-1'deki mevcut Postgres yedek sunucusunun kaydını silebilirsiniz.
    1. dc-1'deki ana düğümde yapılandırma dosyasını aşağıdaki şekilde ayarlayacak şekilde düzenleyin:
      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 bulunan yapılandırma dosyasını şu şekilde ayarlayın:
      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/

      Not: Gerekirse bu verileri silmeden önce yedekleyebilirsiniz.
    5. dc-2'deki yedek düğümü yapılandırın:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
  12. dc-1'de Analytics 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.

      Not: dc-1, ana/bekleme modunda iki Postgres düğümü çalışacak şekilde yapılandırıldıysa çıkışta iki IP adresi ve UUID görürsünüz. Her iki UUID'yi de kaydedin. IP'lerden hangi UUID'nin ana, hangisinin yedek düğüm için olduğunu belirleyebilirsiniz.
    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ındaki analytics grubunun adını, tüketici grupları alanında ise tüketici grubu adını döndürür.
    4. dc-1 yönetim sunucusu düğümünde, mevcut Postgres sunucusunu analizler 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:
        > qwiklabs-adminapi.sh server list -r dc-2 -p center -t qpid-server --admin adminEmail --pwd adminPword --host localhost sonunda döndürülen UUID'ler görünür.
        UUID'ler
        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



    7. Eski Postgres bekleme sunucusunun kaydını silerek dc-1'den silin:
      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:
        Not: Bu komut, Postgres sunucu düğümünü kaldırmaz. Bu düğüm, yalnızca Edge düğümleri listesinden kaldırılır. Gerekirse Postgres'i daha sonra düğümden kaldırabilirsiniz.
        > 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:

    Not: Aşağıdaki komutların tümü, çoğaltma faktörünü "3" olarak ayarlayarak kümede üç Cassandra düğümü olduğunu belirtir. Bu değeri kurulumunuza göre gerektiği şekilde değiştirin.
    1. Cassandra cqlsh yardımcı programını başlatın:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Cassandra tuş alanlarının replika düzeylerini ayarlamak için "cqlsh>" isteminde aşağıdaki CQL komutlarını yürütün:
      1. cqlsh> ALTER KEYSPACE "identityzone" WITH Replication = { 'class': 'NetworkTopologystrateji', 'dc-1': '3','dc-2': '3' };
      2. cqlsh> 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:
        cqlsh> select * from system.schema_keyspaces;
      4. cqlsh'den çıkma:
        cqlsh> 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 -h cassandraIP cleanup
  15. Her kuruluş ve veri merkezlerinde desteklemek istediğiniz 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ında MP_POD mülkü tarafından tanımlandığı şekliyle ağ geçidi kapsülünün 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 bir İleti İşleyici için Mesaj İşleyici'yi kuruluşun bir ortamına ekleyin:
        > qwiklabs-adminapi.sh orgs envs server add -o orgName -e envName -u UUID --admin adminhostEmail --pwd adminPword
    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.