הוצאה משימוש של מרכז נתונים

לפעמים צריך להוציא מרכז נתונים משימוש. לדוגמה, אם אתם משדרגים את מערכת ההפעלה, צריך כדי להתקין את מערכת ההפעלה החדשה במרכז נתונים חדש, ולאחר מכן להוציא משימוש את מרכז הנתונים הישן. בקטעים הבאים מוצגת דוגמה להוצאה משימוש של מרכז נתונים, שבה יש שני מרכזי נתונים, dc-1 ו-dc-2, 12 צמתים התקנה אשכולות:

  • dc-1 הוא מרכז הנתונים המיועד להוצאה משימוש.
  • dc-2 הוא מרכז נתונים שני שבו משתמשים בתהליך פירוק הרשות.

אם אתם משדרגים במערכת ההפעלה dc-2 יכול להיות מרכז הנתונים שבו התקנתם הגרסה החדשה של מערכת ההפעלה. עם זאת, אין צורך להתקין מערכת הפעלה חדשה כדי להוציא מרכז נתונים משימוש.

שיקולים לפני הוצאה משימוש של מרכז נתונים

כשמוציאים משימוש מרכז נתונים, חשוב לזכור את השיקולים הבאים:

  • חסימה של כל תעבורת הנתונים והניהול של סביבת זמן הריצה למרכז הנתונים, הוצאה משימוש והפניה אוטומטית למרכז הנתונים למרכזי נתונים אחרים.
  • אחרי ההוצאה משימוש של מרכז הנתונים, הקיבולת של אשכול Apigee תהיה נמוכה יותר. כדי לפצות על כך, כדאי להגדיל את הקיבולת במרכזי הנתונים שנותרו או להוסיף מרכזי נתונים אחרי שהוצאו משימוש.
  • בתהליך ההוצאה משימוש, עלול להיווצר מצב של אובדן נתונים במסגרת ניתוח הנתונים, בהתאם אילו רכיבי ניתוח נתונים מותקנים במרכז הנתונים שמוציאים משימוש. טיפים נוספים לאופטימיזציה מפורטים פרטים נוספים זמינים במאמר הוספה או הסרה של Qpid צמתים.
  • לפני שפורקים מרכז נתונים, צריך להבין איך כל הרכיבים מוגדרים בכל מרכזי הנתונים, במיוחד OpenLDAP, zoKeeper, Cassandra, ו-Postgres. מומלץ גם לגבות גיבויים של כל הרכיבים וההגדרות שלהם.

לפני שמתחילים

  • שרת ניהול: כל שלבי ההוצאה משימוש תלויים מאוד בשרת הניהול. אם יש לכם רק שרת ניהול זמין, מומלץ להתקין יישום חדש רכיב של שרת ניהול במרכז נתונים שאינו dc-1 לפני הוצאה משימוש של הניהול בשרת DC-1, ומוודאים אחד משרתי הניהול תמיד זמין.
  • נתב: לפני שמוציאים משימוש נתב, צריך להשבית את יכולת ההגעה (reachability) של נתבים על ידי חסימת היציאה 15999. מוודאים שאין זמן ריצה התנועה מופנית אל הנתבים שהוצאו משימוש.
  • קסנדרה וגן חיות: בקטעים הבאים מתואר איך להוציא את DC-1 בהגדרה של שני מרכזי נתונים. אם יש לכם יותר מרכזי נתונים, צריך להסיר את כל ההפניות לצומת שמוציאים משימוש (dc-1 במקרה הזה) מכל קובצי התצורה השקטים בכל מרכזי הנתונים הנותרים. בצמתים של Cassandra שעומדים לצאת משימוש, צריך לשחרר את המארחים האלה מ-CASS_HOSTS. שאר צמתים ב-Cassandra צריכים להישאר בסדר המקורי של CASS_HOSTS.

  • Postgres: אם מוציאים משימוש ב-Postgres מאסטר, חשוב לקדם כל אחד צמתים זמינים במצב המתנה כמאסטר חדש של Postgres. למרות ששרת ה-QPID שומר מאגר בתור, אם המאסטר של Postgres לא זמין למשך זמן ארוך יותר, אתה עלול לאבד את הנתונים של ניתוח הנתונים.

דרישות מוקדמות

  • לפני שמוציאים משימוש רכיב כלשהו, מומלץ לבצע גיבוי מלא של כל הרכיבים צמתים. מבצעים את התהליך של הגרסה הנוכחית של Edge כדי לבצע גיבוי. למידע נוסף על הגיבוי: גיבוי ושחזור.

    הערה: אם יש מספר צמתים של Cassandra או גן החיות, צריך לגבות אותם אחד בכל פעם, כי תהליך הגיבוי משבית באופן זמני אתzoKeeper.

  • כדי לוודא ש-Edge פועל לפני ההוצאה משימוש, משתמשים בפקודה:
    /opt/apigee/apigee-service/bin/apigee-all status
  • מוודאים שלא מגיעה כרגע תנועה בסביבת זמן הריצה במרכז הנתונים שבו אתם נמצאים להוצאה משימוש.

סדר הרכיבים של הוצאה משימוש

אם מתקינים את Edge ל-Cloud פרטי בכמה צמתים, צריך להפסיק את השימוש רכיבי הקצה בצמתים האלה בסדר הבא:

  1. Edge UI (ממשק קצה)
  2. שרת ניהול (End-management-server)
  3. OpenLDAP (apigee-openldap)
  4. נתב (נתב קצה)
  5. מעבד הודעות (מעבד הודעות קצה)
  6. Qpid Server ו-Qpidd (שוליים-qpid-server ו-apigee-qpidd)
  7. Postgres ומסד הנתונים של PostgreSQL (End-postgres-server ו-apigee-postgresql)
  8. ZooKeeper (apigee-zookeeper)
  9. קסנדרה (apigee-cassandra)

בקטעים הבאים מוסבר איך להוציא משימוש כל רכיב.

ממשק המשתמש של Edge

כדי להפסיק ולהסיר את רכיב ממשק המשתמש של Edge ב-dc-1, מזינים את הפקודות הבאות:

/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. מחפשים את ה-UUID של שרת הניהול שרשום ב-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. מוחקים את השרת. הערה: אם בשרת הזה מותקנים גם רכיבים אחרים, לבטל את הרישום של כולם לפני מחיקת ה-UUID.
    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

פתיחת LDAP

הקטע הזה מסביר איך להוציא משימוש את OpenLDAP ב-dc-1.

הערה: אם יש לכם יותר משני מרכזי נתונים, היכנסו למאמר הגדרות שיש להן יותר משני מרכזי נתונים בהמשך.

כדי להוציא את OpenLDAP ב-dc-1, מבצעים את השלבים הבאים:

  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 על ידי יצירת ערך ב-LDAP DC-2 וודא שהוא לא מופיע ב-LDAP של dc-1.

    לחלופין, אפשר לבצע את השלבים הבאים כדי ליצור משתמש עם הרשאת קריאה בלבד ב-dc-2 צריך לפתוח את הצומת של LDAP ואז לבדוק אם יש רפליקציה של המשתמש או לא. המשתמש בהמשך נמחק.

    1. יוצרים קובץ readonly-user.ldif ב-dc-2 עם התוכן הבא:
      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. הוספת משתמש באמצעות פקודת 'ldapadd' ב-dc-2:
      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, תהיה בטוח ששני מזהי ה-LDAP כבר לא משכפלים:
      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. הפסקת OpenLDAP ב-dc-1:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
  5. מסירים את הרכיב OpenLDAP ב-dc-1:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap uninstall

נתב

בקטע הזה מוסבר איך להוציא נתב משימוש. צפייה צריך להסיר שרת כדי לקבל פרטים נוספים על הסרת הנתב.

השלבים הבאים מוציאים משימוש את הנתב מ-dc-1. אם הוגדרו מספר צומתי נתב שהוגדרו ב-dc-1, יש לבצע את השלבים בכל צומתי הנתב מילה אחת בכל פעם

הערה: כאן ההנחה היא שיציאת בדיקת התקינות של הנתב 15999 מוגדרת בעומס והיציאה החוסמת 15999, לא תהיה גישה לנתב. יכול להיות שנדרשת גישה לרמה הבסיסית (root) כדי לחסום את השקע.

כדי להוציא נתב משימוש:

  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. מקבלים את ה-UUID של הנתב, כפי שמתואר ב קבלת מזהי UUID.
  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"

    ראו מידע על 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. מנקים את הכללים של iptables כדי להפעיל את היציאה החסומה 15999:
    iptables -F

מעבד בקשות

בקטע הזה מוסבר איך להוציא את מעבד ההודעות מ-dc-1. ראו לפרטים נוספים על הסרת מעבד ההודעות, צריך להסיר שרת.

מכיוון שאנחנו מניחים של-dc-1 יש 12 צמתים באשכולות באשכולות, יש שני צמתים של מעבדי הודעות שהוגדרו ב-dc-1. מבצעים את את הפקודות הבאות בשני הצמתים.

  1. מקבלים את מזהי ה-UUID של מעבדי ההודעות, כפי שמתואר ב קבלת מזהי UUID.
  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 (edge-qpid-server) ו-Qpidd (apigee-qpidd). יש שני צומתי Qpid שהוגדרו ב-dc-1, ולכן עליכם לבצע את השלבים הבאים בשני הצמתים צמתים:

  1. מקבלים את ה-UUID ל-Qpidd, כפי שמתואר בקבלת מזהים ייחודיים אוניברסליים (UUID).
  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 מקבוצת ניתוח הנתונים:
    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. ביטול הרישום של שרת ה-Qpid מהתקנת Edge:
    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. הסרת שרת ה-Qpid מהתקנת Edge:
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
  8. כדי לוודא שהשינוי נאסף, צריך להפעיל מחדש את כל הרכיבים של שרת dge-qpid בכל הצמתים על ידי הרכיבים האלה:
    $ /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. מסירים את dge-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 לא זמין למשך זמן רב, אתם עלולים לאבד את נתוני ניתוח הנתונים.

כדי להוציא משימוש את המאסטר ב-Postgres:

  1. מגבים את הצומת הראשי dc-1 Postgres על ידי ביצוע ההוראות בקישורים הבאים:
  2. מקבלים את מזהי ה-UUID של שרתי Postgres, כפי שמתואר ב קבלת מזהי 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. הוצאת משימוש את המאסטר הקיים וקידמת את אחד מהמצבים ההמתנה שנותרו לאחר שליחת אימייל את הצמתים שרוצים במאסטר. כדי להגדיר את הצומת שנותר במצב המתנה:

    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 עם כתובת ה-IP של המאסטר החדש של 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. כדי לוודא שהמאסטר של Postgres מוגדר נכון על ידי הזנת הפקודה הבאה ב-dc-2:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
    6. מסירים ומוסיפים שרתי Postgresql מקבוצת ניתוח הנתונים ומקבוצת הצרכנים.
      1. מסירים את שרת Postgres הישן מקבוצת ניתוח הנתונים לפי ההוראות ב- הסרת שרת Postgres מקבוצת ניתוח נתונים.
      2. מוסיפים שרת Postgres חדש לקבוצת ניתוח הנתונים לפי ההוראות ב- מוסיפים שרת Postgres קיים לקבוצת ניתוח נתונים.
    7. מבטלים את הרישום של שרת postgres הישן מ-dc-1:
      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. מוחקים את שרת Postgres הישן מ-dc-1:
      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. מקבלים את מזהי ה-UUID של שרתי Postgres, לפי ההוראות ב- קבלת מזהי UUID.
    2. עצירת הפעולה של apigee-postgresql בצומת ההמתנה הנוכחי ב-DC-1:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
    3. מסירים ומוסיפים שרתי Postgresql מקבוצת ניתוח הנתונים ומקבוצת הצרכנים.
      1. מסירים את שרת Postgres הישן מקבוצת ניתוח הנתונים לפי ההוראות ב- הסרת שרת Postgres מקבוצת ניתוח נתונים.
      2. מוסיפים שרת Postgres חדש לקבוצת ניתוח הנתונים לפי ההוראות ב- מוסיפים שרת Postgres קיים לקבוצת ניתוח נתונים.
    4. מבטלים את הרישום של שרת postgres הישן מ-dc-1:
      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. מוחקים את שרת Postgres הישן מ-dc-1:
      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

    גן החיות וקסנדרה

    בקטע הזה מוסבר איך להוציא משימוש את השרתים של ZoomKeeper ו-Cassandra בשני מרכזים של נתונים.

    אם יש לכם יותר מרכזי נתונים, צריך להסיר את כל ההפניות לצומת שמוציאים משימוש (dc-1 במקרה הזה) מכל קובצי התצורה השקטים בכל מרכזי הנתונים הנותרים. בצמתים של Cassandra שעומדים לצאת משימוש, צריך לשחרר את המארחים האלה מ-CASS_HOSTS. שאר צמתים ב-Cassandra צריכים להישאר בסדר המקורי של CASS_HOSTS.

    הערה ב-ZooKeeper: עליכם לשמור על קוורום של צמתי מצביעים בזמן שינוי של נכס ZK_HOST בקובץ התצורה, כדי להבטיח שהמתחם של ZoomKeeper ימשיך לפעול. צריך להיות לך מספר אי-זוגי של צומתי המצביעים בהגדרה שלך. מידע נוסף זמין במאמר הבא: תחזוקה של Apache ZoKeeper למשימות סיווג.

    כדי להוציא משימוש את השרתים של ZoomKeeper ו-Cassandra:

    1. מגבים את הצמתים dc-1 Cassandra ו-ZooKeeper על ידי ביצוע ההוראות בקישורים הבאים:
    2. רשימה של מזהי UUID שלzoKeeper ו-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. מעדכנים את קובץ התצורה כך שכתובות ה-IP של צמתים שהוצאו משימוש הוסרו מ- ZK_HOSTS וגם CASS_HOSTS

      דוגמה: נניח שכתובות ה-IP שלך $IP1 $IP2 $IP3 ב-dc-1 ו-$IP4 $IP5 $IP6 ב-DC-2, ואת מוציאים משימוש את dc-1. לאחר מכן צריך להסיר את כתובות ה-IP $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) בכתובות ה-IP של הנכס שהוסר צמתים שהוצאו משימוש ולהריץ את הפקודה פרופיל שרת בכל הצמתים שמארחים שרתי ניהול:
      /opt/apigee/apigee-setup/bin/setup.sh -p ms -f updated_config_file
    7. צריך לעדכן את קובץ התצורה עם כתובות ה-IP של הצמתים שהוצאו משימוש ולהריץ את פרופיל ה-MP/RMP בכל הצמתים של הנתב ומעבד ההודעות:
      • אם 'נתב 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, ללא כתובות ה-IP של הצמתים שהוצאו משימוש יוסרו מקובץ התגובה:
      /opt/apigee/apigee-setup/bin/setup.sh -p qs -f updated_config_file
    9. הגדרה מחדש של כל צומתי Postgres, לאחר הסרה של כתובות ה-IP של הצמתים שהוסרו מקובץ התגובה:
      /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 באשכול. משנים את הערך הזה לפי הצורך.

      לאחר השלמת השלב הזה, הטופולוגיה של קסנדרה לא כוללים dc-1 באף אחד ממרחבי המקשים.

    11. מוציאים את הצמתים של Cassandra מזרם dc-1, אחד אחרי השני.

      כדי להוציא את הצמתים של Cassandra, מזינים את הפקודה הבאה:

      /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP -u cassandra -pw '<AdminPassword>' decommission

    12. בודקים את החיבור של צומתי Cassandra מ-dc-1 באמצעות אחת מהפקודות הבאות:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p '<AdminPassword>'

      או פקודת אימות משנית שתופעל בצומת שהוצא משימוש:

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

      הפקודה שלמעלה אמורה להחזיר:

      Mode: DECOMMISSIONED

    13. מריצים את פרופיל ה-DS לכל הצמתים של Cassandra ו-ZooKeeper ב-dc-2:
      /opt/apigee/apigee-setup/bin/setup.sh -p ds -f updated_config_file
    14. עצירת הפעולה של apigee-cassandra ושל apigee-zookeeper ב-DC-1:
      apigee-service apigee-cassandra stop
      apigee-service apigee-zookeeper stop
    15. הסרת ההתקנה של apigee-cassandra ושל apigee-zookeeper ב-dc-1:
      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. כדי לבדוק אם כל הקישורים הוסרו, מזהי UUID של השרתים המשויכים ל-Pods:
        curl -v -u  <AdminEmailID>:<AdminPassword> \
        -X GET "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1/servers"

        אם הפקודה לא מחזירה מזהי UUID, כל הקישורים הוסרו בשלבים הקודמים. ותוכלו לדלג על השלב הבא. אם לא, מבצעים את השלב הבא.

      3. מסירים את כל קישורי השרת עבור מזהי UUID שהתקבלו בשלב הקודם:
        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

    הערה: אם פספסתם את אחד מהשלבים למחיקת השרתים, תוכלו לבצע את השלב שמופיע למעלה. יחזיר הודעת שגיאה שרת ספציפי ב-pod עדיין קיים. לכן, מוחקים אותם באמצעות השלבים לפתרון בעיות. למטה, תוך התאמה אישית של הסוגים בפקודה curl.

    בשלב הזה השלמתם את ההוצאה משימוש של dc-1.

    נספח

    פתרון בעיות

    אם אחרי שביצעתם את השלבים הקודמים עדיין יש שרתים בחלק מה-Pods, צריך לבצע את השלבים הבאים כדי לבטל את הרישום ולמחוק את השרתים. הערה: משנים את הסוגים ואת רצף המודעות לפי הצורך.

    1. משתמשים בפקודה הבאה כדי לקבל את ה-UUIDs:
      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

    בודקים את קבוצת ניתוח הנתונים.

    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

    הפקודות שלמעלה יחזירו מידע פעיל של מרכז נתונים.

    בצמתים של ZoomKeeper, קודם צריך להזין:

    echo ruok | nc <host> 2181

    הפקודה הזו תחזיר את הערך imok.

    לאחר מכן מזינים:

    echo stat | nc <host> 2181 | grep Mode

    הערך של Mode שהוחזר על ידי הפקודה שלמעלה יהיה אחד מהערכים הבאים: observer, leader או follower.

    בצומת אחד של ZoomKeeper:

    /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'. צריך לבחור את max(client_received_start_timestamp) מניתוח הנתונים.

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

    יומנים

    צריך לבדוק את היומנים ברכיבים כדי לוודא שאין שגיאות.