डेटा सेंटर जोड़ना

Edge for Private Cloud का वर्शन 4.18.05

इस दस्तावेज़ में, किसी मौजूदा डेटा सेंटर में डेटा सेंटर (इसे क्षेत्र भी कहा जाता है) जोड़ने का तरीका बताया गया है.

डेटा सेंटर जोड़ने से पहले ध्यान देने वाली बातें

डेटा सेंटर जोड़ने से पहले, आपको यह समझना होगा कि डेटा सेंटर में OpenLDAP, ZooKeeper, Cassandra, और Postgres सर्वर को कैसे कॉन्फ़िगर किया जाता है. आपको यह भी पक्का करना होगा कि दोनों डेटा सेंटर में मौजूद नोड के बीच, ज़रूरी पोर्ट खुले हों.

  • OpenLDAP

    हर डेटा सेंटर का अपना OpenLDAP सर्वर होता है, जिसे रेप्लिकेशन की सुविधा के साथ कॉन्फ़िगर किया जाता है. नया डेटा सेंटर इंस्टॉल करते समय, आपको OpenLDAP को कॉन्फ़िगर करना होगा, ताकि वह रेप्लिकेशन का इस्तेमाल कर सके. साथ ही, आपको मौजूदा डेटा सेंटर में OpenLDAP सर्वर को फिर से कॉन्फ़िगर करना होगा, ताकि वह रेप्लिकेशन का इस्तेमाल कर सके.

  • ZooKeeper

    दोनों डेटा सेंटर की ZK_HOSTS प्रॉपर्टी के लिए, दोनों डेटा सेंटर के सभी ZooKeeper नोड के आईपी पते या डीएनएस नाम उसी क्रम में डालें. साथ ही, किसी भी नोड को “:observer” मॉडिफ़ायर के साथ मार्क करें. जिन नोड में :observer मॉडिफ़ायर नहीं होता उन्हें "वोटर" कहा जाता है. आपके कॉन्फ़िगरेशन में "वोटर" की संख्या विषम होनी चाहिए.

    इस टोपोलॉजी में, होस्ट 9 पर मौजूद ZooKeeper होस्ट, ऑब्ज़र्वर है:

    नीचे दी गई कॉन्फ़िगरेशन फ़ाइल के उदाहरण में, नोड 9 को :observer मॉडिफ़ायर के साथ टैग किया गया है, ताकि आपके पास पांच वोटर हों: नोड 1, 2, 3, 7, और 8.

    हर डेटा सेंटर की ZK_CLIENT_HOSTS प्रॉपर्टी के लिए, डेटा सेंटर में मौजूद ZooKeeper नोड के आईपी पते या डीएनएस नाम ही डालें. साथ ही, डेटा सेंटर में मौजूद सभी ZooKeeper नोड के लिए, उसी क्रम में डालें.

  • Cassandra

    सभी डेटा सेंटर में Cassandra नोड की संख्या एक जैसी होनी चाहिए.

    हर डेटा सेंटर के लिए CASS_HOSTS के लिए, पक्का करें कि आपने दोनों डेटा सेंटर के लिए सभी Cassandra आईपी पते (डीएनएस नाम नहीं) डाले हों. डेटा सेंटर 1 के लिए, सबसे पहले उस डेटा सेंटर में मौजूद Cassandra नोड की सूची बनाएं. डेटा सेंटर 2 के लिए, पहले उस डेटा सेंटर में मौजूद Cassandra नोड की सूची बनाएं. डेटा सेंटर में मौजूद सभी Cassandra नोड के लिए, Cassandra नोड को उसी क्रम में लिस्ट करें.

    सभी Cassandra नोड के आखिर में ':d,r' होना चाहिए. उदाहरण के लिए, 'ip:1,1 = डेटा सेंटर 1 और रैक/उपलब्धता ज़ोन 1 और 'ip:2,1 = डेटा सेंटर 2 और रैक/उपलब्धता ज़ोन 1.

    उदाहरण के लिए, "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"

    हर डेटा सेंटर के रैक/उपलब्धता ज़ोन 1 में मौजूद पहले नोड को सीड सर्वर के तौर पर इस्तेमाल किया जाएगा. इस डिप्लॉयमेंट मॉडल में, Cassandra का सेटअप कुछ ऐसा दिखेगा:

  • Postgres

    डिफ़ॉल्ट रूप से, Edge सभी Postgres नोड को मास्टर मोड में इंस्टॉल करता है. हालांकि, जब आपके पास कई डेटा सेंटर होते हैं, तो Postgres नोड को मास्टर-स्टैंडबाय रेप्लिकेशन का इस्तेमाल करने के लिए कॉन्फ़िगर किया जाता है. इससे, मास्टर नोड के काम न करने पर, स्टैंडबाय नोड ट्रैफ़िक को सर्वर करना जारी रख सकता है. आम तौर पर, मास्टर Postgres सर्वर को एक डेटा सेंटर में और स्टैंडबाय सर्वर को दूसरे डेटा सेंटर में कॉन्फ़िगर किया जाता है.

    अगर मौजूदा डेटा सेंटर को पहले से ही मास्टर/स्टैंडबाय मोड में चल रहे दो Postgres नोड के लिए कॉन्फ़िगर किया गया है, तो इस प्रोसेस के तहत, मौजूदा स्टैंडबाय नोड को अनरजिस्टर करें. इसके बाद, उसे नए डेटा सेंटर में स्टैंडबाय नोड से बदलें.

    नीचे दी गई टेबल में, दोनों स्थितियों के लिए Postgres कॉन्फ़िगरेशन को पहले और बाद में दिखाया गया है:

    पहले बाद में

    dc-1 में सिंगल मास्टर Postgres नोड

    dc-1 में मास्टर Postgres नोड

    dc-2 में स्टैंडबाय Postgres नोड

    dc-1 में मास्टर Postgres नोड

    dc-1 में स्टैंडबाय Postgres नोड

    dc-1 में मास्टर Postgres नोड

    dc-2 में स्टैंडबाय Postgres नोड

    dc-1 में पुराने स्टैंडबाय Postgres नोड का रजिस्ट्रेशन रद्द करें

  • पोर्ट से जुड़ी ज़रूरी शर्तें

    आपको यह पक्का करना होगा कि दोनों डेटा सेंटर में मौजूद नोड के बीच ज़रूरी पोर्ट खुले हों. पोर्ट डायग्राम के लिए, पोर्ट से जुड़ी ज़रूरी शर्तें देखें.

मौजूदा डेटा सेंटर को अपडेट करना

डेटा सेंटर जोड़ने के लिए, आपको नए डेटा सेंटर नोड इंस्टॉल और कॉन्फ़िगर करने के लिए, यह तरीका अपनाना होगा. हालांकि, आपको ओरिजनल डेटा सेंटर में नोड अपडेट करने होंगे. ये बदलाव ज़रूरी हैं, क्योंकि नए डेटा सेंटर में नए Cassandra और ZooKeeper नोड जोड़े जा रहे हैं. इन्हें मौजूदा डेटा सेंटर से ऐक्सेस किया जाना चाहिए. साथ ही, आपको रेप्लिकेशन का इस्तेमाल करने के लिए, OpenLDAP को फिर से कॉन्फ़िगर करना होगा.

कॉन्फ़िगरेशन फ़ाइलें बनाना

यहां दो डेटा सेंटर के लिए साइलेंट कॉन्फ़िगरेशन फ़ाइलें दिखाई गई हैं. इनमें हर डेटा सेंटर में छह नोड हैं, जैसा कि इंस्टॉलेशन टोपोलॉजी में दिखाया गया है. ध्यान दें कि dc-1 के लिए कॉन्फ़िगरेशन फ़ाइल में, इनके लिए अतिरिक्त सेटिंग जोड़ी गई हैं:

  • OpenLDAP को दो OpenLDAP नोड के बीच रेप्लिकेशन के साथ कॉन्फ़िगर करें.
  • dc-2 से नए Cassandra और ZooKeeper नोड को 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>"

नया डेटा सेंटर जोड़ना

इस प्रक्रिया में, डेटा सेंटर के नाम इस तरह रखे जाते हैं:

  • dc-1: मौजूदा डेटा सेंटर
  • dc-2: नया डेटा सेंटर

नया डेटा सेंटर जोड़ने के लिए:

  1. dc-1 पर, ओरिजनल Cassandra नोड पर setup.sh को फिर से चलाएं. इसके लिए, dc-1 की नई कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल करें. इसमें dc-2 के Cassandra नोड शामिल होने चाहिए:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
  2. dc-1 पर, मैनेजमेंट सर्वर नोड पर setup.sh को फिर से चलाएं:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
  3. dc-2 पर, सभी नोड पर apigee-setup इंस्टॉल करें. ज़्यादा जानकारी के लिए, Edge apigee-setup यूटिलिटी इंस्टॉल करना लेख पढ़ें.
  4. dc-2 पर, सही नोड पर Cassandra और ZooKeeper इंस्टॉल करें:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
  5. dc-2 पर, सभी Cassandra नोड पर रीबिल्ड कमांड चलाएं. साथ ही, dc-1 के क्षेत्र का नाम बताएं:
    /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP rebuild dc-1
  6. dc-2 पर, सही नोड पर मैनेजमेंट सर्वर इंस्टॉल करें:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
  7. dc-2 में मैनेजमेंट सर्वर नोड पर, apigee-provision इंस्टॉल करें. इससे apigee-adminapi.sh यूटिलिटी इंस्टॉल हो जाती है:
    /opt/apigee/apigee-service/bin/apigee-service apigee-provision install
  8. dc-2 पर, सही नोड पर रूट और मैसेज प्रोसेसर इंस्टॉल करें:
    /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
  9. dc-2 पर, सही नोड पर Qpid इंस्टॉल करें:
    /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
  10. dc-2 पर, सही नोड पर Postgres इंस्टॉल करें:
    /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
  11. Postgres नोड के लिए, Postgres मास्टर/स्टैंडबाय सेट अप करें. dc-1 में Postgres नोड, मास्टर है और dc-2 में Postgres नोड, स्टैंडबाय सर्वर है.
    1. dc-1 में मास्टर नोड पर, कॉन्फ़िगरेशन फ़ाइल में बदलाव करके इन्हें सेट करें:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    2. नए मास्टर पर रेप्लिकेशन चालू करें:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
    3. dc-2 में स्टैंडबाय नोड पर, कॉन्फ़िगरेशन फ़ाइल में बदलाव करके, इन्हें सेट करें:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    4. dc-2 में स्टैंडबाय नोड पर, सर्वर को बंद करें. इसके बाद, Postgres का कोई भी मौजूदा डेटा मिटाएं:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
      rm -rf /opt/apigee/data/apigee-postgresql/
    5. dc-2 में स्टैंडबाय नोड को कॉन्फ़िगर करें:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
  12. dc-1 पर, Analytics कॉन्फ़िगरेशन को अपडेट करें और संगठनों को कॉन्फ़िगर करें.
    1. dc-1 के मैनेजमेंट सर्वर नोड पर, Postgres नोड का यूयूआईडी पाएं:
      apigee-adminapi.sh servers list -r dc-1 -p analytics -t postgres-server \
        --admin adminEmail --pwd adminPword --host localhost

      UUID, दिखाए गए डेटा के आखिर में दिखता है. उस वैल्यू को सेव करें.

    2. dc-2 के मैनेजमेंट सर्वर नोड पर, Postgres नोड का यूयूआईडी पाएं. इसके लिए, पिछले चरण में बताया गया तरीका अपनाएं. उस वैल्यू को सेव करें.
    3. dc-1 के मैनेजमेंट सर्वर नोड पर, Analytics और उपभोक्ता ग्रुप के नाम का पता लगाएं. नीचे दिए गए कई निर्देशों के लिए, यह जानकारी ज़रूरी है.

      डिफ़ॉल्ट रूप से, Analytics ग्रुप का नाम "axgroup-001" और उपभोक्ता ग्रुप का नाम "consumer-group-001" होता है. किसी क्षेत्र के लिए साइलेंट कॉन्फ़िगरेशन फ़ाइल में, AXGROUP प्रॉपर्टी का इस्तेमाल करके, Analytics ग्रुप का नाम सेट किया जा सकता है.

      अगर आपको आंकड़ों और उपभोक्ता ग्रुप के नाम नहीं पता हैं, तो उन्हें देखने के लिए इस निर्देश का इस्तेमाल करें:

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

      यह कमांड, नाम वाले फ़ील्ड में Analytics ग्रुप का नाम और consumer-groups फ़ील्ड में उपभोक्ता ग्रुप का नाम दिखाता है.

    4. dc-1 के मैनेजमेंट सर्वर नोड पर, Analytics ग्रुप से मौजूदा Postgres सर्वर को हटाएं:
      1. Postgres नोड को उपभोक्ता-ग्रुप से हटाएं:
        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 को मास्टर/स्टैंडबाय मोड में दो Postgres नोड चलाने के लिए कॉन्फ़िगर किया गया है, तो दोनों को हटाएं:

        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 नोड को Analytics ग्रुप से हटाएं:
        apigee-adminapi.sh analytics groups postgres_server remove \
          -g axgroup-001 -u UUID -Y --admin adminEmail \
          --pwd adminPword --host localhost

        अगर dc-1 को मास्टर/स्टैंडबाय मोड में चल रहे दो Postgres नोड के लिए कॉन्फ़िगर किया गया है, तो दोनों को हटाएं:

        apigee-adminapi.sh analytics groups postgres_server \
          remove -g axgroup-001 -u UUID1,UUID2 -Y --admin adminEmail \
          --pwd adminPword --host localhost
    5. dc-1 के मैनेजमेंट सर्वर नोड पर, नए मास्टर/स्टैंडबाय Postgres सर्वर को Analytics ग्रुप में जोड़ें:
      1. दोनों Postgres सर्वर को Analytics ग्रुप में जोड़ें:
        apigee-adminapi.sh analytics groups postgres_server \
          add -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail \
          --pwd adminPword --host localhost

        यहां UUID_1, dc-1 में मौजूद मास्टर Postgres नोड से मेल खाता है और UUID_2, dc-2 में मौजूद स्टैंडबाय Postgres नोड से मेल खाता है.

      2. PG सर्वर को उपभोक्ता-ग्रुप में मास्टर/स्टैंडबाय के तौर पर जोड़ें:
        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 से Qpid सर्वर को Analytics ग्रुप में जोड़ें:
      1. dc-1 के मैनेजमेंट सर्वर नोड पर, dc-2 में Qpid नोड के यूयूआईडी पाएं:
        apigee-adminapi.sh servers list -r dc-2 -p central -t qpid-server \
          --admin adminEmail --pwd adminPword --host localhost

        UUID, दिखाए गए डेटा के आखिर में दिखते हैं. उन वैल्यू को सेव करें.

      2. dc-1 के मैनेजमेंट सर्वर नोड पर, Qpid नोड को Analytics ग्रुप में जोड़ें (दोनों कमांड चलाएं):
        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 के मैनेजमेंट सर्वर नोड पर, Qpid नोड को उपभोक्ता ग्रुप में जोड़ें (दोनों कमांड चलाएं):
        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. dc-1 से पुराने Postgres स्टैंडबाय सर्वर का रजिस्ट्रेशन रद्द करें और उसे मिटाएं:
      1. मौजूदा dc-1 Postgres स्टैंडबाय सर्वर को अनरजिस्टर करें:
        apigee-adminapi.sh servers deregister -u UUID -r dc-1 \
          -p analytics -t postgres-server -Y --admin adminEmail \
          --pwd adminPword --host localhost

        यहां यूयूआईडी, dc-1 में मौजूद पुराना स्टैंडबाय Postgres नोड है.

      2. मौजूदा dc-1 Postgres स्टैंडबाय सर्वर को मिटाएं:
        apigee-adminapi.sh servers delete -u UUID \
          --admin adminEmail --pwd adminPword --host localhost
  13. दोनों डेटा सेंटर के लिए, Cassandra कीस्पेस को सही रेप्लिकेशन फ़ैक्टर के साथ अपडेट करें. आपको किसी भी डेटा सेंटर में मौजूद Cassandra सर्वर पर, यह चरण सिर्फ़ एक बार चलाना होगा:
    1. Cassandra cqlsh यूटिलिटी शुरू करें:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Cassandra कीस्पेस के लिए, रेप्लिकेशन लेवल सेट करने के लिए, "cqlsh>" प्रॉम्प्ट पर ये CQL कमांड चलाएं:
      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. इस निर्देश का इस्तेमाल करके कीस्पेस देखें:
        select * from system.schema_keyspaces;
      4. cqlsh से बाहर निकलें:
        exit
  14. मेमोरी खाली करने के लिए, dc-1 में मौजूद सभी Cassandra नोड पर, यहां दिया गया nodetool कमांड चलाएं:
    /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP cleanup
  15. हर संगठन और हर एनवायरमेंट के लिए, जिसे आपको डेटा सेंटर में इस्तेमाल करना है:
    1. dc-1 के मैनेजमेंट सर्वर नोड पर, नए MP_POD को संगठन में जोड़ें:
      apigee-adminapi.sh orgs pods add -o orgName -r dc-2 -p gateway-2 \
        --admin adminEmail --pwd adminPword --host localhost

      यहां gateway-2, गेटवे पॉड का नाम है. इसे dc-2 कॉन्फ़िगरेशन फ़ाइल में, MP_POD प्रॉपर्टी के हिसाब से तय किया गया है.

    2. संगठन और एनवायरमेंट में नए मैसेज प्रोसेसर जोड़ें:
      1. dc-2 के मैनेजमेंट सर्वर नोड पर, dc-2 में मैसेज प्रोसेसर नोड के यूयूआईडी पाएं:
        apigee-adminapi.sh servers list -r dc-2 -p gateway-2 \
          -t message-processor --admin adminEmail --pwd adminPword --host localhost

        UUID, दिखाए गए डेटा के आखिर में दिखते हैं. उन वैल्यू को सेव करें.

      2. dc-1 के मैनेजमेंट सर्वर नोड पर, dc-2 के हर मैसेज प्रोसेसर के लिए, मैसेज प्रोसेसर को संगठन के एनवायरमेंट में जोड़ें:
        apigee-adminapi.sh orgs envs servers add -o orgName -e envName \
          -u UUID --admin adminEmail --pwd adminPword --host localhost
    3. dc-1 के मैनेजमेंट सर्वर नोड पर, संगठन की जांच करें:
      apigee-adminapi.sh orgs apis deployments -o orgName -a apiProxyName \
        --admin adminEmail --pwd adminPword --host localhost

      जहां apiProxyName, संगठन में डिप्लॉय किए गए एपीआई प्रॉक्सी का नाम है.