एपीआई बास के लिए एक से ज़्यादा डेटा सेंटर लगाना

Edge for Private Cloud v4.18.01

किसी चालू/चालू डेटा का इस्तेमाल करके, कई डेटा सेंटर पर API BaaS इंस्टॉल किया जा सकता है कॉन्फ़िगरेशन. इस दस्तावेज़ में, किसी मौजूदा BaaS डेटा सेंटर में BaaS डेटा सेंटर जोड़ने का तरीका बताया गया है.

Cassandra क्लस्टर को Edge के साथ शेयर करने पर, डेटा सेंटर जोड़ना

सभी डेटा सेंटर में Cassandra नोड की संख्या एक जैसी होनी चाहिए. एपीआई BaaS इंस्टॉलेशन, अपने Cassandra क्लस्टर का इस्तेमाल कर सकता है या Edge के साथ Cassandra क्लस्टर शेयर कर सकता है.

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

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

नया BaaS डेटा सेंटर (डेटा सेंटर 2) जोड़ने के लिए, आपको नए डेटा सेंटर को इंस्टॉल करने और कॉन्फ़िगर करने का तरीका अपनाना होगा. साथ ही, आपको ओरिजनल BaaS डेटा सेंटर (डेटा सेंटर 1) को भी अपडेट करना होगा. ये बदलाव ज़रूरी हैं, क्योंकि:

  • नए डेटा सेंटर में नए Cassandra नोड जोड़े जा रहे हैं, जिन्हें मौजूदा डेटा सेंटर से ऐक्सेस किया जा सकता है.
  • आपको डेटा में BaaS स्टैक नोड की ओर से इस्तेमाल की जाने वाली प्रतिकृति जानकारी कॉन्फ़िगर करनी होगी डेटा सेंटर 2 की जानकारी शामिल करने के लिए, सेंटर 1 में. जब तक दूसरा डेटा सेंटर इंस्टॉल नहीं हो जाता, तब तक यह कॉन्फ़िगरेशन नहीं किया जा सकता.

डेटा सेंटर 1 पर ये अपडेट करने के लिए, आपको उस मूल कॉन्फ़िगरेशन फ़ाइल को अपडेट करना होगा जिसका इस्तेमाल करके किया गया था डेटा सेंटर 1 को इंस्टॉल करें और फिर डेटा के कसांड्रा नोड पर apigee-setup को फिर से चलाएं केंद्र 1. अगर डेटा सेंटर 1 के लिए Cassandra क्लस्टर को Edge इंस्टॉलेशन के साथ शेयर किया गया है, तो आपको मैनेजमेंट सर्वर को भी अपडेट करना होगा.

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

डेटा सेंटर 1 को इंस्टॉल करने के लिए, API BaaS इंस्टॉलेशन पर दिखाए गए कॉन्फ़िगरेशन का इस्तेमाल करें. डेटा सेंटर 1 को इंस्टॉल करते समय, कॉन्फ़िगरेशन फ़ाइल में, डेटा सेंटर 2 के बारे में कोई जानकारी शामिल करने की ज़रूरत नहीं होती. डेटा सेंटर 2 को इंस्टॉल करने के बाद, कॉन्फ़िगरेशन फ़ाइल में जानकारी जोड़ी जाती है.

यहां डेटा सेंटर 2 की कॉन्फ़िगरेशन फ़ाइलें दिखाई गई हैं. इस कॉन्फ़िगरेशन फ़ाइल में यह माना गया है कि आपने इंस्टॉलेशन टोपोलॉजी में बताए गए तरीके के मुताबिक, 10 नोड पर dc-2 इंस्टॉल किया है. इस फ़ाइल में ज़रूरत के मुताबिक बदलाव करें, अगर 7 नोड पर इंस्टॉल कर रहे हैं.

ध्यान दें कि डेटा सेंटर 2 (dc-2) की कॉन्फ़िगरेशन फ़ाइल में, डेटा सेंटर 1 (dc-1) के बारे में जानकारी शामिल है:

# Specify IP address or DNS name of node for dc-2.
IP1=192.168.1.1   # ElasticSearch
IP2=192.168.1.2   # ElasticSearch
IP3=192.168.1.3   # ElasticSearch
IP4=192.168.1.4   # API BaaS Stack
IP5=192.168.1.5   # API BaaS Stack
IP6=192.168.1.6   # API BaaS Stack
IP7=192.168.1.7   # API BaaS Portal
IP8=192.168.1.8   # Cassandra dc-2 (shared with Edge or standalone)
IP9=192.168.1.9   # Cassandra dc-2 (shared with Edge or standalone)
IP10=192.168.1.10  # Cassandra dc-2 (shared with Edge or standalone)

# Specify node information for dc-1
IP11=192.168.1.11   # Cassandra dc-1 (shared with Edge or standalone)
IP12=192.168.1.12   # Cassandra dc-1 (shared with Edge or standalone)
IP13=192.168.1.13   # Cassandra dc-1 (shared with Edge or standalone)
IP14=192.168.1.14   # API BaaS Stack
IP15=192.168.1.15   # API BaaS Stack

# Must resolve to IP address or DNS name of host - not to 127.0.0.1 or localhost.
HOSTIP=$(hostname -i)

# Define the API BaaS administrator account.  
AS_ADMIN="superuser"    # User name - default is "superuser".
AS_ADMIN_EMAIL=stackAdmin@email.com
AS_PASSWD=stackAdminPWord

# Specify Cassandra data center and rack suffix.
# List dc-2 nodes first, then dc-1.
# Must use IP addresses for CASS_HOSTS, not DNS names.
# CASS_HOSTS="$IP8:2,1 $IP9:2,1 $IP10:2,1 $IP11:1,1 $IP12:1,1 $IP13:1,1"

# Specify the Cassandra region.
REGION=dc-2

# Cassandra uname/pword.
# Even if Cassandra authentication is disabled,
# you must still pass values for these properties.
CASS_USERNAME=cassandra    # Default value
CASS_PASSWORD=cassandra    # Default value

# Specify BaaS Cassandra connection information.
# Specify the data center name as dc-2.
BAAS_CASS_LOCALDC=dc-2    

# Specify both data centers.
BAAS_CASS_DC_LIST=dc-1,dc-2

# Replication is in the form "dataCenterName:#CassandraNodes". 
# Specify both data centers.
BAAS_CASS_REPLICATION=dc-1:3,dc-2:3

# Defines the initial contact points for members of the BaaS cluster. 
# Specify the IP address of no more than two Stack nodes per data center.
# Specify both data centers. 
BAAS_CLUSTER_SEEDS="dc-1:$IP14,dc-1:$IP15,dc-2:$IP4,dc-2:$IP5"

# ElasticSearch IPs or DNS names, separated by spaces, for dc-2.
ES_HOSTS="$IP1 $IP2 $IP3"

# API BaaS Stack information.
# Default cluster name is "apigee_baas"
BAAS_USERGRID_CLUSTERNAME="apigee_baas" 

# URL and port of the load balancer for the API BaaS Stack nodes, 
# or IP/DNS and port 8080 of a single Stack node with no load balancer.
BAAS_USERGRID_URL=http://myloadbalancer:8443

# API BaaS Portal information.
# URL and port number of load balancer, if there is one in front of the Portal,
# or the URL and port of the Portal node.  
BAAS_PORTAL_URL="http://$IP7:9000"

# Portal port. Default value is 9000.
BAAS_PORTAL_LISTEN_PORT=9000 

# SMTP information. BaaS requires an SMTP server.
SMTPHOST=smtp.gmail.com
SMTPPORT=465
SMTPUSER=your@email.com
SMTPPASSWORD=yourEmailPassword
SMTPSSL=y
SMTPMAILFROM="My Company <myco@company.com>"

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

  1. API BaaS इंस्टॉलेशन के मुताबिक पहला डेटा सेंटर इंस्टॉल करें. उस दस्तावेज़ में, कॉन्फ़िगरेशन फ़ाइल शामिल होती है. इसका इस्तेमाल, डेटा सेंटर 1 को इंस्टॉल करने के लिए किया जाता है.
  2. ऊपर बताए गए तरीके से, dc-2 के लिए कॉन्फ़िगरेशन फ़ाइल बनाएं.
  3. Cassandra को या तो मौजूदा Edge इंस्टॉलेशन के हिस्से के रूप में या स्टैंडअलोन के रूप में इंस्टॉल करें BaaS के लिए क्लस्टर:
    1. इंटरनेट या बिना इंटरनेट के, dc-2 के पहले Cassandra नोड, मशीन 8 पर Edge apigee-setup यूटिलिटी इंस्टॉल करें. ज़्यादा जानकारी के लिए, Edge apigee-setup utility इंस्टॉल करें लेख पढ़ें.
    2. पहले नोड पर Cassandra इंस्टॉल करने के लिए, कमांड प्रॉम्प्ट पर सेटअप स्क्रिप्ट चलाएं:
      > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

      “-p c” विकल्प से Cassandra इंस्टॉल करने के बारे में पता चलता है.
      अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
      अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है कॉन्फ़िगरेशन फ़ाइल ऐसी होनी चाहिए जिसे "apigee" ऐक्सेस कर सके या पढ़ सके उपयोगकर्ता.
    3. बचे हुए कैसंड्रा नोड, मशीन 9 और 10 के लिए, तीसरे और चौथे चरण को दोहराएं dc-2.
  4. dc-1 के कैसंड्रा नोड पर, कॉन्फ़िगरेशन फ़ाइल में बदलाव करके कैसंड्रा नोड जोड़ें डेटा सेंटर 2, इस आधार पर तय किया गया है कि आपने कैसेंड्रा को इंस्टॉल किया है:

    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है # पहले dc-1 नोड की सूची बनाएं, फिर dc-2 की सूची बनाएं,
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है # में कैसंड्रा डेटा सेंटर और रैक सफ़िक्स शामिल है
    CASS_HostS="$IP11:1,1 $IP12:1,1 $IP13:1,1 $IP8:2,1 $IP9:2,1 $IP10:2,1"
  5. dc-1 के पहले केसंड्रा नोड पर, नई dc-1 कॉन्फ़िगरेशन फ़ाइल के साथ setup.sh चलाएं dc-2 के कैसंड्रा नोड शामिल हैं:
    &gt; /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
  6. dc-1 में बचे हुए Cassandra नोड के लिए, छठा और सातवां चरण दोहराएं.
  7. अगर आपको Edge के साथ शेयर किए गए dc-1 के लिए Cassandra क्लस्टर से कनेक्ट करना है, तो dc-1 के मैनेजमेंट सर्वर नोड की कॉन्फ़िगरेशन फ़ाइल में dc-2 Cassandra नोड जोड़ें और setup.sh चलाएं:
    > /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile
  8. दो डेटा सेंटर के लिए, Cassandra की की-स्पेस को सही रिप्लिकेशन फ़ैक्टर के साथ अपडेट करें. आपने लोगों तक पहुंचाया मुफ़्त में दोनों में से किसी भी डेटा सेंटर में, किसी भी कैसंड्रा सर्वर पर इस चरण को सिर्फ़ एक बार चलाना होगा:

    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है ध्यान दें: नीचे दिए गए सभी निर्देश, रेप्लिकेशन फ़ैक्टर को "3" पर सेट करते हैं. इससे यह पता चलता है कि क्लस्टर में तीन कैसेंड्रा नोड हैं. अपने इंस्टॉलेशन के लिए, इस वैल्यू में ज़रूरत के मुताबिक बदलाव करें.
    1. Cassandra cqlsh टूल शुरू करें:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Cassandra की की-स्पेस के लिए, डुप्लीकेट कॉपी बनाने के लेवल सेट करने के लिए, "cqlsh>" प्रॉम्प्ट पर ये CQL निर्देश चलाएं:
      1. cqlsh&gt; ALTER KEYSPACE "Apigee_Baas_dc_1" WITH रेप्लिकेशन = { 'क्लास': 'NetworkTopPolicyStrategy', 'dc-1': '3','dc-2': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. cqlsh&gt; ALTER KEYSPACE "Apigee_Baas_Locks" WITH रेप्लिकेशन = { 'क्लास': 'Network टॉपोलॉजी स्ट्रैटेजी', 'dc-1': '3','dc-2': '3' };
      4. cqlsh&gt; अन्य मुख्य स्पेस "system_traces" WITH रेप्लिकेशन = { 'class': 'NetworkTopोलॉजीStrategy', 'dc-1': '3','dc-2': '3' };
      5. cqlsh> ALTER KEYSPACE "system_auth" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      6. आदेश का उपयोग करके कीस्पेस देखें:
        cqlsh&gt; इनमें से * चुनें system.schema_keyspaces;
      7. cqlsh से बाहर निकलें:
        cqlsh> exit
  9. dc-2 में मौजूद सभी Cassandra नोड पर, रीबिल्ड कमांड चलाएं. साथ ही, dc-1 के क्षेत्र का नाम बताएं:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP रीबिल्ड dc-1
  10. "नोडेटूल स्थिति" चलाएं और पुष्टि करें कि सभी कैसंड्रा नोड में 'मालिकाना हक' वैल्यू के लिए '100%':
    &gt; /opt/apigee/apigee-cassandra/bin/nodetool स्थिति
  11. dc-2 में BaaS इंस्टॉल करें:
    1. dc-2 में सिर्फ़ Cassandra नोड की सूची बनाने के लिए, कॉन्फ़िगरेशन फ़ाइल में बदलाव करें:
      # dc-2 Cassandra नोड की सूची बनाएं,
      # Cassandra डेटा सेंटर और रैक सफ़िक्स को हटाना
      CASS_HOSTS="$IP8 $IP9 $IP10"
    2. dc-2 के नोड 4, 5, और 6 पर ElasticSearch इंस्टॉल करें:
      &gt; /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
    3. dc-2 के नोड 4, 5, और 6 पर BaaS स्टैक इंस्टॉल करें:
      > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile
    4. मशीन 7 पर BaaS पोर्टल को इंस्टॉल करें:
      &gt; /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
  12. डेटा सेंटर 1 में BaaS स्टैक नोड अपडेट करें:
    1. डेटा सेंटर 1 में पहले BaaS स्टैक नोड पर, किसी एडिटर में /opt/apigee/customer/application/usergrid.properties में बदलाव करें. अगर फ़ाइल मौजूद नहीं है, तो उसे बनाएं.
    2. usergrid.properties में ये प्रॉपर्टी जोड़ें:
      # dc-2 कॉन्फ़िगरेशन फ़ाइल में, BAAS_CLUSTER_SEEDS की वैल्यू एक जैसी है,
      # डबल कोट के बिना.
      अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है usergrid-deployment_usergrid.cluster.seeds=dc-1:dc1StackIP1,dc-1:dc1StackIP2,dc-2:dc2StackIP1,dc-2:dc2StackIP2

      अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है # वही वैल्यू जो dc-2 कॉन्फ़िगरेशन फ़ाइल में BAAS_CASS_DC_LIST में है.
      अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है usergrid-deployment_usergrid.cluster.region.list=dc-1,dc-2
    3. बचे हुए BaaS स्टैक नोड पर, a और b के चरण दोहराएं.
    4. सभी BaaS स्टैक नोड को रीस्टार्ट करें.
      अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
      अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है ध्यान दें: BaaS स्टैक नोड को रीस्टार्ट करते समय, उन्हें उसी मोड में फिर से चालू करें उसी क्रम में उन्हें BAAS_CLUSTER_SEEDS सूची में डाला गया हो. BAAS_CLUSTER_SEEDS सूचियां: दो स्टैक नोड में से ज़्यादातर पर दिए जाते हैं. उन दो नोड को क्रम से रीस्टार्ट करने के बाद, बाकी नोड को किसी भी क्रम में रीस्टार्ट किया जा सकता है.
      अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
      अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है &gt; /opt/apigee/apigee-service/bin/apigee-service baas-usergrid रीस्टार्ट
  13. BaaS कीस्पेस वैल्यू को अपडेट करें. इन कीस्पेस को इंस्टॉल के समय, डुप्लीकेट कॉपी बनाने के लिए सेट करना होगा, लेकिन रन टाइम के दौरान ऐसा करना ज़रूरी नहीं है. कॉपी करने की सुविधा हटाने से, Cassandra की मेमोरी भी बचती है.

    ?आपको यह चरण, दोनों डेटा सेंटर में मौजूद किसी भी Cassandra सर्वर पर सिर्फ़ एक बार चलाना होगा:
    1. Cassandra cqlsh टूल शुरू करें:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. कैसंड्रा के रेप्लिकेशन लेवल को सेट करने के लिए, नीचे दिए गए CQL कमांड चलाएं कीस्पेस:
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_2" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-2': '3' };
      3. इस कमांड का इस्तेमाल करके की-स्पेस देखें:
        cqlsh> select * from system.schema_keyspaces;
      4. cqlsh से बाहर निकलें:
        cqlsh> exit

दूसरे डेटा सेंटर का इंस्टॉलेशन अब पूरा हो गया है.

दोनों डेटा सेंटर के इंस्टॉलेशन और कॉन्फ़िगरेशन पूरा करने के बाद, नीचे दी गई प्रक्रिया का इस्तेमाल करके इंस्टॉलेशन की पुष्टि करें:

  1. सभी BaaS स्टैक नोड पर, स्टेटस देखें:
    > curl 0:8080/status
  2. देखें कि टोकन एपीआई कॉल काम कर रहा है या नहीं:
    > curl -X POST "http://localhost:8080/management/token" -d '{"grant_type":"password", "username":"adminEmail","password":"pWord"}'
  3. dc-2 के लिए, BaaS पोर्टल में लॉग इन करके देखें. पुष्टि करें कि सभी डेटा dc-2 में कॉपी किया गया है, जैसे कि dc-1 पर बनाए गए कलेक्शन.