डेटा सेंटर बंद करना

कभी-कभी, आपको किसी डेटा सेंटर को बंद करना पड़ सकता है. उदाहरण के लिए, अगर आपको अपना ऑपरेटिंग सिस्टम अपग्रेड करना है, तो आपको नए ऑपरेटिंग सिस्टम को नए डेटा सेंटर में इंस्टॉल करना होगा. इसके बाद, पुराने डेटा सेंटर को बंद करना होगा. यहां दिए गए सेक्शन में, डेटा सेंटर को बंद करने का उदाहरण दिया गया है. इसमें 12-नोड वाले क्लस्टर इंस्टॉलेशन पर दो डेटा सेंटर, dc-1 और dc-2 मौजूद हैं:

  • dc-1 वह डेटा सेंटर है जिसे बंद किया जाना है.
  • dc-2 दूसरा डेटा सेंटर है. इसका इस्तेमाल, डीकमिशन करने की प्रोसेस में किया जाता है.

अगर ऑपरेटिंग सिस्टम को अपग्रेड किया जा रहा है, तो dc-2 वह डेटा सेंटर हो सकता है जिसमें आपने ऑपरेटिंग सिस्टम (ओएस) का नया वर्शन इंस्टॉल किया है. हालांकि, डेटा सेंटर को बंद करने के लिए, नया ओएस इंस्टॉल करना ज़रूरी नहीं है.

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

किसी डेटा सेंटर को बंद करते समय, इन बातों का ध्यान रखें:

  • जिस डेटा सेंटर को बंद किया जा रहा है उसके लिए, सभी रनटाइम और मैनेजमेंट ट्रैफ़िक को ब्लॉक करें. साथ ही, उन्हें अन्य डेटा सेंटर पर रीडायरेक्ट करें.
  • डेटा सेंटर को बंद करने के बाद, आपके Apigee क्लस्टर की क्षमता कम हो जाएगी. इसकी भरपाई करने के लिए, बाकी डेटा सेंटर की क्षमता बढ़ाएं या डेटा सेंटर को बंद करने के बाद, नए डेटा सेंटर जोड़ें.
  • डेटा सेंटर को बंद करने की प्रोसेस के दौरान, Analytics का डेटा मिट सकता है. यह इस बात पर निर्भर करता है कि बंद किए जा रहे डेटा सेंटर में Analytics के कौनसे कॉम्पोनेंट इंस्टॉल हैं. ज़्यादा जानकारी के लिए, Qpid नोड जोड़ना या हटाना लेख पढ़ें.
  • किसी डेटा सेंटर को बंद करने से पहले, आपको यह समझना चाहिए कि सभी डेटा सेंटर में सभी कॉम्पोनेंट कैसे कॉन्फ़िगर किए गए हैं. खास तौर पर, OpenLDAP, ZooKeeper, Cassandra, और Postgres सर्वर. आपको सभी कॉम्पोनेंट और उनके कॉन्फ़िगरेशन का बैकअप भी लेना चाहिए.

शुरू करने से पहले

  • मैनेजमेंट सर्वर: डिकमिशन करने के सभी चरण, मैनेजमेंट सर्वर पर काफ़ी निर्भर करते हैं. अगर आपके पास सिर्फ़ एक मैनेजमेंट सर्वर उपलब्ध है, तो हमारा सुझाव है कि आप dc-1 पर मैनेजमेंट सर्वर को बंद करने से पहले, dc-1 के अलावा किसी अन्य डेटा सेंटर पर नया मैनेजमेंट सर्वर कॉम्पोनेंट इंस्टॉल करें. साथ ही, यह पक्का करें कि मैनेजमेंट सर्वर में से कोई एक हमेशा उपलब्ध हो.
  • राऊटर: राऊटर को बंद करने से पहले, पोर्ट 15999 को ब्लॉक करके, राऊटर की रीचेबिलिटी को बंद करें. पक्का करें कि जिन राऊटर को बंद किया जा रहा है उन पर कोई रनटाइम ट्रैफ़िक न भेजा जा रहा हो.
  • Cassandra और ZooKeeper: यहां दिए गए सेक्शन में, दो डेटा सेंटर सेटअप में dc-1 को बंद करने का तरीका बताया गया है. अगर आपके पास दो से ज़्यादा डेटा सेंटर हैं, तो पक्का करें कि आपने बंद किए जा रहे नोड (इस मामले में dc-1) के सभी रेफ़रंस हटा दिए हों. ये रेफ़रंस, बाकी सभी डेटा सेंटर की सभी साइलेंट कॉन्फ़िगरेशन फ़ाइलों से हटाने होंगे. जिन Cassandra नोड को बंद करना है उनके होस्ट को CASS_HOSTS से हटा दें. बाकी Cassandra नोड, CASS_HOSTS के ओरिजनल क्रम में ही रहने चाहिए.

  • Postgres: अगर Postgres मास्टर को बंद किया जाता है, तो उपलब्ध स्टैंडबाय नोड में से किसी एक को नए Postgres मास्टर के तौर पर प्रमोट करना न भूलें. QPID सर्वर, सूची में बफ़र रखता है. हालांकि, अगर Postgres मास्टर लंबे समय तक उपलब्ध नहीं रहता है, तो Analytics का डेटा मिट सकता है.

ज़रूरी शर्तें

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

    ध्यान दें: अगर आपके पास एक से ज़्यादा Cassandra या ZooKeeper नोड हैं, तो उनका बैकअप एक-एक करके लें. ऐसा इसलिए, क्योंकि बैकअप लेने की प्रोसेस के दौरान ZooKeeper कुछ समय के लिए बंद हो जाता है.

  • इस निर्देश का इस्तेमाल करके, Edge को बंद करने से पहले पक्का करें कि वह चालू हो और काम कर रहा हो:
    /opt/apigee/apigee-service/bin/apigee-all status
  • पक्का करें कि जिस डेटा सेंटर को बंद किया जा रहा है उसमें फ़िलहाल कोई रनटाइम ट्रैफ़िक न आ रहा हो.

कॉम्पोनेंट को बंद करने का क्रम

अगर आपने Edge for Private Cloud को कई नोड पर इंस्टॉल किया है, तो आपको उन नोड पर Edge के कॉम्पोनेंट को इस क्रम में बंद करना चाहिए:

  1. Edge यूज़र इंटरफ़ेस (यूआई) (edge-ui)
  2. मैनेजमेंट सर्वर (edge-management-server)
  3. OpenLDAP (apigee-openldap)
  4. राऊटर (एज-राऊटर)
  5. मैसेज प्रोसेसर (edge-message-processor)
  6. Qpid Server और Qpidd (edge-qpid-server और apigee-qpidd)
  7. Postgres और PostgreSQL डेटाबेस (edge-postgres-server और apigee-postgresql)
  8. ZooKeeper (apigee-zookeeper)
  9. Cassandra (apigee-cassandra)

यहां दिए गए सेक्शन में, हर कॉम्पोनेंट को बंद करने का तरीका बताया गया है.

Edge का यूज़र इंटरफ़ेस (यूआई)

dc-1 के Edge यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट को रोकने और अनइंस्टॉल करने के लिए, ये कमांड डालें:

/opt/apigee/apigee-service/bin/apigee-service edge-ui stop
/opt/apigee/apigee-service/bin/apigee-service edge-ui uninstall

मैनेजमेंट सर्वर

dc-1 पर मैनेजमेंट सर्वर को बंद करने के लिए, यह तरीका अपनाएं:

  1. dc-1 पर मैनेजमेंट सर्वर को बंद करें:
    apigee-service edge-management-server stop
  2. dc-1 में रजिस्टर किए गए मैनेजमेंट सर्वर का यूयूआईडी ढूंढें:
    curl -u <AdminEmailID>:'<AdminPassword>' \
    -X GET “http://{MS_IP}:8080/v1/servers?pod=central&region=dc-1&type=management-server”
  3. रजिस्ट्रेशन रद्द करने वाले सर्वर का टाइप:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \
    -d "type=management-server&region=dc-1&pod=central&uuid=UUID&action=remove"
  4. सर्वर को मिटाना. ध्यान दें: अगर इस सर्वर पर अन्य कॉम्पोनेंट भी इंस्टॉल हैं, तो यूयूआईडी मिटाने से पहले उन सभी का रजिस्ट्रेशन रद्द करें.
    curl -u <AdminEmailID>:'<AdminPassword> -X DELETE http://{MS_IP}:8080/v1/servers/{UUID}
  5. dc-1 पर मैनेजमेंट सर्वर कॉम्पोनेंट को अनइंस्टॉल करें:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server uninstall

Open LDAP

इस सेक्शन में, dc-1 पर OpenLDAP को बंद करने का तरीका बताया गया है.

ध्यान दें: अगर आपके पास दो से ज़्यादा डेटा सेंटर हैं, तो नीचे दिया गया दो से ज़्यादा डेटा सेंटर वाले सेटअप सेक्शन देखें.

dc-1 पर OpenLDAP को बंद करने के लिए, यह तरीका अपनाएं:

  1. बैक अप लेने का तरीका में दिया गया तरीका अपनाकर, dc-1 OpenLDAP नोड का बैक अप लें.
  2. दोनों डेटा सेंटर में यहां दिया गया तरीका अपनाकर, dc-1 और dc-2 डेटा सेंटर के बीच डेटा की कॉपी बनाने की प्रोसेस को रोकें.

    1. मौजूदा स्थिति देखें:
      ldapsearch -H ldap://{HOST}:{PORT} -LLL -x -b "cn=config" -D "cn=admin,cn=config" -w {credentials} -o ldif-wrap=no 'olcSyncRepl' | grep olcSyncrepl

      आउटपुट कुछ ऐसा होना चाहिए:

      olcSyncrepl: {0}rid=001 provider=ldap://{HOST}:{PORT}/ binddn="cn=manager,dc=apigee,dc=com" bindmethod=simple credentials={credentials} searchbase="dc=apigee,dc=com" attrs="*,+" type=refreshAndPersist retry="60 1 300 12 7200 +" timeout=1
    2. break_repl.ldif नाम की एक फ़ाइल बनाएं, जिसमें ये कमांड शामिल हों:
      dn: olcDatabase={2}bdb,cn=config
      changetype: modify
      delete: olcSyncRepl
      
      dn: olcDatabase={2}bdb,cn=config
      changetype: modify
      delete: olcMirrorMode
    3. ldapmodify कमांड चलाएं:
      ldapmodify -x -w {credentials} -D "cn=admin,cn=config" -H "ldap://{HOST}:{PORT}/" -f path/to/file/break_repl.ldif

      आउटपुट कुछ ऐसा होना चाहिए:

      modifying entry "olcDatabase={2}bdb,cn=config"
      modifying entry "olcDatabase={2}bdb,cn=config"
  3. यह पुष्टि की जा सकती है कि dc-2 अब dc-1 में रेप्लिकेट नहीं हो रहा है. इसके लिए, dc-2 LDAP में एक एंट्री बनाएं और पक्का करें कि वह dc-1 के LDAP में न दिखे.

    इसके अलावा, dc-2 OpenLDAP नोड में रीड-ओनली यूज़र बनाने के लिए, यहां दिया गया तरीका अपनाया जा सकता है. इसके बाद, यह देखें कि उपयोगकर्ता को रेप्लिकेट किया गया है या नहीं. इसके बाद, उपयोगकर्ता को मिटा दिया जाता है.

    1. dc-2 में readonly-user.ldif फ़ाइल बनाएं. इसमें यह कॉन्टेंट शामिल करें:
      dn: uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com
      objectClass: organizationalPerson
      objectClass: person
      objectClass: inetOrgPerson
      objectClass: top
      cn: readonly-user
      sn: readonly-user
      userPassword: {testPassword}
    2. dc-2 में `ldapadd` कमांड का इस्तेमाल करके उपयोगकर्ता जोड़ें:
      ldapadd -H ldap://{HOST}:{PORT} -w {credentials} -D "cn=manager,dc=apigee,dc=com" -f path/to/file/readonly-user.ldif

      आउटपुट कुछ ऐसा दिखेगा:

      adding new entry "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"
    3. dc-1 में उपयोगकर्ता को खोजें, ताकि यह पक्का किया जा सके कि उपयोगकर्ता की डुप्लीकेट प्रोफ़ाइल न बनी हो. अगर उपयोगकर्ता dc-1 में मौजूद नहीं है, तो आपको पक्का पता चल जाएगा कि दोनों एलडीएपी अब रेप्लिकेट नहीं हो रहे हैं:
      ldapsearch -H ldap://{HOST}:{PORT} -x -w {credentials} -D "cn=manager,dc=apigee,dc=com" -b uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com -LLL

      आउटपुट कुछ ऐसा होना चाहिए:

      No such object (32)
      Matched DN: ou=users,ou=global,dc=apigee,dc=com
    4. रीड-ओनली यूज़र को हटाएं, जिसे आपने पहले जोड़ा था:
      ldapdelete -v -H ldap://{HOST}:{PORT} -w {credentials} -D "cn=manager,dc=apigee,dc=com" "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"
  4. dc-1 में OpenLDAP को बंद करें:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
  5. dc-1 पर OpenLDAP कॉम्पोनेंट को अनइंस्टॉल करें:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap uninstall

राऊटर

इस सेक्शन में, किसी राऊटर को बंद करने का तरीका बताया गया है. राऊटर को हटाने के बारे में ज़्यादा जानकारी के लिए, सर्वर को हटाना लेख पढ़ें.

यहां दिए गए चरणों को पूरा करने पर, dc-1 से राऊटर को हटा दिया जाएगा. अगर dc-1 में एक से ज़्यादा राऊटर नोड कॉन्फ़िगर किए गए हैं, तो सभी राऊटर नोड में एक-एक करके यह तरीका अपनाएं

ध्यान दें: यहां यह माना गया है कि आपके लोड बैलेंसर में, राऊटर का हेल्थ-चेक पोर्ट 15999 कॉन्फ़िगर किया गया है. साथ ही, पोर्ट 15999 को ब्लॉक करने से राऊटर को ऐक्सेस नहीं किया जा सकेगा. पोर्ट को ब्लॉक करने के लिए, आपको रूट ऐक्सेस की ज़रूरत पड़ सकती है.

किसी राऊटर को बंद करने के लिए, यह तरीका अपनाएं:

  1. हेल्थ चेक पोर्ट 15999 को ब्लॉक करके, राऊटर की रीच को बंद करें. पक्का करें कि इस डेटा सेंटर पर रनटाइम ट्रैफ़िक ब्लॉक हो:

    iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
  2. पुष्टि करें कि राऊटर को ऐक्सेस किया जा सकता है:

    curl -vvv -X GET http://{ROUTER_IP}:15999/v1/servers/self/reachable

    आउटपुट कुछ ऐसा होना चाहिए:

    About to connect() to 10.126.0.160 port 15999 (#0)
    Trying 10.126.0.160...
    Connection refused
    Failed connect to 10.126.0.160:15999; Connection refused
    Closing connection 0
    curl: (7) Failed connect to 10.126.0.160:15999; Connection refused
  3. राऊटर का यूयूआईडी पाएं. इसके लिए, यूयूआईडी पाएं में बताया गया तरीका अपनाएं.
  4. राऊटर को बंद करें:
    /opt/apigee/apigee-service/bin/apigee-service edge-router stop
  5. इस कमांड का इस्तेमाल करके, संगठन में उपलब्ध गेटवे पॉड की सूची देखें:
    curl -u  <AdminEmailID>:<AdminPassword> -X GET "http://{MS_IP}:8080/v1/organizations/{ORG}/pods"

    पॉड के बारे में जानकारी देखें.

  6. सर्वर के टाइप का रजिस्ट्रेशन रद्द करना:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \
    -d "type=router&amp;region=dc-1&amp;pod=gateway-1&amp;uuid=UUID&amp;action=remove"
  7. सर्वर को मिटाना:
    curl -u <AdminEmailID>:'<AdminPassword>’ -X DELETE http://{MS_IP}:8080/v1/servers/UUID
  8. edge-router को अनइंस्टॉल करना:
    /opt/apigee/apigee-service/bin/apigee-service edge-router uninstall
    सर्वर को हटाना लेख पढ़ें.
  9. ब्लॉक किए गए पोर्ट 15999 को चालू करने के लिए, iptables के नियमों को फ़्लश करें:
    iptables -F

मैसेज प्रोसेसर

इस सेक्शन में, dc-1 से मैसेज प्रोसेसर को हटाने का तरीका बताया गया है. मैसेज प्रोसेसर को हटाने के बारे में ज़्यादा जानकारी के लिए, सर्वर को हटाना लेख पढ़ें.

हम मान रहे हैं कि dc-1 में 12-नोड क्लस्टर इंस्टॉलेशन है. इसलिए, dc-1 में दो मैसेज प्रोसेसर नोड कॉन्फ़िगर किए गए हैं. दोनों नोड में ये कमांड चलाएं.

  1. मैसेज प्रोसेसर के यूयूआईडी पाएं. इसके बारे में यूयूआईडी पाएं में बताया गया है.
  2. मैसेज प्रोसेसर को बंद करना:
    apigee-service edge-message-processor stop
  3. सर्वर के टाइप का रजिस्ट्रेशन रद्द करना:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers  \
    -d "type=message-processor&amp;region=dc-1&amp;pod=gateway-1&amp;uuid=UUID&amp;action=remove"/pre>
  4. Disassociate an environment from the Message Processor.

    Note: You need to remove the bindings on each org/env that associates the Message Processor UUID.

    curl -H "Content-Type:application/x-www-form-urlencoded" -u <AdminEmailID>:''  \
    -X POST http://{MS_IP}:8080/v1/organizations/{ORG}/environments/{ENV}/servers \
    -d "action=remove&uuid=UUID"
  5. सर्वर के टाइप का रजिस्ट्रेशन रद्द करना:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MS_IP:8080/v1/servers -d "type=message-processor&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
  6. मैसेज प्रोसेसर को अनइंस्टॉल करना:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor uninstall
  7. सर्वर का रजिस्ट्रेशन रद्द करना:
    curl -u <AdminEmailID>:'<AdminPassword> -X DELETE http://{MS_IP}:8080/v1/servers/UUID

Qpid सर्वर और Qpidd

इस सेक्शन में, Qpid Server (edge-qpid-server) और Qpidd (apigee-qpidd) को बंद करने का तरीका बताया गया है. dc-1 में दो Qpid नोड कॉन्फ़िगर किए गए हैं. इसलिए, आपको दोनों नोड के लिए यह तरीका अपनाना होगा:

  1. Qpidd के लिए यूयूआईडी पाएं. इसके लिए, यूयूआईडी पाएं में बताया गया तरीका अपनाएं.
  2. edge-qpid-server और apigee-qpidd को बंद करना:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
  3. Analytics और उपभोक्ता ग्रुप की सूची पाएं:
    curl -u <AdminEmailID>:'<AdminPassword>' -X GET http://{MS_IP}:8080/v1/analytics/groups/ax
  4. उपभोक्ता ग्रुप से Qpid को हटाएं:
    curl -u <AdminEmailID>:'<AdminPassword>' -H "Content-Type: application/json"  -X DELETE \ "http://{MS_IP}:8080/v1/analytics/groups/ax/{ax_group}/consumer-groups/{consumer_group}/consumers/{QPID_UUID}"
  5. Qpid को Analytics ग्रुप से हटाएं:
    curl -v -u <AdminEmailID>:'<AdminPassword>' \
    -X DELETE "http://{MS_IP}:8080/v1/analytics/groups/ax/{ax_group}/servers?uuid={QPID_UUID}&type=qpid-server"
  6. Edge इंस्टॉलेशन से Qpid सर्वर का रजिस्ट्रेशन रद्द करें:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \
    -d "type=qpid-server&region=dc-1&pod=central&uuid={QPID_UUID}&action=remove"
  7. Edge इंस्टॉलेशन से Qpid सर्वर को हटाएं:
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
  8. सभी नोड पर सभी edge-qpid-server कॉम्पोनेंट को रीस्टार्ट करें, ताकि यह पक्का किया जा सके कि उन कॉम्पोनेंट ने बदलाव को लागू कर दिया है:
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server wait_for_ready
  9. edge-qpid-server और apigee-qpidd को अनइंस्टॉल करें:
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall
    $ /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall

Postgres और Postgresql

जिस डेटा सेंटर को बंद किया जा रहा है उसमें Postgres मास्टर या Postgres स्टैंडबाय हो सकता है. यहां दिए गए सेक्शन में, उन्हें बंद करने का तरीका बताया गया है:

Postgres मास्टर को बंद किया जा रहा है

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

Postgres मास्टर को बंद करने के लिए:

  1. यहां दिए गए लिंक में दिए गए निर्देशों का पालन करके, dc-1 Postgres मास्टर नोड का बैक अप लें:
  2. Postgres सर्वर के UUID पाएं. इसके लिए, UUID पाएं लेख पढ़ें.
  3. dc-1 पर, edge-postgres-server को रोकें और मौजूदा मास्टर पर apigee-postgresql को रोकें:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
  4. dc-2 पर स्टैंडबाय नोड को मास्टर नोड बनाने के लिए, यह कमांड डालें:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql promote-standby-to-master <IP of OLD Progress master>

    ध्यान दें: अगर आपके पास एक से ज़्यादा स्टैंडबाय Postgres नोड हैं, तो आपको नए मास्टर पर होस्ट एंट्री जोड़नी होंगी. साथ ही, सभी उपलब्ध Postgres स्टैंडबाय नोड के लिए, रेप्लिकेशन सेटिंग को अपडेट करना होगा.

    नए Postgres मास्टर में होस्ट एंट्री जोड़ने के लिए, नीचे दिए गए सेक्शन में बताया गया तरीका अपनाएं:

    अगर सिर्फ़ एक स्टैंडबाय नोड बचा हो

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

    1. नए मास्टर पर, कॉन्फ़िगरेशन फ़ाइल में बदलाव करके ये सेट करें:
      PG_MASTER=IP_or_DNS_of_new_PG_MASTER
      PG_STANDBY=IP_or_DNS_of_PG_STANDBY
    2. नए मास्टर पर रेप्लिकेशन चालू करें:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle

    अगर एक से ज़्यादा स्टैंडबाय नोड बचे हैं

    1. /opt/apigee/customer/application/postgresql.properties में यह कॉन्फ़िगरेशन जोड़ें:
      conf_pg_hba_replication.connection=host replication apigee standby_1_ip/32 trust \n host replication apigee standby_2_ip/32 trust
    2. पक्का करें कि /opt/apigee/customer/application/postgresql.properties फ़ाइल का मालिकाना हक, apigee उपयोगकर्ता के पास हो:
            chown apigee:apigee /opt/apigee/customer/application/postgresql.properties
    3. apigee-postgresql को रीस्टार्ट करें:
      apigee-service apigee-postgresql restart
    4. स्टैंडबाय नोड पर रेप्लिकेशन की सेटिंग अपडेट करने के लिए:

      1. कॉन्फ़िगरेशन फ़ाइल /opt/silent.conf में बदलाव करें और PG_MASTER फ़ील्ड को नए Postgres मास्टर के आईपी पते से अपडेट करें.
      2. इस कमांड का इस्तेमाल करके, Postgres का पुराना डेटा हटाएं:
        rm -rf /opt/apigee/data/apigee-postgresql/
      3. स्टैंडबाय नोड पर रेप्लिकेशन सेट अप करें:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
    5. dc-2 में यह कमांड डालकर पुष्टि करें कि Postgres मास्टर सही तरीके से सेट अप किया गया है:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
    6. ऐनलिटिक्स ग्रुप और उपभोक्ता ग्रुप से Postgresql सर्वर हटाएं और जोड़ें.
      1. किसी Analytics ग्रुप से Postgres सर्वर को हटाने के निर्देशों का पालन करके, पुराने Postgres सर्वर को Analytics ग्रुप से हटाएं.
      2. किसी मौजूदा Postgres सर्वर को Analytics ग्रुप में जोड़ना में दिए गए निर्देशों का पालन करके, Analytics ग्रुप में एक नया Postgres सर्वर जोड़ें.
    7. dc-1 से पुराने postgres सर्वर को अनरजिस्टर करें:
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \
      -d "type=postgres-server&region=dc-1&pod=analytics&uuid=UUID&action=remove"<
    8. dc-1 से पुराना postgres सर्वर मिटाएं:
      curl -u >AdminEmailID>:'>AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
    9. अब पुराने Postgres मास्टर को सुरक्षित तरीके से हटाया जा सकता है. edge-postgres-server और apigee-postgresql को अनइंस्टॉल करें:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall

    Postgres स्टैंडबाय को बंद किया जा रहा है

    ध्यान दें: 12-नोड वाले क्लस्टर इंस्टॉलेशन के दस्तावेज़ में, dc-1 postgresql नोड को मास्टर के तौर पर दिखाया गया है. हालांकि, आसानी के लिए इस सेक्शन में यह माना गया है कि dc-1 postgresql नोड स्टैंडबाय है और dc-2 postgresql नोड मास्टर है.

    Postgres स्टैंडबाय को बंद करने के लिए, यह तरीका अपनाएं:

    1. यूयूआईडी पाएं में दिए गए निर्देशों का पालन करके, Postgres सर्वर के यूयूआईडी पाएं.
    2. dc-1 में मौजूदा स्टैंडबाय नोड पर apigee-postgresql को बंद करें:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
    3. ऐनलिटिक्स ग्रुप और उपभोक्ता ग्रुप से Postgresql सर्वर हटाएं और जोड़ें.
      1. किसी Analytics ग्रुप से Postgres सर्वर को हटाने के निर्देशों का पालन करके, पुराने Postgres सर्वर को Analytics ग्रुप से हटाएं.
      2. किसी मौजूदा Postgres सर्वर को Analytics ग्रुप में जोड़ना में दिए गए निर्देशों का पालन करके, Analytics ग्रुप में एक नया Postgres सर्वर जोड़ें.
    4. dc-1 से पुराने postgres सर्वर को अनरजिस्टर करें:
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \
      -d "type=postgres-server&region=dc-1&pod=analytics&uuid=UUID&action=remove"<
    5. dc-1 से पुराना postgres सर्वर मिटाएं:
      curl -u >AdminEmailID>:'>AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
    6. अब पुराने Postgres मास्टर को सुरक्षित तरीके से हटाया जा सकता है. edge-postgres-server और apigee-postgresql को अनइंस्टॉल करें:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall

    ZooKeeper और Cassandra

    इस सेक्शन में, दो डेटा सेंटर सेटअप में ZooKeeper और Cassandra सर्वर को बंद करने का तरीका बताया गया है.

    अगर आपके पास दो से ज़्यादा डेटा सेंटर हैं, तो पक्का करें कि आपने बंद किए जा रहे नोड (इस मामले में dc-1) के सभी रेफ़रंस हटा दिए हों. ये रेफ़रंस, बाकी सभी डेटा सेंटर की सभी साइलेंट कॉन्फ़िगरेशन फ़ाइलों से हटाने होंगे. जिन Cassandra नोड को बंद करना है उनके होस्ट को CASS_HOSTS से हटा दें. बाकी Cassandra नोड, CASS_HOSTS के ओरिजनल क्रम में ही रहने चाहिए.

    ZooKeeper के बारे में जानकारी: कॉन्फ़िगरेशन फ़ाइल में ZK_HOST प्रॉपर्टी में बदलाव करते समय, आपको वोटर नोड का कोरम बनाए रखना होगा. इससे यह पक्का किया जा सकेगा कि ZooKeeper का एन्सेम्बल काम करता रहे. आपके कॉन्फ़िगरेशन में वोटर नोड की संख्या विषम होनी चाहिए. ज़्यादा जानकारी के लिए, Apache ZooKeeper के रखरखाव से जुड़े टास्क देखें.

    ZooKeeper और Cassandra सर्वर को बंद करने के लिए:

    1. यहां दिए गए लिंक पर जाकर, dc-1 Cassandra और ZooKeeper नोड का बैक अप लेने के लिए, दिए गए निर्देशों का पालन करें:
    2. उस डेटा सेंटर में ZooKeeper और Cassandra सर्वर के यूयूआईडी की सूची बनाएं जहां Cassandra नोड को बंद किया जाना है.

      apigee-adminapi.sh servers list -r dc-1 -p central -t application-datastore --admin <AdminEmailID> --pwd '<AdminPassword>' --host localhost
    3. सर्वर के टाइप का रजिस्ट्रेशन रद्द करना:
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MS_IP:8080/v1/servers -d "type=cache-datastore&type=user-settings-datastore&type=scheduler-datastore&type=audit-datastore&type=apimodel-datastore&type=application-datastore&type=edgenotification-datastore&type=identityzone-datastore&type=user-settings-datastore&type=auth-datastore&region=dc-1&pod=central&uuid=UUID&action=remove"
    4. सर्वर का रजिस्ट्रेशन रद्द करना:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
    5. कॉन्फ़िगरेशन फ़ाइल को अपडेट करें. इसके लिए, ZK_HOSTS और CASS_HOSTS से हटाए गए नोड के आईपी हटाएं.

      उदाहरण: मान लें कि आपके पास dc-1 में आईपी $IP1 $IP2 $IP3 और dc-2 में $IP4 $IP5 $IP6 हैं. साथ ही, dc-1 को बंद किया जा रहा है. इसके बाद, आपको कॉन्फ़िगरेशन फ़ाइलों से आईपी $IP1 $IP2 $IP3 को हटाना चाहिए.

      • कॉन्फ़िगरेशन फ़ाइल में मौजूद एंट्री:
        ZK_HOSTS="$IP1 $IP2 $IP3 $IP4 $IP5 $IP6"
        CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1, $IP4:2,1 $IP5:2,1 $IP6:2,1”
      • कॉन्फ़िगरेशन फ़ाइल में नई एंट्री:
        ZK_HOSTS="$IP4 $IP5 $IP6"
        CASS_HOSTS="$IP4:2,1 $IP5:2,1 $IP6:2,1"
    6. साइलेंट कॉन्फ़िगरेशन फ़ाइल (चरण e में बदली गई) को हटाए गए डीकमिशन किए गए नोड के आईपी के साथ अपडेट करें. इसके बाद, मैनेजमेंट सर्वर को होस्ट करने वाले सभी नोड पर मैनेजमेंट सर्वर प्रोफ़ाइल चलाएं:
      /opt/apigee/apigee-setup/bin/setup.sh -p ms -f updated_config_file
    7. कॉन्फ़िगरेशन फ़ाइल को हटाए गए डीकमिशन किए गए नोड के आईपी से अपडेट करें. साथ ही, सभी राऊटर और मैसेज प्रोसेसर नोड पर एमपी/आरएमपी प्रोफ़ाइल चलाएं:
      • अगर Edge राऊटर और मैसेज प्रोसेसर को एक ही नोड पर कॉन्फ़िगर किया गया है, तो यह डालें:
        /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f updated_config_file
      • अगर Edge राऊटर और मैसेज प्रोसेसर को अलग-अलग नोड पर कॉन्फ़िगर किया गया है, तो यह डालें:

        राऊटर के लिए:

        /opt/apigee/apigee-setup/bin/setup.sh -p r -f updated_config_file

        मैसेज प्रोसेसर के लिए:

        /opt/apigee/apigee-setup/bin/setup.sh -p mp -f updated_config_file
    8. सभी Qpid नोड को फिर से कॉन्फ़िगर करें. इसके लिए, रिस्पॉन्स फ़ाइल से हटाए गए नोड के आईपी हटाएं:
      /opt/apigee/apigee-setup/bin/setup.sh -p qs -f updated_config_file
    9. सभी Postgres नोड को फिर से कॉन्फ़िगर करें. इसके लिए, रिस्पॉन्स फ़ाइल से हटाए गए नोड के आईपी हटाएं:
      /opt/apigee/apigee-setup/bin/setup.sh -p ps -f updated_config_file
    10. system_auth कीस्पेस में बदलाव करें. अगर आपने किसी मौजूदा Cassandra नोड पर Cassandra ऑथेंटिकेशन चालू किया है, तो यहां दिया गया कमांड चलाकर system_auth कीस्पेस के रेप्लिकेशन फ़ैक्टर को अपडेट करें:
      ALTER KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'dc-2': '3'};

      यह कमांड, रेप्लिकेशन फ़ैक्टर को '3' पर सेट करता है. इससे क्लस्टर में तीन Cassandra नोड होने का पता चलता है. ज़रूरत के मुताबिक, इस वैल्यू में बदलाव करें.

      इस चरण को पूरा करने के बाद, Cassandra टोपोलॉजी के किसी भी कीस्पेस में dc-1 नहीं होना चाहिए.

    11. dc-1 पर Cassandra नोड को एक-एक करके बंद करें.

      Cassandra नोड को बंद करने के लिए, यह कमांड डालें:

      /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP -u cassandra -pw '<AdminPassword>' decommission
    12. इनमें से किसी एक कमांड का इस्तेमाल करके, dc-1 से Cassandra नोड के कनेक्शन की जांच करें:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p '<AdminPassword>'

      या बंद किए गए नोड पर पुष्टि करने के लिए, यह सेकंडरी कमांड चलाएं:

      /opt/apigee/apigee-cassandra/bin/nodetool netstats

      ऊपर दिए गए निर्देश से यह जानकारी मिलनी चाहिए:

      Mode: DECOMMISSIONED
    13. dc-2 में मौजूद सभी Cassandra और ZooKeeper नोड के लिए, DS प्रोफ़ाइल चलाएं:
      /opt/apigee/apigee-setup/bin/setup.sh -p ds -f updated_config_file
    14. dc-1 में apigee-cassandra और apigee-zookeeper को बंद करें:
      apigee-service apigee-cassandra stop
      apigee-service apigee-zookeeper stop
    15. dc-1 में apigee-cassandra और apigee-zookeeper को अनइंस्टॉल करें:
      apigee-service apigee-cassandra uninstall
      apigee-service apigee-zookeeper uninstall

    dc-1 से बाइंडिंग मिटाना

    dc-1 से बाइंडिंग मिटाने के लिए, यह तरीका अपनाएं:

    1. dc-1 से बाइंडिंग मिटाएं.
      1. संगठन के तहत उपलब्ध सभी पॉड की सूची बनाएं:
        curl -v -u  <AdminEmailID>:<AdminPassword> -X GET "http://MS_IP:8080/v1/o/ORG/pods"
      2. यह देखने के लिए कि सभी बाइंडिंग हटा दी गई हैं या नहीं, पॉड से जुड़े सर्वर के यूयूआईडी पाएं:
        curl -v -u  <AdminEmailID>:<AdminPassword> \
        -X GET "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1/servers"

        अगर इस निर्देश से कोई यूयूआईडी नहीं मिलता है, तो इसका मतलब है कि पिछले चरणों में सभी बाइंडिंग हटा दी गई हैं. ऐसे में, अगले चरण को छोड़ा जा सकता है. अगर ऐसा नहीं है, तो अगला चरण पूरा करें.

      3. पिछले चरण में मिले यूयूआईडी के लिए, सभी सर्वर बाइंडिंग हटाएं:
        curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
      4. संगठन को पॉड से अलग करना:
        curl -v -u  <AdminEmailID>:<AdminPassword>  "http://MS_IP:8080/v1/o/ORG/pods" -d "action=remove&region=dc-1&pod=gateway-1" -H "Content-Type: application/x-www-form-urlencoded" -X POST
    2. पॉड मिटाएं:
      curl -v -u <AdminEmailID>:<AdminPassword> "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1" -X DELETE
    3. क्षेत्र की जानकारी मिटाना.
      curl -v -u <AdminEmailID>:<AdminPassword>  "http://MS_IP:8080/v1/regions/dc-1" -X DELETE

    ध्यान दें: अगर सर्वर मिटाते समय कोई चरण छूट जाता है, तो ऊपर बताए गए चरण को पूरा करने पर गड़बड़ी का मैसेज दिखेगा. इसमें बताया जाएगा कि पॉड में कोई सर्वर अब भी मौजूद है. इसलिए, समस्या हल करने के लिए यहां दिया गया तरीका अपनाकर उन्हें मिटाएं. साथ ही, curl कमांड में टाइप को पसंद के मुताबिक बनाएं.

    इस समय, आपने dc-1 को बंद करने की प्रोसेस पूरी कर ली है.

    अपेंडिक्स

    समस्या का हल

    अगर पिछले चरणों को पूरा करने के बाद भी कुछ पॉड में सर्वर मौजूद हैं, तो सर्वर को अनरजिस्टर करने और मिटाने के लिए, यह तरीका अपनाएं. ध्यान दें: ज़रूरत के हिसाब से टाइप और पॉड बदलें.

    1. इस निर्देश का इस्तेमाल करके, यूयूआईडी पाएं:
      apigee-adminapi.sh servers list -r dc-1 -p POD -t  --admin <AdminEmailID> --pwd  '<AdminPassword>’ --host localhost
    2. रजिस्ट्रेशन रद्द करने वाले सर्वर का टाइप:
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MP_IP:8080/v1/servers -d "type=TYPE=REGION=dc-1&pod=POD&uuid=UUID&action=remove"
    3. सर्वर को एक-एक करके मिटाएं:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MP_IP:8080/v1/servers/UUID

    पुष्टि

    यहां दिए गए कमांड का इस्तेमाल करके, डीकमिशन की पुष्टि की जा सकती है.

    मैनेजमेंट सर्वर

    सभी क्षेत्रों में मैनेजमेंट सर्वर से ये कमांड चलाएं.

    curl -v  -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=central&region=dc-1
    curl -v  -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=gateway&region=dc-1
    curl -v -u  <AdminEmailID>:'<AdminPassword>'  http://MS_IP:8080/v1/servers?pod=analytics&region=dc-1

    सभी कॉम्पोनेंट पर यह कमांड चलाएं, ताकि सभी मैनेजमेंट पोर्ट के लिए पोर्ट की ज़रूरी शर्तों की जांच की जा सके.

    curl -v http://MS_IP:8080/v1/servers/self

    Analytics ग्रुप की जांच करें.

    curl  -v  -u  <AdminEmailID>:'<AdminPassword>' "http://MS_IP:8080}/v1/o/ORG/e/ENV/provisioning/axstatus"
    curl -v  -u  <AdminEmailID>:'<AdminPassword>'  http://MS_IP:8080/v1/analytics/groups/ax

    Cassandra/ZooKeeper नोड

    सभी Cassandra नोड पर यह डालें:

    /opt/apigee/apigee-cassandra/bin/nodetool -h <host> statusthrift

    इससे उस नोड के लिए, running या not running स्टेटस दिखेगा.

    एक नोड पर यह डालें:

    /opt/apigee/apigee-cassandra/bin/nodetool -h <host> ring
    /opt/apigee/apigee-cassandra/bin/nodetool -h <host> status

    ऊपर दिए गए कमांड, चालू डेटा सेंटर की जानकारी दिखाएंगे.

    ZooKeeper नोड पर, सबसे पहले यह डालें:

    echo ruok | nc <host> 2181

    इस निर्देश से imok वापस मिलेगा.

    इसके बाद, यह जानकारी डालें:

    echo stat | nc <host> 2181 | grep Mode

    ऊपर दिए गए निर्देश से मिलने वाली Mode की वैल्यू, इनमें से कोई एक होगी: observer, leader या follower.

    एक ZooKeeper नोड में:

    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh >> /tmp/zk-tree.out.txt

    Postgres मास्टर नोड पर, यह चलाएं:

    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

    पुष्टि करें कि जवाब में नोड को मास्टर बताया गया है.

    स्टैंडबाय नोड पर:

    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

    पुष्टि करें कि जवाब में नोड को स्टैंडबाय के तौर पर दिखाया गया है.

    इस कमांड का इस्तेमाल करके, PostgreSQL डेटाबेस में लॉगिन करें

    psql -h localhost -d apigee -U postgres

    जब कहा जाए, तब 'postgres' उपयोगकर्ता का पासवर्ड 'postgres' डालें. Analytics में जाकर, max(client_received_start_timestamp) को चुनें.

    ”$org.$env.fact” limit 1;

    लॉग

    कॉम्पोनेंट पर लॉग देखें, ताकि यह पक्का किया जा सके कि कोई गड़बड़ी न हो.