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

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

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

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

שיקולים שיש להביא בחשבון לפני השקה של מרכז נתונים

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

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

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

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

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

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

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

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

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

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

אם מתקינים את Edge לענן פרטי בכמה צמתים, צריך להסיר את רכיבי Edge בצמתים האלה לפי הסדר הבא:

  1. Edge UI (edge-ui)
  2. Management Server (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

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

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

    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 של הנתב, כמו שמתואר במאמר קבלת UUIDs.
  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 של מעבדי ההודעות, כמו שמתואר במאמר קבלת UUIDs.
  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, כמו שמתואר במאמר קבלת UUIDs.
  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. מפעילים מחדש את כל רכיבי שרת הקצה 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. הסרה של 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 לא זמין למשך זמן רב, אתה עלול לאבד את נתוני הניתוח.

כדי לבטל את ההשבתה של תוכנית Postgres:

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

    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 חדש לקבוצת Analytics לפי ההוראות במאמר הוספת שרת 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 חדש לקבוצת Analytics לפי ההוראות במאמר הוספת שרת 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

    גן החיות (ZooKeeper) ו-קסנדרה

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

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

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

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

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

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

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

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

    echo ruok | nc <host> 2181

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

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

    echo stat | nc <host> 2181 | grep Mode

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

    בצומת גן חיות אחת:

    /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) מ-Analytics.

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

    יומנים

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