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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. ממשק משתמש של Edge (edge-ui)
  2. שרת ניהול (edge-management-server)
  3. Symas LDAP ‏ (apigee-openldap)
  4. נתב (נתב קצה)
  5. Message Processor (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 UI של 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

Symas LDAP

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

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

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

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

    1. בודקים את המצב הנוכחי:
            /opt/symas/bin/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}mdb,cn=config
      changetype: modify
      delete: olcSyncRepl
      
      dn: olcDatabase={2}mdb,cn=config
      changetype: modify
      delete: olcMirrorMode
    3. מריצים את הפקודה ldapmodify:
            /opt/symas/bin/ldapmodify -x -w {credentials} -D "cn=admin,cn=config" -H "ldap://{HOST}:{PORT}/" -f path/to/file/break_repl.ldif

      הפלט אמור להיראות כך:

      modifying entry "olcDatabase={2}mdb,cn=config"
      modifying entry "olcDatabase={2}mdb,cn=config"
  3. כדי לוודא ש-dc-2 לא משכפל יותר ל-dc-1, יוצרים רשומה ב-LDAP של dc-2 ומוודאים שהיא לא מופיעה ב-LDAP של dc-1.

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

    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:
      /opt/symas/bin/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 כבר לא משוכפלים:
      /opt/symas/bin/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. מסירים את המשתמש עם הרשאת קריאה בלבד שהוספתם קודם:
      /opt/symas/bin/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. מפסיקים את SymasLDAP ב-dc-1:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
  5. מסירים את הרכיב SymasLDAP ב-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. כדי להציג את רשימת ה-pods של השערים שזמינים בארגון, מריצים את הפקודה הבאה:
    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&region=dc-1&pod=gateway-1&uuid=UUID&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&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
  4. ביטול השיוך של סביבה למעבד ההודעות.
    curl -H "Content-Type:application/x-www-form-urlencoded" <AdminEmailID>:'<AdminPassword>’  \
    -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). יש שני צמתי 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 master, צריך לוודא שמקדמים אחד מהצמתים הזמינים במצב המתנה כ-Postgres master חדש. תורי QPID מאגרי נתונים, אבל אם שרת ה-Postgres הראשי לא יהיה זמין למשך זמן רב, יכול להיות שתאבדו נתונים של ניתוח.

כדי להוציא משימוש את Postgres master:

  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 הראשי החדש: פועלים לפי השלבים בקטע המתאים שבהמשך:

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

    לדוגמה, נניח שלפני הוצאת המכונה משימוש, הוגדרו שלושה צמתי 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 master החדש.
      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 master מוגדר בצורה נכונה, מזינים את הפקודה הבאה ב-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®ion=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 כדי לקבל את מזהי ה-UUID של שרתי Postgres.
    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: כדי להבטיח שקבוצת השרתים של ZooKeeper תמשיך לפעול, צריך לשמור על קוורום של צמתים מצביעים בזמן שינוי המאפיין ZK_HOST בקובץ התצורה. צריך להגדיר מספר אי-זוגי של צמתים להצבעה. מידע נוסף זמין במאמר בנושא משימות תחזוקה של Apache ZooKeeper.

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

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

      אחרי השלמת השלב הזה, לא אמור להיות dc-1 בטופולוגיה של Cassandra באף אחד ממרחבי המפתחות.

    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. מוחקים את ה-Pods:
      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

    בשלב הזה, השלמתם את הוצאת 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

    אימות

    כדי לאמת את הוצאת המערכת משימוש, אפשר להשתמש בפקודות הבאות.

    שרת ניהול

    1. מריצים את הפקודות הבאות משרתי הניהול בכל האזורים.
      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
    2. מריצים את הפקודה הבאה בכל הרכיבים כדי לבדוק את דרישות היציאה לכל יציאות הניהול.
      curl -v http://MS_IP:8080/v1/servers/self
    3. בודקים את קבוצת הניתוח.
      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
    4. צומתי Cassandra/ZooKeeper

      1. בכל צומתי Cassandra, מזינים:
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> statusthrift

        יוחזר סטטוס running או not running עבור הצומת הספציפי הזה.

      2. באחד מהצמתים, מזינים:
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> ring
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> status

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

      3. בצמתים של ZooKeeper, קודם מזינים:
        echo ruok | nc <host> 2181
        

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

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

        echo stat | nc <host> 2181 | grep Mode
        

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

      4. באחד מצמתי ZooKeeper, מריצים את הפקודה:
        /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh >> /tmp/zk-tree.out.txt
      5. בצומת הראשי של Postgres, מריצים את הפקודה:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

        מוודאים שהתשובה מציינת שהצומת הוא הראשי.

      6. בצומת במצב המתנה, מריצים את הפקודה:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

        מוודאים שהתשובה מאשרת שהצומת הוא במצב המתנה.

      7. מתחברים למסד הנתונים של PostgreSQL באמצעות הפקודה הבאה:
        psql -h localhost -d apigee -U postgres

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

        לאחר מכן מריצים את השאילתה הבאה כדי לבדוק את הערך המקסימלי client_received_start_timestamp:

        SELECT max(client_received_start_timestamp) FROM "analytics"."$org.$env.fact" LIMIT 1;

      יומנים

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