Edge for Private Cloud גרסה 4.17.01
במסמך הזה מוסבר איך להוסיף מרכז נתונים (שנקרא גם אזור) למרכז נתונים קיים.
נקודות שחשוב לשים לב אליהן לפני שמוסיפים מרכז נתונים
לפני שמוסיפים מרכז נתונים, צריך להבין איך מגדירים את שרתי OpenLDAP, ZooKeeper, Cassandra ו-Postgres במרכזי הנתונים. בנוסף, צריך לוודא שהיציאות הנדרשות פתוחות בין הצמתים בשני מרכזי הנתונים.
- OpenLDAP
לכל מרכז נתונים יש שרת OpenLDAP משלו, שמוגדר עם רפליקציה מופעלת. כשמתקינים את מרכז הנתונים החדש, צריך להגדיר את OpenLDAP כך שישתמש בשכפול, ולהגדיר מחדש את שרת OpenLDAP במרכז הנתונים הקיים כך שישתמש בשכפול. - ZooKeeper
במאפיין ZK_HOSTS של שני מרכזי הנתונים, מציינים את כתובות ה-IP או שמות ה-DNS של כל צומתי ZooKeeper משני מרכזי הנתונים, באותו סדר, ומסמנים את כל הצמתים עם המשנה ":observer". צמתים בלי המאפיין ":observer" נקראים "מצביעים". מספר "המצביעים" בהגדרות חייב להיות אי-זוגי.
בטופולוגיה הזו, המארח של ZooKeeper במארח 9 הוא הצופה:

בקובץ התצורה לדוגמה שמוצג בהמשך, צומת 9 מתויג עם המשנה ":observer" כך שיש חמישה מצביעים: צמתים 1, 2, 3, 7 ו-8.
במאפיין ZK_CLIENT_HOSTS של כל מרכז נתונים, מציינים את כתובות ה-IP או שמות ה-DNS של צומתי ZooKeeper במרכז הנתונים, באותו סדר, לכל צומתי ZooKeeper במרכז הנתונים. - Cassandra
בכל מרכזי הנתונים צריך להיות אותו מספר של צומתי Cassandra.
ב-CASS_HOSTS לכל מרכז נתונים, חשוב לציין את כל כתובות ה-IP של Cassandra (לא שמות DNS) לשני מרכזי הנתונים. במרכז נתונים 1, קודם מפרטים את צומתי Cassandra במרכז הנתונים הזה. במרכז הנתונים השני, קודם מפרטים את צומתי Cassandra במרכז הנתונים הזה. צריך לרשום את צומתי Cassandra באותו סדר בכל צומתי Cassandra במרכז הנתונים.
לכל צומתי Cassandra חייבת להיות הסיומת ':<d>,<r>', לדוגמה '<ip>:1,1 = מרכז נתונים 1 ומתלה/אזור זמינות 1 ו-'<ip>:2,1 = מרכז נתונים 2 ומתלה/אזור זמינות 1.
לדוגמה, "192.168.124.201:1,1 192.168.124.202:1,1 192.168.124.203:1,1 192.168.124.204:2,1 192.168.124.205:2,1 192.168.124.206:2,1"
הצומת הראשון במדף/אזור זמינות 1 של כל מרכז נתונים ישמש כשרת ה-seed. במודל הפריסה הזה, ההגדרה של Cassandra תיראה כך:

-
Postgres
כברירת מחדל, Edge מתקין את כל צומתי Postgres במצב מאסטר. עם זאת, אם יש לכם כמה מרכזי נתונים, אתם מגדירים צומתי Postgres לשימוש בשכפול מאסטר-המתנה, כך שאם צומת המאסטר נכשל, צומת ההמתנה יכול להמשיך לשרת את התנועה. בדרך כלל, מגדירים את שרת המאסטר של Postgres במרכז נתונים אחד, ואת השרת במצב המתנה במרכז הנתונים השני.
אם מרכז הנתונים הקיים כבר מוגדר כך ששני צומתי Postgres פועלים במצב מאסטר/המתנה, אז כחלק מהתהליך הזה, מבטלים את הרישום של צומת ההמתנה הקיים ומחליפים אותו בצומת המתנה במרכז הנתונים החדש.
בטבלה הבאה מוצגות הגדרות Postgres לפני ואחרי בשני התרחישים:
לפני
אחרי
צומת Postgres ראשי יחיד ב-dc-1
צומת Postgres ראשי ב-dc-1
צומת Postgres במצב המתנה ב-dc-2
צומת Postgres ראשי ב-dc-1
צומת Postgres במצב המתנה ב-dc-1
צומת Postgres ראשי ב-dc-1
צומת Postgres במצב המתנה ב-dc-2
ביטול הרישום של צומת ה-Postgres הישן במצב המתנה ב-dc-1
- דרישות לגבי יציאות
צריך לוודא שהיציאות הנדרשות פתוחות בין הצמתים בשני מרכזי הנתונים. תרשים של היציאות מופיע במאמר דרישות ההתקנה.
עדכון מרכז הנתונים הקיים
כדי להוסיף מרכז נתונים, צריך לבצע את השלבים להתקנה ולהגדרה של הצמתים החדשים של מרכז הנתונים, אבל צריך גם לעדכן את הצמתים במרכז הנתונים המקורי. השינויים האלה נדרשים כי אתם מוסיפים צומתי Cassandra ו-ZooKeeper חדשים במרכז הנתונים החדש, שצריכים להיות נגישים למרכז הנתונים הקיים, ואתם צריכים להגדיר מחדש את OpenLDAP כך שישתמש ברפליקציה.
יצירת קובצי התצורה
בהמשך מוצגים קובצי התצורה השקטים של שני מרכזי הנתונים, כאשר לכל מרכז נתונים יש 6 צמתים, כמו שמוצג בטופולוגיות התקנה. שימו לב שקובץ התצורה של dc-1 מוסיף הגדרות נוספות ל:
- להגדיר את OpenLDAP עם שכפול בשני צומתי OpenLDAP.
- מוסיפים את הצמתים החדשים של Cassandra ו-ZooKeeper מ-dc-2 לקובץ התצורה של dc-1.
# Datacenter 1 IP1=IPorDNSnameOfNode1 IP2=IPorDNSnameOfNode2 IP3=IPorDNSnameOfNode3 IP7=IPorDNSnameOfNode7 IP8=IPorDNSnameOfNode8 IP9=IPorDNSnameOfNode9 HOSTIP=$(hostname -i) MSIP=$IP1 ADMIN_EMAIL=opdk@google.com APIGEE_ADMINPW=Secret123 LICENSE_FILE=/tmp/license.txt USE_LDAP_REMOTE_HOST=n LDAP_TYPE=2 LDAP_SID=1 LDAP_PEER=$IP7 APIGEE_LDAPPW=secret BIND_ON_ALL_INTERFACES=y MP_POD=gateway-1 REGION=dc-1 ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3" # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1 $IP7:2,1 $IP8:2,1 $IP9:2,1" SKIP_SMTP=n SMTPHOST=smtp.example.com SMTPUSER=smtp@example.com SMTPPASSWORD=smtppwd SMTPSSL=n SMTPPORT=25 |
# Datacenter 2 IP1=IPorDNSnameOfNode1 IP2=IPorDNSnameOfNode2 IP3=IPorDNSnameOfNode3 IP7=IPorDNSnameOfNode7 IP8=IPorDNSnameOfNode8 IP9=IPorDNSnameOfNode9 HOSTIP=$(hostname -i) MSIP=$IP7 ADMIN_EMAIL=opdk@google.com APIGEE_ADMINPW=Secret123 LICENSE_FILE=/tmp/license.txt USE_LDAP_REMOTE_HOST=n LDAP_TYPE=2 LDAP_SID=2 LDAP_PEER=$IP1 APIGEE_LDAPPW=secret BIND_ON_ALL_INTERFACES=y MP_POD=gateway-2 REGION=dc-2 ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9" # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP7:2,1 $IP8:2,1 $IP9:2,1 $IP1:1,1 $IP2:1,1 $IP3:1,1" SKIP_SMTP=n SMTPHOST=smtp.example.com SMTPUSER=smtp@example.com SMTPPASSWORD=smtppwd SMTPSSL=n SMTPPORT=25 |
הוספת מרכז נתונים חדש
בפרוצדורה הזו, השמות של מרכזי הנתונים הם:
- dc-1: מרכז הנתונים הקיים
- dc-2: מרכז הנתונים החדש
- ב-dc-1, מריצים מחדש את setup.sh בצומתי Cassandra המקוריים עם קובץ התצורה החדש של dc-1 שכולל את צומתי Cassandra מ-dc-2:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1 - ב-dc-1, מריצים מחדש את setup.sh בצומת של שרת הניהול:
> /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1 - ב-dc-2, מתקינים את apigee-setup בכל הצמתים. מידע נוסף זמין במאמר התקנת כלי השירות apigee-setup של Edge.
- ב-dc-2, מתקינים את Cassandra ו-ZooKeeper בצמתים המתאימים:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2 - ב-dc-2, מריצים את פקודת הבנייה מחדש בכל צומתי Cassandra, ומציינים את שם האזור של dc-1:
> /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP rebuild dc-1 - ב-dc-2, מתקינים את שרת הניהול בצומת המתאים:
> /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2 - ב-dc-2, מתקינים את הנתבים ואת מעבדי הבקשות בצמתים המתאימים:
> /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2 - ב-dc-2, מתקינים את Qpid בצמתים המתאימים:
> /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2 - ב-dc-2, מתקינים את Postgres בצומת המתאים:
> /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2 - הגדרת Postgres master/standby לצומתי Postgres. צומת Postgres ב-dc-1 הוא המאסטר, וצומת Postgres ב-dc-2 הוא השרת במצב המתנה.
הערה: אם dc-1 כבר מוגדר עם שני צומתי Postgres שפועלים במצב מאסטר/המתנה, כחלק מהתהליך הזה צריך להשתמש בצומת המאסטר הקיים של Postgres ב-dc-1 כמאסטר, ובצומת Postgres ב-dc-2 כשרת ההמתנה. בהמשך התהליך, תבטלו את הרישום של שרת הגיבוי הקיים של Postgres ב-dc-1.- בצומת הראשי ב-dc-1, עורכים את קובץ התצורה כדי להגדיר:
PG_MASTER=IPorDNSofDC1Master
PG_STANDBY=IPorDNSofDC2Standby - מפעילים את השכפול במאסטר החדש:
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle - בצומת ההמתנה ב-dc-2, עורכים את קובץ התצורה כדי להגדיר:
PG_MASTER=IPorDNSofDC1Master
PG_STANDBY=IPorDNSofDC2Standby - בצומת ההמתנה ב-dc-2, עוצרים את השרת ומוחקים את כל נתוני Postgres הקיימים:
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
> rm -rf /opt/apigee/data/apigee-postgresql/
הערה: אם צריך, אפשר לגבות את הנתונים האלה לפני שמוחקים אותם. - מגדירים את צומת ההמתנה ב-dc-2:
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
- בצומת הראשי ב-dc-1, עורכים את קובץ התצורה כדי להגדיר:
- ב-dc-1, מעדכנים את הגדרות Analytics ומגדירים את הארגונים.
- בצומת Management Server של dc-1, מקבלים את ה-UUID של צומת Postgres:
> apigee-adminapi.sh servers list -r dc-1 -p analytics -t postgres-server --admin adminEmail --pwd adminPword --host localhost
ה-UUID מופיע בסוף הנתונים שמוחזרים. שומרים את הערך הזה.
הערה: אם dc-1 מוגדר עם שני צומתי Postgres שפועלים במצב מאסטר/המתנה, יוצגו בפלט שתי כתובות IP ושני מזהי UUID. שומרים את שני מזהי ה-UUID. לפי כתובות ה-IP, אתם אמורים להיות מסוגלים לקבוע איזה UUID שייך לצומת הראשי ואיזה לצומת ההמתנה. - בצומת Management Server של dc-2, מקבלים את ה-UUID של צומת Postgres, כמו שמוצג בשלב הקודם. שומרים את הערך הזה.
- בצומת Management Server של dc-1, קובעים את השם של קבוצות הניתוח והצרכנים. רבות מהפקודות שבהמשך דורשות את המידע הזה.
כברירת מחדל, השם של קבוצת הניתוח הוא axgroup-001, והשם של קבוצת הצרכנים הוא consumer-group-001. בקובץ התצורה השקט של אזור, אפשר להגדיר את השם של קבוצת הניתוח באמצעות המאפיין AXGROUP.
אם אתם לא בטוחים מה השמות של קבוצות הניתוח והצרכנים, אתם יכולים להשתמש בפקודה הבאה כדי להציג אותם:
> apigee-adminapi.sh analytics groups list --admin adminEmail --pwd adminPword --host localhost
הפקודה הזו מחזירה את שם קבוצת הניתוח בשדה name, ואת שם קבוצת הצרכנים בשדה consumer-groups. - בצומת Management Server של dc-1, מסירים את שרת Postgres הקיים מקבוצת הניתוח:
- מסירים את צומת Postgres מקבוצת הצרכנים:
> apigee-adminapi.sh analytics groups consumer_groups datastores remove -g axgroup-001 -c consumer-group-001 -u UUID -Y --admin adminEmail --pwd adminPword --host localhost
אם dc-1 מוגדר עם שני צומתי Postgres שפועלים במצב מאסטר/המתנה, מסירים את שניהם:
> apigee-adminapi.sh analytics groups consumer_groups datastores remove -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" -Y --admin adminEmail --pwd adminPword --host localhost - מסירים את צומת Postgres מקבוצת ניתוח הנתונים:
> apigee-adminapi.sh analytics groups postgres_server remove -g axgroup-001 -u UUID -Y --admin adminEmail --pwd adminPword --host localhost
אם dc-1 מוגדר עם שני צומתי Postgres שפועלים במצב המתנה/מאסטר, מסירים את שניהם:
> apigee-adminapi.sh analytics groups postgres_server remove -g axgroup-001 -u UUID1,UUID2 -Y --admin adminEmail --pwd adminPword --host localhost
- מסירים את צומת Postgres מקבוצת הצרכנים:
-
בצומת Management Server של dc-1, מוסיפים את שרתי ה-Postgres הראשיים/החלופיים החדשים לקבוצת הניתוח:
- מוסיפים את שני שרתי Postgres לקבוצת ניתוח הנתונים:
> apigee-adminapi.sh analytics groups postgres_server add -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail --pwd adminPword --host localhost
כאשר UUID_1 תואם לצומת הראשי של Postgres ב-dc-1, ו-UUID_2 תואם לצומת Postgres במצב המתנה ב-dc-2. - מוסיפים את שרתי ה-PG לקבוצת הצרכנים כשרת ראשי/שרת המתנה:
> apigee-adminapi.sh analytics groups consumer_groups datastores add -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" --admin adminEmail --pwd adminPword --host localhost
- מוסיפים את שני שרתי Postgres לקבוצת ניתוח הנתונים:
- מוסיפים את שרתי Qpid מ-dc-2 לקבוצת הניתוח:
- בצומת Management Server של dc-1, מקבלים את מזהי ה-UUID של צומתי Qpid ב-dc-2:
> apigee-adminapi.sh servers list -r dc-2 -p central -t qpid-server --admin adminEmail --pwd adminPword --host localhost
מזהי ה-UUID מופיעים בסוף הנתונים שהוחזרו. שומרים את הערכים האלה. - בצומת Management Server של dc-1, מוסיפים את צומתי Qpid לקבוצת הניתוח:
>apigee-adminapi.sh analytics groups qpid_server add -g axgroup-001 -u UUID_1 --admin adminEmail --pwd adminPword --host localhost
>apigee-adminapi.sh analytics groups qpid_server add -g axgroup-001 -u UUID_2 --admin adminEmail --pwd adminPword --host localhost - בצומת Management Server של dc-1, מוסיפים את צומתי Qpid לקבוצת הצרכנים:
> apigee-adminapi.sh analytics groups consumer_groups consumers add -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" --admin adminEmail --pwd adminPword --host localhost
- בצומת Management Server של dc-1, מקבלים את מזהי ה-UUID של צומתי Qpid ב-dc-2:
- מבטלים את הרישום של שרת הגיבוי הישן של Postgres מ-dc-1 ומוחקים אותו:
- מבטלים את הרישום של שרת הגיבוי הקיים של Postgres ב-dc-1:
> apigee-adminapi.sh servers deregister -u UUID -r dc-1 -p analytics -t postgres-server -Y --admin adminEmail --pwd adminPword --host localhost
כאשר UUID הוא צומת הגיבוי הישן של Postgres ב-dc-1. - מוחקים את שרת הגיבוי הקיים של Postgres ב-dc-1:
הערה: הפקודה הזו לא מסירה את צומת השרת של Postgres. הוא רק מסיר אותו מרשימת צומתי הקצה. אם צריך, אפשר להסיר את Postgres מהצומת בהמשך.
> apigee-adminapi.sh servers delete -u UUID --admin adminEmail --pwd adminPword --host localhost
- מבטלים את הרישום של שרת הגיבוי הקיים של Postgres ב-dc-1:
- בצומת Management Server של dc-1, מקבלים את ה-UUID של צומת Postgres:
- מעדכנים את מרחבי המפתחות של Cassandra עם פקטור השכפול הנכון לשני מרכזי הנתונים. צריך להריץ את השלב הזה רק פעם אחת בכל שרת Cassandra בכל אחד ממרכזי הנתונים:
הערה: כל הפקודות שבהמשך מגדירות את פקטור הרפליקציה ל-"3", מה שמציין שלושה צומתי Cassandra באשכול. משנים את הערך הזה לפי הצורך בהתקנה.- מפעילים את כלי השירות cqlsh של Cassandra:
> /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP - מריצים את פקודות ה-CQL הבאות בשורת הפקודה "cqlsh>" כדי להגדיר את רמות הרפליקציה של מרחבי המפתחות של Cassandra:
- cqlsh> ALTER KEYSPACE "identityzone" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- cqlsh> ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- מציגים את מרחבי המפתחות באמצעות הפקודה:
cqlsh> select * from system.schema_keyspaces; - יוצאים מ-cqlsh:
cqlsh> exit
- מפעילים את כלי השירות cqlsh של Cassandra:
- מריצים את הפקודה הבאה של nodetool בכל הצמתים של Cassandra ב-dc-1 כדי לפנות זיכרון:
> /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP cleanup - לכל ארגון ולכל סביבה שרוצים לתמוך בהם במרכזי נתונים:
- בצומת של שרת הניהול של dc-1, מוסיפים את MP_POD החדש לארגון:
> apigee-adminapi.sh orgs pods add -o orgName -r dc-2 -p gateway-2 --admin adminEmail --pwd adminPword --host localhost
כאשר gateway-2 הוא השם של פוד השער כפי שהוגדר על ידי המאפיין MP_POD בקובץ התצורה של dc-2. - מוסיפים את מעבדי הבקשות החדשים לארגון ולסביבה:
- בצומת Management Server של dc-2, מקבלים את המזהים הייחודיים האוניברסליים של צומתי מעבד הבקשות ב-dc-2:
> apigee-adminapi.sh servers list -r dc-2 -p gateway-2 -t message-processor --admin adminEmail --pwd adminPword --host localhost
המזהים הייחודיים האוניברסליים מופיעים בסוף הנתונים שהוחזרו. שומרים את הערכים האלה. - בצומת של שרת הניהול של dc-1, לכל מעבד בקשות ב-dc-2, מוסיפים את מעבד הבקשות לסביבה של הארגון:
> apigee-adminapi.sh orgs envs servers add -o orgName -e envName -u UUID --admin adminEmail --pwd adminPword --host localhost
- בצומת Management Server של dc-2, מקבלים את המזהים הייחודיים האוניברסליים של צומתי מעבד הבקשות ב-dc-2:
- בצומת Management Server של dc-1, בודקים את הארגון:
> apigee-adminapi.sh orgs apis deployments -o orgName -a apiProxyName --admin adminEmail --pwd adminPword --host localhost
כאשר apiProxyName הוא השם של שרת proxy ל-API שנפרס בארגון.
- בצומת של שרת הניהול של dc-1, מוסיפים את MP_POD החדש לארגון: