לפעמים צריך להוציא משימוש מרכז נתונים. לדוגמה, אם אתם משדרגים את מערכת ההפעלה, אתם צריכים להתקין את מערכת ההפעלה החדשה במרכז נתונים חדש, ואז להוציא משימוש את מרכז הנתונים הישן. בקטעים הבאים מוצגת דוגמה להוצאה משימוש של מרכז נתונים, שבה יש שני מרכזי נתונים, 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 בצמתים האלה בסדר הבא:
- ממשק משתמש חדש של Edge (
edge-management-uiו-edge-management-ui-static) - שרת ניהול (edge-management-server)
- Symas LDAP (apigee-openldap)
- נתב (נתב קצה)
- מעבד הודעות (edge-message-processor)
- שרת Qpid ו-Qpidd (edge-qpid-server ו-apigee-qpidd)
- מסד נתונים של Postgres ו-PostgreSQL (edge-postgres-server ו-apigee-postgresql)
- ZooKeeper (apigee-zookeeper)
- Cassandra (apigee-cassandra)
בקטעים הבאים מוסבר איך להוציא משימוש כל רכיב.
ממשק משתמש חדש של Edge
כדי לעצור ולהסיר את הרכיבים של ממשק המשתמש החדש של Edge ב-dc-1, מזינים את הפקודות הבאות:
/opt/apigee/apigee-service/bin/apigee-service edge-management-ui stop/opt/apigee/apigee-service/bin/apigee-service edge-management-ui uninstall/opt/apigee/apigee-service/bin/apigee-service edge-management-ui-static uninstall
שרת ניהול
כדי להוציא משימוש את שרת הניהול ב-dc-1, מבצעים את השלבים הבאים:
- מפסיקים את שרת הניהול ב-dc-1:
apigee-service edge-management-server stop
- מאתרים את ה-UUID של שרת הניהול שרשום ב-dc-1:
curl -u <AdminEmailID>:'<AdminPassword>' -X GET “http://{MS_IP}:8080/v1/servers?pod=central®ion=dc-1&type=management-server” - סוג השרת שרוצים לבטל את הרישום שלו:
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=management-server®ion=dc-1&pod=central&uuid=UUID&action=remove" - מוחקים את השרת. הערה: אם בשרת הזה מותקנים גם רכיבים אחרים, צריך לבטל את הרישום של כולם לפני שמוחקים את ה-UUID.
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/{UUID} - מסירים את הרכיב Management Server ב-dc-1:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server uninstall
Symas LDAP
בקטע הזה מוסבר איך להוציא משימוש את SymasLDAP ב-dc-1.
הערה: אם יש לכם יותר משני מרכזי נתונים, אפשר לעיין בקטע הגדרות עם יותר משני מרכזי נתונים שבהמשך.
כדי להוציא משימוש את SymasLDAP ב-dc-1, מבצעים את השלבים הבאים:
- מגבים את הצומת dc-1 SymasLDAP לפי השלבים שמפורטים בקטע איך מבצעים גיבוי.
מפסיקים את שכפול הנתונים בין שני מרכזי הנתונים, dc-1 ו-dc-2, על ידי ביצוע השלבים הבאים בשני מרכזי הנתונים.
- בודקים את המצב הנוכחי:
/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 - יוצרים קובץ
break_repl.ldifשמכיל את הפקודות הבאות:dn: olcDatabase={2}mdb,cn=config changetype: modify delete: olcSyncRepl dn: olcDatabase={2}mdb,cn=config changetype: modify delete: olcMirrorMode - מריצים את הפקודה
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"
- בודקים את המצב הנוכחי:
כדי לוודא ש-dc-2 לא משכפל יותר ל-dc-1, אפשר ליצור רשומה ב-LDAP של dc-2 ולוודא שהיא לא מופיעה ב-LDAP של dc-1.
אופציונלי: אתם יכולים לפעול לפי השלבים הבאים כדי ליצור משתמש לקריאה בלבד בצומת dc-2 SymasLDAP, ואז לבדוק אם המשתמש משוכפל או לא. לאחר מכן המשתמש נמחק.
- יוצרים קובץ
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} - מוסיפים משתמש באמצעות הפקודה `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"
- מחפשים את המשתמש ב-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
- מסירים את המשתמש עם הרשאת קריאה בלבד שהוספתם קודם:
/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"
- יוצרים קובץ
- עוצרים את SymasLDAP ב-dc-1:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
- מסירים את הרכיב SymasLDAP ב-dc-1:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap uninstall
נתב
בקטע הזה מוסבר איך להוציא משימוש נתב. למידע נוסף על הסרת הנתב, קראו את המאמר הסרת שרת.
בשלבים הבאים מושבת ה-Router מ-dc-1. אם יש כמה צומתי Router שהוגדרו ב-dc-1, מבצעים את השלבים בכל צומתי Router, אחד אחרי השני.
הערה: כאן מניחים שהיציאה 15999 של הנתב לבדיקת תקינות מוגדרת במאזן העומסים, ושחסימת היציאה 15999 תגרום לכך שלא תהיה גישה לנתב. יכול להיות שתצטרכו גישת root כדי לחסום את היציאה.
כדי להוציא נתב משימוש, מבצעים את השלבים הבאים:
משביתים את יכולת ההגעה (reachability) של הנתבים על ידי חסימת יציאה 15999, שהיא היציאה של בדיקת התקינות. מוודאים שהתנועה בזמן הריצה חסומה במרכז הנתונים הזה:
iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
מוודאים שאפשר לגשת לנתב:
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
- מקבלים את ה-UUID של הנתב, כמו שמתואר בקטע קבלת מזהי UUID.
- מפסיקים את פעולת הנתב:
/opt/apigee/apigee-service/bin/apigee-service edge-router stop
- מציגים את רשימת הפודים של השערים שזמינים בארגון באמצעות הפקודה הבאה:
curl -u <AdminEmailID>:'<AdminPassword>' -X GET "http://{MS_IP}:8080/v1/organizations/{ORG}/pods" - מבטלים את הרישום של סוג השרת:
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=router®ion=dc-1&pod=gateway-1&uuid=UUID&action=remove" - מבטלים את הרישום של השרת:
curl -u <AdminEmailID>:'<AdminPassword>’ -X DELETE http://{MS_IP}:8080/v1/servers/UUID - הסרת ההתקנה של
edge-router: איך מסירים שרת?/opt/apigee/apigee-service/bin/apigee-service edge-router uninstall
- מנקים את הכללים של
iptablesכדי להפעיל את יציאה 15999 החסומה:iptables -F
מעבד בקשות
בקטע הזה מוסבר איך להוציא משימוש את מעבד הבקשות מ-dc-1. מידע נוסף על הסרת מעבד ההודעות מופיע במאמר הסרת שרת.
מכיוון שאנחנו מניחים של-dc-1 יש התקנה מקובצת של 12 צמתים, מוגדרים שני צמתים של מעבד הודעות ב-dc-1. מריצים את הפקודות הבאות בשני הצמתים.
- מקבלים את מזהי ה-UUID של מעבדי ההודעות, כמו שמתואר במאמר בנושא קבלת מזהי UUID.
- עוצרים את מעבד הבקשות:
apigee-service edge-message-processor stop
- מבטלים את הרישום של סוג השרת:
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=message-processor®ion=dc-1&pod=gateway-1&uuid=UUID&action=remove" - ביטול השיוך של סביבה למעבד הבקשות.
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" - מבטלים את הרישום של סוג השרת:
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=message-processor®ion=dc-1&pod=gateway-1&uuid=UUID&action=remove" - מסירים את מעבד הבקשות:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor uninstall
- מבטלים את הרישום של השרת:
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, ולכן צריך לבצע את השלבים הבאים עבור שני הצמתים:
- משיגים את ה-UUID של Qpidd, כמו שמתואר בקטע קבלת מזהי UUID.
- הפסקת השימוש ב-
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 - כדי לקבל רשימה של קבוצות Analytics וקבוצות צרכנים:
curl -u <AdminEmailID>:'<AdminPassword>' -X GET http://{MS_IP}:8080/v1/analytics/groups/ax - מסירים את 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}" - מסירים את 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" - מבטלים את הרישום של שרת Qpid מההתקנה של Edge:
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \ -d "type=qpid-server®ion=dc-1&pod=central&uuid={QPID_UUID}&action=remove" - מסירים את שרת Qpid מההתקנה של Edge:
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID - מפעילים מחדש את כל רכיבי ה-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
- מסירים את 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 הראשי:
- מגבים את הצומת הראשי dc-1 Postgres לפי ההוראות בקישורים הבאים:
- מקבלים את מזהי ה-UUID של שרתי Postgres, כמו שמתואר במאמר בנושא קבלת מזהי UUID.
- ב-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 - בצומת ההמתנה ב-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 למאסטר. כדי להגדיר את הצומת הנותר במצב המתנה, פועלים לפי השלבים הבאים:
- בשרת הראשי החדש, עורכים את קובץ התצורה כדי להגדיר:
PG_MASTER=IP_or_DNS_of_new_PG_MASTER PG_STANDBY=IP_or_DNS_of_PG_STANDBY
- מפעילים שכפול בשרת הראשי החדש:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
אם נשאר יותר מצומת אחד במצב המתנה
- מוסיפים את ההגדרה הבאה בקטע [
/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
- מוודאים שהקובץ /opt/apigee/customer/application/postgresql.properties נמצא בבעלות של
משתמש apigee:
chown apigee:apigee /opt/apigee/customer/application/postgresql.properties
- הפעלה מחדש של
apigee-postgresql:apigee-service apigee-postgresql restart
- משנים את קובץ התצורה
/opt/silent.confומעדכנים את השדהPG_MASTERעם כתובת ה-IP של ה-Postgres master החדש. - מסירים את כל נתוני Postgres הישנים באמצעות הפקודה הבאה:
rm -rf /opt/apigee/data/apigee-postgresql/
- מגדירים רפליקציה בצומת ההמתנה:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
- כדי לוודא ש-Postgres master מוגדר בצורה נכונה, מזינים את הפקודה הבאה ב-dc-2:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
- הסרה והוספה של שרתי Postgresql מקבוצת הניתוח ומקבוצת הצרכנים.
- מסירים את שרת Postgres הישן מקבוצת הניתוח לפי ההוראות במאמר בנושא הסרת שרת Postgres מקבוצת ניתוח.
- מוסיפים שרת postgres חדש לקבוצת הניתוח לפי ההוראות במאמר הוספת שרת Postgres קיים לקבוצת ניתוח.
- מבטלים את הרישום של שרת 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" - מוחקים את שרת postgres הישן מ-dc-1:
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID - עכשיו אפשר להוציא משימוש את ה-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, מבצעים את השלבים הבאים:
- פועלים לפי ההוראות במאמר קבלת מזהי UUID כדי לקבל את מזהי ה-UUID של שרתי Postgres.
- עוצרים את
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 - מסירים ומוסיפים שרתי PostgreSQL מקבוצת הניתוח ומקבוצת הצרכנים.
- מסירים את שרת Postgres הישן מקבוצת הניתוח לפי ההוראות במאמר הסרת שרת Postgres מקבוצת ניתוח.
- מוסיפים שרת Postgres חדש לקבוצת הניתוח לפי ההוראות במאמר הוספת שרת Postgres קיים לקבוצת ניתוח.
- מבטלים את הרישום של שרת 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" - מוחקים את שרת postgres הישן מ-dc-1:
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID - עכשיו אפשר להוציא משימוש את ה-master הישן של 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:
- מגבים את הצמתים dc-1 Cassandra ו-ZooKeeper לפי ההוראות שבקישורים הבאים:
מציגים את מזהי ה-UUID של שרתי ZooKeeper ו-Cassandra במרכז הנתונים שבו צמתים של Cassandra עומדים לצאת משימוש.
apigee-adminapi.sh servers list -r dc-1 -p central -t application-datastore --admin <AdminEmailID> --pwd '<AdminPassword>' --host localhost
- מבטלים את הרישום של סוג השרת:
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®ion=dc-1&pod=central&uuid=UUID&action=remove"
- מבטלים את הרישום של השרת:
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
- מעדכנים את קובץ התצורה כך שכתובות ה-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"
- רשומות קיימות בקובץ התצורה:
- מעדכנים את קובץ התצורה השקט (שעבר שינוי בשלב ה') עם כתובות ה-IP של הצמתים שהוסרו והוצאו משימוש, ומריצים את פרופיל שרת הניהול בכל הצמתים שמארחים שרתי ניהול:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f updated_config_file
- מעדכנים את קובץ התצורה עם כתובות ה-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
- אם Edge Router ו-Message Processor מוגדרים באותו צומת, מזינים:
- מגדירים מחדש את כל צומתי Qpid, עם כתובות ה-IP של הצמתים שהוצאו משימוש שהוסרו מקובץ התגובה:
/opt/apigee/apigee-setup/bin/setup.sh -p qs -f updated_config_file
- מגדירים מחדש את כל צמתי Postgres, ומסירים מקובץ התגובה את כתובות ה-IP של הצמתים שהוצאו משימוש:
/opt/apigee/apigee-setup/bin/setup.sh -p ps -f updated_config_file
- שינוי מרחב המפתחות
system_auth. אם הפעלתם אימות של Cassandra בצומת קיים של Cassandra, אתם צריכים לעדכן את פקטור הרפליקציה של מרחב המפתחותsystem_auth. כדי לעשות את זה, מריצים את הפקודה הבאה:ALTER KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'dc-2': '3'};הפקודה הזו מגדירה את פקטור הרפליקציה ל-
'3', ומציינת שלושה צומתי Cassandra באשכול. משנים את הערך הזה לפי הצורך.אחרי השלמת השלב הזה, הטופולוגיה של Cassandra לא אמורה לכלול את
dc-1באף אחד ממרחבי המפתחות. - מוציאים משימוש את צומתי Cassandra ב-dc-1, אחד אחרי השני.
כדי להוציא משימוש את צומתי Cassandra, מזינים את הפקודה הבאה:
/opt/apigee/apigee-cassandra/bin/nodetool -h cassIP -u cassandra -pw '<AdminPassword>' decommission
- בודקים את החיבור של צמתי Cassandra מ-dc-1 באמצעות אחת מהפקודות הבאות:
/opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p '<AdminPassword>'
או פקודת אימות משנית להפעלה בצומת שהוצא משימוש:
/opt/apigee/apigee-cassandra/bin/nodetool netstats
הפקודה שלמעלה אמורה להחזיר:
Mode: DECOMMISSIONED
- מריצים את פרופיל ה-DS לכל הצמתים של Cassandra ו-ZooKeeper ב-dc-2:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f updated_config_file
- מפסיקים את
apigee-cassandraו-apigee-zookeeperב-dc-1:apigee-service apigee-cassandra stop
apigee-service apigee-zookeeper stop - מסירים את
apigee-cassandraואתapigee-zookeeperב-dc-1:apigee-service apigee-cassandra uninstall
apigee-service apigee-zookeeper uninstall
מחיקת הקישורים מ-dc-1
כדי למחוק את הקישורים מ-dc-1:
- מוחקים את הקישורים מ-dc-1.
- מציגים את כל הפודים הזמינים בארגון:
curl -v -u <AdminEmailID>:'<AdminPassword>' -X GET "http://MS_IP:8080/v1/o/ORG/pods"
- כדי לבדוק אם כל הקישורים הוסרו, צריך לקבל את מזהי ה-UUID של השרתים שמשויכים ל-Pods:
curl -v -u <AdminEmailID>:'<AdminPassword>' \ -X GET "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1/servers"
אם הפקודה הזו לא מחזירה אף UUID, סימן שהשלבים הקודמים הסירו את כל הקישורים, ואפשר לדלג על השלב הבא. אם לא, עוברים לשלב הבא.
- מסירים את כל הקישורים לשרת עבור מזהי ה-UUID שהתקבלו בשלב הקודם:
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
- ביטול השיוך של הארגון ל-pod:
curl -v -u <AdminEmailID>:'<AdminPassword>' "http://MS_IP:8080/v1/o/ORG/pods" -d "action=remove®ion=dc-1&pod=gateway-1" -H "Content-Type: application/x-www-form-urlencoded" -X POST
- מציגים את כל הפודים הזמינים בארגון:
- מוחקים את ה-Pods:
curl -v -u <AdminEmailID>:'<AdminPassword>' "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1" -X DELETE
- מוחקים את האזור.
curl -v -u <AdminEmailID>:'<AdminPassword>' "http://MS_IP:8080/v1/regions/dc-1" -X DELETE
בשלב הזה, סיימתם את תהליך ההוצאה משימוש של dc-1.
נספח
פתרון בעיות
אם אחרי ביצוע השלבים הקודמים עדיין יש שרתים בחלק מה-pods, צריך לבצע את השלבים הבאים כדי לבטל את הרישום של השרתים ולמחוק אותם. הערה: אפשר לשנות את הסוגים ואת ה-pod לפי הצורך.
- משיגים את ה-UUID באמצעות הפקודה הבאה:
apigee-adminapi.sh servers list -r dc-1 -p POD -t --admin <AdminEmailID> --pwd '<AdminPassword>’ --host localhost
- סוג השרת שרוצים לבטל את הרישום שלו:
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MP_IP:8080/v1/servers -d "type=TYPE=REGION=dc-1&pod=POD&uuid=UUID&action=remove"
- מוחקים את השרתים אחד אחרי השני:
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®ion=dc-1
curl -v -u <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=gateway®ion=dc-1curl -v -u <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=analytics®ion=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, מזינים:
/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).לאחר מכן מריצים את השאילתה הבאה כדי לבדוק את הערך המקסימלי של
client_received_start_timestamp:SELECT max(client_received_start_timestamp) FROM "analytics"."$org.$env.fact" LIMIT 1;
צומתי Cassandra/ZooKeeper
יומנים
בודקים את היומנים ברכיבים כדי לוודא שאין שגיאות.
- בשרת הראשי החדש, עורכים את קובץ התצורה כדי להגדיר: