Menambahkan pusat data

Dokumen ini menjelaskan cara menambahkan pusat data (juga disebut region) ke data yang ada tengah.

Pertimbangan sebelum menambahkan pusat data

Sebelum Anda menginstal pusat data, Anda harus memahami cara mengkonfigurasi OpenLDAP, Server ZooKeeper, Cassandra, dan Postgres di seluruh pusat data. Anda juga harus memastikan bahwa porta yang diperlukan terbuka di antara {i> node<i} di dua pusat data.

  • OpenLDAP

    Setiap pusat data memiliki server OpenLDAP sendiri yang dikonfigurasi dengan replikasi diaktifkan. Jika Anda menginstal pusat data baru, Anda harus mengkonfigurasi OpenLDAP untuk menggunakan replikasi, dan Anda harus mengkonfigurasi ulang server OpenLDAP di pusat data yang ada untuk menggunakan replikasi.

  • ZooKeeper

    Untuk properti ZK_HOSTS untuk kedua pusat data, tentukan alamat IP atau nama DNS semua node ZooKeeper dari kedua data tengah, dalam urutan yang sama, dan menandai setiap {i>node<i} dengan pengubah “:observer”. Node tanpa pengubah :observer disebut "voters". Kamu harus punya pengalaman yang ganjil jumlah "pemilih" dalam konfigurasi Anda.

    Dalam topologi ini, host ZooKeeper pada host 9 adalah pengamat:

    Pada contoh file konfigurasi yang ditunjukkan di bawah ini, simpul 9 diberi tag dengan Pengubah :observer sehingga Anda memiliki lima pemilih: Node 1, 2, 3, 7, dan 8.

    Untuk ZK_CLIENT_HOSTS untuk setiap pusat data, tentukan alamat IP atau nama DNS hanya dari ZooKeeper di pusat data, dalam urutan yang sama, untuk semua {i>node<i} ZooKeeper dalam data tengah.

  • Cassandra

    Untuk CASS_HOSTS untuk setiap pusat data, pastikan Anda menentukan semua IP Cassandra alamat (bukan nama DNS) untuk kedua data Google. Untuk pusat data 1, cantumkan node Cassandra di pusat data tersebut terlebih dahulu. Untuk pusat data 2, cantumkan node Cassandra di pusat data tersebut terlebih dahulu. Mencantumkan node Cassandra pada untuk semua {i>node<i} Cassandra di pusat data.

    Semua node Cassandra harus memiliki akhiran ':d,r'; misalnya 'ip:1,1 = pusat data 1 dan zona rak/ketersediaan 1 serta 'ip:2,1 = pusat data 2 dan zona rak/ketersediaan 1.

    Misalnya, "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"

    Node pertama di rak/zona ketersediaan 1 dari setiap pusat data akan digunakan sebagai inti server tertentu. Dalam model deployment ini, penyiapan Cassandra akan terlihat seperti ini:

  • Postgres

    Secara default, Edge menginstal semua node Postgres dalam mode master. Namun, ketika Anda memiliki beberapa pusat data, Anda mengonfigurasi node Postgres untuk menggunakan replikasi master-standby sehingga jika jika node master gagal, node standby dapat melanjutkan ke traffic server. Biasanya, Anda mengonfigurasi server Postgres master di satu pusat data, dan server standby di data kedua tengah.

    Jika pusat data yang ada sudah dikonfigurasi untuk menjalankan dua {i>node <i}Postgres di mode master/standby, lalu sebagai bagian dari prosedur ini, batalkan pendaftaran node standby yang ada dan menggantinya dengan node standby di pusat data baru.

    Tabel berikut menunjukkan konfigurasi Postgres sebelum dan sesudah untuk keduanya skenario:

    Sebelum Setelah

    Node Master Postgres tunggal di dc-1

    Node Postgres utama di dc-1

    Node Postgres standby di dc-2

    Node Postgres utama di dc-1

    Node Postgres standby di dc-1

    Node Postgres utama di dc-1

    Node Postgres standby di dc-2

    Batalkan pendaftaran node Postgres Standby lama di dc-1

  • Persyaratan port

    Anda harus memastikan bahwa port yang diperlukan terbuka di antara node di dua pusat data. Untuk diagram port, lihat Persyaratan port.

Memperbarui pusat data yang ada

Untuk menambahkan pusat data, Anda harus melakukan langkah-langkah untuk menginstal dan mengonfigurasikan data baru di pusat data, tetapi juga mengharuskan Anda untuk memperbarui {i>node<i} di pusat data asli. Ini modifikasi diperlukan karena Anda menambahkan node Cassandra dan ZooKeeper baru di pusat data yang harus dapat diakses oleh pusat data yang ada, dan Anda harus mengonfigurasi ulang OpenLDAP untuk menggunakan replikasi.

Membuat file konfigurasi

Di bawah ini adalah file konfigurasi senyap untuk dua pusat data, di mana masing-masing Center memiliki 6 node seperti yang ditunjukkan dalam Topologi penginstalan. Perhatikan bahwa file konfigurasi untuk dc-1 menambahkan setelan tambahan untuk:

  • Konfigurasikan OpenLDAP dengan replikasi di dua node OpenLDAP.
  • Tambahkan node Cassandra dan ZooKeeper baru dari dc-2 ke file konfigurasi untuk dc-1.
# 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>"

Menambahkan pusat data baru

Gunakan prosedur di bawah untuk memasang pusat data baru.

Dalam prosedurnya, pusat data memiliki nama berikut:

  • dc-1: pusat data yang ada
  • dc-2: pusat data baru

Untuk menambahkan pusat data baru:

  1. Pada dc-1, jalankan kembali setup.sh pada node Cassandra asli dengan dc-1 yang baru file konfigurasi yang menyertakan node Cassandra dari dc-2:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
  2. Pada dc-1, jalankan kembali setup.sh pada node Server Pengelolaan:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
  3. Pada dc-2, instal apigee-setup di semua node. Lihat Menginstal utilitas penyiapan Edge apigee untuk informasi selengkapnya info.
  4. Di dc-2, instal Cassandra dan ZooKeeper di node yang sesuai:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
  5. Di dc-2, jalankan perintah build ulang pada semua node Cassandra, dengan menentukan nama wilayah dc-1:
    /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassIP rebuild dc-1

    Anda hanya perlu memasukkan nama pengguna dan {i>password<i} jika Anda mengaktifkan autentikasi JMX untuk Cassandra.

  6. Pada dc-2, instal Server Pengelolaan pada node yang sesuai:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
  7. Pada node Management Server di dc-2, instal apigee-provision, yang menginstal utilitas apigee-adminapi.sh:
    /opt/apigee/apigee-service/bin/apigee-service apigee-provision install
  8. Pada dc-2, instal Rute dan Pemroses Pesan di node yang sesuai:
    /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
  9. Pada dc-2, instal Qpid di node yang sesuai:
    /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
  10. Pada dc-2, instal Postgres di node yang sesuai:
    /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
  11. Menyiapkan master/standby Postgres untuk node Postgres. Simpul Postgres di dc-1 adalah utama, dan node Postgres di dc-2 adalah server standby.
    1. Pada node master di dc-1, edit file konfigurasi untuk menyetel:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    2. Aktifkan replikasi pada master baru:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
    3. Pada node standby di dc-2, edit file konfigurasi untuk menyetel:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    4. Pada node standby di dc-2, hentikan server, lalu hapus semua data Postgres yang ada:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
      rm -rf /opt/apigee/data/apigee-postgresql/

      Jika perlu, Anda dapat mencadangkan data ini sebelum menghapusnya.

    5. Konfigurasikan node standby di dc-2:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
  12. Pada dc-1, perbarui konfigurasi analisis dan konfigurasi organisasi.
    1. Di node Server Pengelolaan dc-1, dapatkan UUID Postgres {i>node<i}:
      apigee-adminapi.sh servers list -r dc-1 -p analytics -t postgres-server \
        --admin adminEmail --pwd adminPword --host localhost

      UUID muncul di akhir data yang ditampilkan. Simpan nilai tersebut.

    2. Di node Server Pengelolaan dc-2, dapatkan UUID Postgres seperti yang ditunjukkan pada langkah sebelumnya. Simpan nilai tersebut.
    3. Pada node Server Pengelolaan dc-1, tentukan nama analitik dan kelompok konsumen. Banyak perintah di bawah ini memerlukan informasi tersebut.

      Secara default, nama grup analisis adalah "axgroup-001", dan nama konsumen grupnya adalah "consumer-group-001". Di file konfigurasi senyap untuk suatu region, Anda dapat menetapkan nama grup analisis dengan menggunakan properti AXGROUP.

      Jika Anda tidak yakin dengan nama Analytics dan grup konsumen, gunakan untuk menampilkannya:

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

      Perintah ini menampilkan nama grup analisis di kolom nama, dan grup konsumen di isian {i>consumer-groups<i}.

    4. Di node Server Pengelolaan dc-1, hapus Postgres yang ada server dari grup analisis:
      1. Hapus node Postgres dari grup konsumen:
        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

        Jika dc-1 dikonfigurasi untuk menjalankan dua node Postgres di mode master/standby, hapus keduanya:

        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. Hapus node Postgres dari grup analisis:
        apigee-adminapi.sh analytics groups postgres_server remove \
          -g axgroup-001 -u UUID -Y --admin adminEmail \
          --pwd adminPword --host localhost

        Jika dc-1 dikonfigurasi untuk memiliki dua {i> node <i}Postgres yang berjalan dalam mode master/standby, hapus keduanya:

        apigee-adminapi.sh analytics groups postgres_server \
          remove -g axgroup-001 -u UUID1,UUID2 -Y --admin adminEmail \
          --pwd adminPword --host localhost
    5. Pada node Server Pengelolaan dc-1, tambahkan master/standby baru Server postgres ke grup analisis:
      1. Tambahkan kedua server Postgres ke grup analisis:
        apigee-adminapi.sh analytics groups postgres_server \
          add -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail \
          --pwd adminPword --host localhost

        UUID_1 di sini sesuai dengan node Postgres master di dc-1, dan UUID_2 sesuai dengan Postgres standby di dc-2.

      2. Tambahkan server PG ke grup konsumen sebagai master/standby:
        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. Tambahkan server Qpid dari dc-2 ke grup analisis:
      1. Di node Server Pengelolaan dc-1, dapatkan UUID Qpid di dc-2:
        apigee-adminapi.sh servers list -r dc-2 -p central -t qpid-server \
          --admin adminEmail --pwd adminPword --host localhost

        UUID muncul di akhir data yang ditampilkan. Simpan nilai-nilai tersebut.

      2. Pada node Server Pengelolaan dc-1, tambahkan node Qpid ke bagian grup analytics (jalankan kedua perintah):
        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. Pada node Server Pengelolaan dc-1, tambahkan node Qpid ke bagian {i>consumer group<i} (jalankan kedua perintah):
        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. Batalkan pendaftaran dan hapus server standby Postgres lama dari dc-1:
      1. Batalkan pendaftaran server standby Postgres dc-1 yang ada:
        apigee-adminapi.sh servers deregister -u UUID -r dc-1 \
          -p analytics -t postgres-server -Y --admin adminEmail \
          --pwd adminPword --host localhost

        Dengan UUID adalah node Postgres standby lama di dc-1.

      2. Hapus server standby dc-1 Postgres yang ada:
        apigee-adminapi.sh servers delete -u UUID \
          --admin adminEmail --pwd adminPword --host localhost
  13. Perbarui keyspace Cassandra dengan faktor replikasi yang benar untuk kedua pusat data tersebut. Anda hanya perlu menjalankan langkah ini sekali di server Cassandra di salah satu pusat data:
    1. Mulai utilitas cqlsh Cassandra:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Jalankan perintah CQL berikut di "cqlsh>" prompt untuk menetapkan replikasi tingkat untuk keyspace Cassandra:
      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. Lihat keyspace dengan menggunakan perintah:
        select * from system.schema_keyspaces;
      4. Keluar dari cqlsh:
        exit
  14. Jalankan perintah nodetool berikut pada semua node Cassandra di dc-1 untuk mengosongkan memori:
    /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup

    Anda hanya perlu memasukkan nama pengguna dan {i>password<i} jika Anda mengaktifkan autentikasi JMX untuk Cassandra.

  15. Untuk setiap organisasi dan untuk setiap lingkungan yang ingin Anda dukung di seluruh pusat data:
    1. Di node Server Pengelolaan dc-1, tambahkan MP_POD baru ke bagian Organisasi:
      apigee-adminapi.sh orgs pods add -o orgName -r dc-2 -p gateway-2 \
        --admin adminEmail --pwd adminPword --host localhost

      Dengan gateway-2 adalah nama pod gateway seperti yang didefinisikan oleh Properti MP_POD dalam file konfigurasi dc-2.

    2. Tambahkan Pemroses Pesan baru ke organisasi dan lingkungan:
      1. Di node Server Pengelolaan dc-2, dapatkan UUID Node Pemroses Pesan di dc-2:
        apigee-adminapi.sh servers list -r dc-2 -p gateway-2 \
          -t message-processor --admin adminEmail --pwd adminPword --host localhost

        UUID muncul di akhir data yang ditampilkan. Simpan nilai-nilai tersebut.

      2. Di node Server Pengelolaan dc-1, untuk setiap Pemroses Pesan di dc-2, tambahkan Pemroses Pesan ke lingkungan untuk organisasi:
        apigee-adminapi.sh orgs envs servers add -o orgName -e envName \
          -u UUID --admin adminEmail --pwd adminPword --host localhost
    3. Di node Server Pengelolaan dc-1, periksa organisasi:
      apigee-adminapi.sh orgs apis deployments -o orgName -a apiProxyName \
        --admin adminEmail --pwd adminPword --host localhost

      Dengan apiProxyName adalah nama proxy API yang di-deploy di organisasi.