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

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

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

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

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

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

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

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

  • לפני שמוציאים משימוש רכיב כלשהו, מומלץ לבצע גיבוי מלא של כל הצמתים. מבצעים את הגיבוי לפי ההוראות לגרסה הנוכחית של 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 ו-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. מסירים את הרכיב Management Server ב-dc-1:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server uninstall

Open 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 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

נתב

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

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

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

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

  1. משביתים את יכולת ההגעה (reachability) של הנתבים על ידי חסימת יציאה 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. מפעילים מחדש את כל רכיבי 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. בזמן שהתורים של QPID מאחסנים נתונים במאגר, אם ה-Postgres הראשי לא זמין במשך זמן רב, אתם עלולים לאבד נתוני ניתוח.

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

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

    אם נשאר רק צומת המתנה אחד

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

    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

    ‫ZooKeeper ו-Cassandra

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

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

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

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

    1. מגבים את צומתי Cassandra ו-ZooKeeper ב-dc-1 לפי ההוראות שבקישורים הבאים:
    2. מציגים את מזהי ה-UUID של שרתי 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. מעדכנים את קובץ התצורה עם כתובות ה-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. מעדכנים את קובץ התצורה השקט (ששונה בשלב ה') עם כתובות ה-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 Router ו-Message Processor מוגדרים בצמתים נפרדים, מזינים את הפרטים הבאים:

        לנתב:

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

    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

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

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

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

    יומנים

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