לפעמים צריך להוציא משימוש מרכז נתונים. לדוגמה, אם אתם משפרים את מערכת ההפעלה, עליכם להתקין את מערכת ההפעלה החדשה במרכז נתונים חדש ולאחר מכן להוציא משימוש את מרכז הנתונים הישן. בקטעים הבאים מוצגת דוגמה להוצאה משימוש של מרכז נתונים, שבו יש שני מרכזי נתונים, 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. מידע נוסף על גיבוי זמין במאמר גיבוי ושחזור.
- לפני ההוצאה משימוש, מוודאים ש-Edge פועל באמצעות הפקודה:
/opt/apigee/apigee-service/bin/apigee-all status
- מוודאים שאין תנועה כרגע בסביבת זמן הריצה במרכז הנתונים שאתם מסיימים את השימוש בו.
סדר ההוצאה משימוש של רכיבים
אם מתקינים את Edge for Private Cloud בכמה צמתים, צריך להוציא משימוש את רכיבי Edge בצמתים האלה לפי הסדר הבא:
- ממשק המשתמש של Edge (edge-ui)
- שרת ניהול (edge-management-server)
- OpenLDAP (apigee-openldap)
- נתב (edge-router)
- מעבד בקשות (edge-message-processor)
- Qpid Server ו-Qpidd (edge-qpid-server ו-apigee-qpidd)
- Postgres ומסד נתונים של PostgreSQL (edge-postgres-server ו-apigee-postgresql)
- ZooKeeper (apigee-zookeeper)
- 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, מבצעים את השלבים הבאים:
- עוצרים את שרת הניהול ב-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}
- מסירים את הרכיב של שרת הניהול ב-dc-1:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server uninstall
Open LDAP
בקטע הזה נסביר איך להוציא משימוש את OpenLDAP ב-dc-1.
הערה: אם יש לכם יותר משני מרכזי נתונים, תוכלו לעיין בקטע הגדרות עם יותר משני מרכזי נתונים שבהמשך.
כדי להוציא משימוש את OpenLDAP ב-dc-1, מבצעים את השלבים הבאים:
- מבצעים גיבוי של צומת OpenLDAP dc-1 לפי השלבים המפורטים בקטע איך מבצעים גיבוי.
משביתים את הרפליקה של הנתונים בין שני מרכזי הנתונים, dc-1 ו-dc-2, על ידי ביצוע השלבים הבאים בשני מרכזי הנתונים.
- בודקים את המצב הנוכחי:
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}bdb,cn=config changetype: modify delete: olcSyncRepl dn: olcDatabase={2}bdb,cn=config changetype: modify delete: olcMirrorMode
- מריצים את הפקודה
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"
- בודקים את המצב הנוכחי:
כדי לוודא ש-dc-2 לא מבצע יותר רפליקה ל-dc-1, יוצרים רשומה ב-LDAP של dc-2 ומקפידים שהיא לא תופיע ב-LDAP של dc-1.
לחלופין, אפשר לפעול לפי השלבים הבאים כדי ליצור משתמש לקריאה בלבד בצומת dc-2 של OpenLDAP, ולאחר מכן לבדוק אם המשתמש עובר רפליקה או לא. לאחר מכן המשתמש נמחק.
- יוצרים קובץ
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:
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 כבר לא מבצעות רפליקה:
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
- מסירים את המשתמש עם הרשאת קריאה בלבד שהוספתם קודם:
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"
- יוצרים קובץ
- עוצרים את OpenLDAP ב-dc-1:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
- מסירים את הרכיב OpenLDAP ב-dc-1:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap uninstall
נתב
בקטע הזה נסביר איך להוציא משימוש נתב. למידע נוסף על הסרת הנתב, אפשר לעיין במאמר הסרת שרת.
בשלבים הבאים מבטלים את ההפעלה של הנתב ב-dc-1. אם יש כמה צמתים של נתב שמוגדרים ב-dc-1, צריך לבצע את השלבים בכל צומת של נתב, אחד אחרי השני.
הערה: כאן נניח שיציאת בדיקת התקינות של הנתב, 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
מעבד בקשות
בקטע הזה מוסבר איך להוציא משימוש את Message Processor מ-dc-1. מידע נוסף על הסרת Message Processor זמין במאמר הסרת שרת.
מאחר שמניחים שב-dc-1 יש התקנה באשכול של 12 צמתים, יש שני צמתים של Message Processor שמוגדרים ב-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, חשוב לקדם אחד מהצומתים הזמינים במצב המתנה כמאסטר 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. הוצאתם משימוש את המאסטר הקיים והעליתם לאחד מהצמתים הנותרים של postgres standby למאסטר. מגדירים את צומת המתנה שנותר לפי השלבים הבאים:
- במאסטר החדש, עורכים את קובץ התצורה כדי להגדיר:
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. - מסירים נתונים ישנים של Postgres באמצעות הפקודה הבאה:
rm -rf /opt/apigee/data/apigee-postgresql/
- מגדירים רפליקציה בצומת המתנה:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
- כדי לוודא שמאסטר של Postgres מוגדר בצורה נכונה, מזינים את הפקודה הבאה ב-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 צמתים, הצומת postgresql של dc-1 מוצג כמאסטר, אבל למען הנוחות, בקטע הזה נניח שהצומת postgresql של dc-1 הוא סטנדביי והצומת postgresql של dc-2 הוא מאסטר.
כדי להוציא משימוש את Postgres standby, מבצעים את הפעולות הבאות:
- מקבלים את מזהי ה-UUID של שרתי Postgres לפי ההוראות שמפורטות בקטע קבלת מזהי UUID.
- עוצרים את
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
- עכשיו אפשר להוציא משימוש את המאסטר הישן של 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:
- מגבים את הצמתים של Cassandra ו-ZooKeeper ב-dc-1 לפי ההוראות שבקישורים הבאים:
מציינים את מזהי ה-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 באשכול. משנים את הערך הזה לפי הצורך.אחרי השלמת השלב הזה, לא אמור להיות
dc-1
באף אחד ממרחב המפתחות של טופולוגיית Cassandra. - משביתים את צמתים של 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.
- הצגת רשימה של כל ה-pods הזמינים בארגון:
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 הזמינים בארגון:
- מוחקים את ה-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.
נספח
פתרון בעיות
אם אחרי ביצוע השלבים הקודמים עדיין יש שרתי pod מסוימים, מבצעים את השלבים הבאים כדי לבטל את הרישום של השרתים ולמחוק אותם. הערה: משנים את הסוגים ואת ה-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-1
curl -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
יומנים
בודקים את היומנים של הרכיבים כדי לוודא שאין שגיאות.
- במאסטר החדש, עורכים את קובץ התצורה כדי להגדיר: