לפעמים צריך להוציא משימוש מרכז נתונים. לדוגמה, אם משדרגים את מערכת ההפעלה, צריך להתקין את מערכת ההפעלה החדשה במרכז נתונים חדש ואז להוציא משימוש את מרכז הנתונים הישן. בקטעים הבאים מוצגת דוגמה להוצאה משימוש של מרכז נתונים, שבה יש שני מרכזי נתונים, dc-1 ו-dc-2, בהתקנה מקובצת של 12 צמתים:
- dc-1 הוא מרכז הנתונים שיוצא משימוש.
- dc-2 הוא מרכז נתונים שני, שמשמש בתהליך הוצאה משירות.
אם אתם משדרגים את מערכת ההפעלה, dc-2 יכול להיות מרכז הנתונים שבו התקנתם את הגרסה החדשה של מערכת ההפעלה (OS). עם זאת, לא צריך להתקין מערכת הפעלה חדשה כדי להוציא משימוש מרכז נתונים.
שיקולים לפני הוצאה משימוש של מרכז נתונים
כשמוציאים משימוש מרכז נתונים, חשוב לזכור את השיקולים הבאים:
- חסימת כל התעבורה של זמן הריצה והניהול למרכז הנתונים שמוציאים משימוש והפנייתה למרכזי נתונים אחרים.
- אחרי הוצאת מרכז הנתונים משימוש, הקיבולת של אשכול Apigee תפחת. כדי לפצות על כך, כדאי להגדיל את הקיבולת במרכזי הנתונים שנותרו או להוסיף מרכזי נתונים לאחר הוצאתם משימוש.
- במהלך תהליך ההוצאה משימוש, יש סיכון לאובדן נתונים אנליטיים, בהתאם לרכיבי הניתוח שמותקנים במרכז הנתונים שמוצא משימוש. מידע נוסף זמין במאמר הוספה או הסרה של צמתי 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-ui)
- שרת ניהול (edge-management-server)
- Symas LDAP (apigee-openldap)
- נתב (נתב קצה)
- Message Processor (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
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
נתב
בקטע הזה מוסבר איך להוציא משימוש נתב. מידע נוסף על הסרת הנתב מופיע במאמר הסרת שרת.
בשלבים הבאים משביתים את הנתב מ-dc-1. אם מוגדרים כמה צמתי נתב ב-dc-1, מבצעים את השלבים בכל צומת נתב, אחד בכל פעם.
הערה: כאן מניחים שיציאת בדיקת התקינות 15999 של הנתב מוגדרת במאזן העומסים, ושחסימת יציאה 15999 תגרום לכך שלא תהיה אפשרות להגיע לנתב. יכול להיות שתצטרכו גישת root כדי לחסום את היציאה.
כדי להוציא נתב משירות, פועלים לפי השלבים הבאים:
משביתים את הגישה לנתבים על ידי חסימת יציאה 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
- כדי להציג את רשימת ה-pods של השערים שזמינים בארגון, מריצים את הפקודה הבאה:
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
).
ב-dc-1 מוגדרים שני צמתי Qpid, ולכן צריך לבצע את השלבים הבאים עבור שני הצמתים:
- מקבלים את המזהה הייחודי האוניברסלי (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 בכל הצמתים כדי לוודא שהשינוי נקלט על ידי הרכיבים האלה:
$ /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 master:
- מגבים את הצומת הראשי 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 שנותרו לשרת ראשי. כדי להגדיר את צומת ההמתנה שנותר, פועלים לפי השלבים הבאים:
- בשרת הראשי החדש, עורכים את קובץ התצורה כדי להגדיר:
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 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 standby
הערה: במסמכי התיעוד של התקנת אשכול עם 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
- עכשיו אפשר להוציא משימוש את ה-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 באשכול. משנים את הערך לפי הצורך.אחרי השלמת השלב הזה, לא אמור להיות
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.
- הצגת רשימה של כל הפודים שזמינים בארגון:
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-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
יומנים
בודקים את היומנים ברכיבים כדי לוודא שאין שגיאות.
- בשרת הראשי החדש, עורכים את קובץ התצורה כדי להגדיר: