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. - Kassandra
Tüm veri merkezlerinin aynı sayıda Cassandra düğümüne sahip olması gerekir.
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 eklemek 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:
- 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
- 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
- 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. - dc-2'de, Cassandra ve ZooKeeper'ı uygun düğümlere yükleyin:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
- 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.
- dc-2'de, Yönetim Sunucusu'nu uygun düğüme yükleyin:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
- dc-2'deki Yönetim Sunucusu düğümünde,
apigee-adminapi.sh
yardımcı programını yükleyenapigee-provision
'yi yükleyin:/opt/apigee/apigee-service/bin/apigee-service apigee-provision install
- dc-2'de, Rotalar ve İleti İşleyicileri'ni uygun düğümlere yükleyin:
/opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
- dc-2'de uygun düğümlere Qpid'yi yükleyin:
/opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
- dc-2'de Postgres'i uygun düğüme yükleyin:
/opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
- 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.
- dc-1'deki ana düğümde, yapılandırma dosyasını şu şekilde düzenleyin:
PG_MASTER=IPorDNSofDC1Master PG_STANDBY=IPorDNSofDC2Standby
- Yeni ana makinede çoğaltmayı etkinleştirin:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
- dc-2'deki bekleme düğümünde yapılandırma dosyasını şu şekilde düzenleyin:
PG_MASTER=IPorDNSofDC1Master PG_STANDBY=IPorDNSofDC2Standby
- 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.
- 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
- dc-1'deki ana düğümde, yapılandırma dosyasını şu şekilde düzenleyin:
- dc-1'de analiz yapılandırmasını güncelleyin ve kuruluşları yapılandırın.
- 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.
- 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.
- 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.
- dc-1'in Yönetim Sunucusu düğümünde, mevcut Postgres sunucusunu analiz grubundan kaldırın:
- 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
- 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
- Postgres düğümünü tüketici grubundan kaldırın:
- dc-1'in Yönetim Sunucusu düğümünde, yeni ana/beklemedeki Postgres sunucularını analiz grubuna ekleyin:
- İ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.
- 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
- İki Postgres sunucusunu da analiz grubuna ekleyin:
- dc-2 içindeki Qpid sunucularını analiz grubuna ekleyin:
- 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.
- 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
- 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
- dc-1'in Yönetim Sunucusu düğümünde, dc-2'deki Qpid düğümlerinin UUID'lerini alın:
- Eski Postgres bekleme sunucusunun kaydını sildikten ve dc-1'den silin:
- 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.
- Mevcut dc-1 Postgres bekleme sunucusunu sil:
apigee-adminapi.sh servers delete -u UUID \ --admin adminEmail --pwd adminPword --host localhost
- Mevcut dc-1 Postgres bekleme sunucusunun kaydını silin:
- dc-1'in Yönetim Sunucusu düğümünde, Postgres düğümünün UUID'sini alın:
- 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:
- Cassandra
cqlsh
yardımcı programını başlatın:/opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
- Cassandra anahtar alanları için çoğaltma düzeylerini ayarlamak için "cqlsh>" isteminde aşağıdaki CQL komutlarını yürütün:
ALTER KEYSPACE "identityzone" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- Şu komutu kullanarak tuş alanlarını görüntüleyin:
select * from system.schema_keyspaces;
cqlsh
çıkışı:exit
- Cassandra
- 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.
- Veri merkezlerinde desteklemek istediğiniz her kuruluş ve ortam için:
- 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.
- Yeni İleti İşleyicileri kuruluşa ve ortama ekleyin:
- 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.
- 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
- dc-2'nin Yönetim Sunucusu düğümünde, dc-2'deki İleti İşlemci düğümlerinin UUID'lerini alın:
- 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.
- dc-1'in Yönetim Sunucusu düğümünde, yeni MP_POD'u Kuruluşa ekleyin: