Edge for Private Cloud גרסה 4.17.09
במסמך הזה מוסבר איך להוסיף מרכז נתונים (נקרא גם אזור) לנתונים קיימים במרכז.
שיקולים לפני הוספה של מרכז נתונים
לפני שמתקינים מרכז נתונים, צריך להבין איך להגדיר OpenLDAP, שרתי ZoKeeper, Cassandra ו-Postgres בכל מרכזי הנתונים. צריך גם לוודא היציאות הדרושות פתוחות בין הצמתים בשני מרכזי הנתונים.
- OpenLDAP
לכל מרכז נתונים יש שרת OpenLDAP משלו שמוגדר עם הפעלת רפליקציות. אחרי ש להתקין את מרכז הנתונים החדש, עליך להגדיר את OpenLDAP להשתמש ברפליקציה, ועליך להגדיר להגדיר מחדש את שרת OpenLDAP במרכז הנתונים הקיים כדי להשתמש ברפליקציה. - ZooKeeper
לנכס ZK_HOSTS עבור שני מרכזי הנתונים, לציין את כתובות ה-IP או את שמות ה-DNS של כל הצמתים של ZoomKeeper משני הנתונים במרכז, באותו סדר, ומסמנים צמתים כלשהם באמצעות הצירוף ':observer'. צמתים ללא מגביל ' :observer' נקראים 'מצביעים'. חייב להיות לך אי-זוגי מספר ה"מצביעים" בהגדרות האישיות שלכם.
בטופולוגיה הזו, המארח של ZoneKeeper במארח 9 הוא הצופה:
בקובץ התצורה לדוגמה שמוצג למטה, צומת 9 מתויג עם מגביל ":observer" כך שיהיו לכם חמישה מצביעים: צמתים 1, 2, 3, 7 ו-8.
ל-ZK_CLIENT_HOSTS מאפיין לכל מרכז נתונים, לציין את כתובות ה-IP או את שמות ה-DNS של ה-zooKeeper בלבד. צמתים במרכז הנתונים, באותו סדר, עבור כל הצמתים שלzoKeeper בנתונים במרכז. - קסנדרה
כל מרכזי הנתונים חייבים להיות בעלי אותו מספר צמתים של Cassandra.
עבור CASS_HOSTS לכל נתונים צריך לציין את כל כתובות ה-IP של Cassandra (לא שמות DNS) לשני הנתונים שלנו. במרכז נתונים 1, קודם כול צריך לרשום את הצמתים של Cassandra במרכז הנתונים הזה. למרכז נתונים 2, רשום קודם את הצמתים של 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 של כל מרכז נתונים ישמש בתור ערך הבסיס השרת. במודל הפריסה הזה, ההגדרה של 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
ביטול הרישום של צומת Standby Postgres ישן ב-dc-1
- דרישות שקע
עליכם לוודא שהיציאות הדרושות פתוחות בין הצמתים בשני מרכזי הנתונים. לתרשים יציאות, ראו התקנה דרישות.
עדכון של מרכז הנתונים הקיים
כדי להוסיף מרכז נתונים צריך לבצע את השלבים להתקנה ולהגדרה של הנתונים החדשים. במרכז הנתונים, אבל צריך גם לעדכן את הצמתים במרכז הנתונים המקורי. האלה נדרשים שינויים מכיוון שאתם מוסיפים צמתים חדשים של Cassandra ו-ZooKeeper צריך להיות נגיש למרכז הנתונים הקיים, וצריך להגדיר מחדש יש לפתוח את LDAP כדי להשתמש ברפליקציה.
יצירת קובצי התצורה
למטה מוצגים קובצי התצורה השקטים של שני מרכזי הנתונים, שבהם כל נתונים במרכז יש 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 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 SMTPMAILFROM="My Company <myco@company.com>" |
# 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 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 SMTPMAILFROM="My Company <myco@company.com>" |
התהליך להוספת מרכז נתונים חדש
בתהליך הזה, השמות של מרכזי הנתונים:
- dc-1: מרכז הנתונים הקיים
- dc-2: מרכז הנתונים החדש
- ב-dc-1, מריצים מחדש את setup.sh בצמתים של Cassandra המקוריים עם ה-dc-1 החדש
confiig שכולל את צומתי 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 בכל הצמתים. מידע נוסף זמין במאמר התקנת כלי ההגדרה של Edge apigee-setup מידע.
- ב-dc-2, מתקינים את Cassandra ו-ZooKeeper בצמתים המתאימים:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2 - ב-dc-2, מריצים את הפקודה rebuild בכל הצמתים של Cassandra, לציון
שם האזור של dc-1:
> /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP בנייה מחדש dc-1 - ב-dc-2, מתקינים את שרת הניהול בצומת המתאים:
> /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2 - בצומת שרת הניהול ב-dc-2, מתקינים
apigee-provision, שיתקין
כלי השירות apigee-adminapi.sh:
> /opt/apigee/apigee-service/bin/apigee-service apigee-provision installation - ב-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 לצמתים של Postgres. הצומת של Postgres ב-dc-1 הוא
מאסטר, והצומת Postgres ב-dc-2 הוא השרת ההמתנה.
הערה: אם dc-1 כבר מוגדר שיהיו בו שני Postgres וצמתים שפועלים במצב מאסטר/המתנה, ובמסגרת התהליך הזה, משתמשים צומת ראשי של Postgres ב-dc-1 כמאסטר, ו צומת ששולח דואר ב-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-waitby-f configFile
- בצומת הראשי ב-dc-1, עורכים את קובץ התצורה כדי להגדיר:
- ב-dc-1, מעדכנים את הגדרות ניתוח הנתונים ומגדירים את הארגונים.
- בצומת שרת הניהול של dc-1, מקבלים את ה-UUID של ה-Postgres
צומת:
> שרתי apigee-adminapi.sh list -r dc-1 -p analytics -t postgres-server --admin adminEmail --pwd adminPword --host localhost
המזהה הייחודי (UUID) מופיע בסוף הנתונים שמוחזרים. שומרים את הערך.
הערה: אם מוגדר ב-dc-1 שני צומתי Postgres שפועלים בו במצב מאסטר/המתנה מופיעות שתי כתובות IP ומזהי UUID בפלט. שומרים את שני המזהים הייחודיים. לפי כתובות ה-IP, אפשר לקבוע איזה UUID מיועד למאסטר הצומת של מצב המתנה. - בצומת שרת הניהול של dc-2, מקבלים את ה-UUID של ה-Postgres כפי שמוצג בשלב הקודם. שומרים את הערך.
- בצומת שרת הניהול של dc-1, קובעים את השם של
Analytics וקבוצות צרכנים. הרבה מהפקודות הבאות דורשות את המידע הזה.
כברירת מחדל, השם של קבוצת ניתוח הנתונים הוא axgroup-001 ושם הצרכן הקבוצה היא קבוצת צרכנים-001. בקובץ התצורה השקט של אזור ניתן להגדיר את השם בקבוצת ניתוח הנתונים באמצעות הנכס AXGROUP.
אם אתם לא בטוחים לגבי השמות של קבוצות הצרכנים וניתוח הנתונים, תוכלו להיעזר בפרטים הבאים הפקודה כדי להציג אותם:
> ניתוח נתונים של apigee-adminapi.sh רשימת קבוצות --admin adminEmail --pwd adminPword --host localhost
הפקודה הזו מחזירה את השם של קבוצת Analytics בשדה השם, ואת השם של קבוצת הצרכנים בשדה 'קבוצות צרכנים'. - בצומת שרת הניהול של dc-1, מסירים את ה-Postgres הקיימים
השרת מקבוצת ניתוח הנתונים:
- מסירים את הצומת Postgres מקבוצת הצרכנים:
> apigee-adminapi.sh קבוצות ניתוח נתונים מסוג consumer_groups datastores remove -g axgroup-001 -c consumer-group-001 -u UUID -Y --admin adminEmail --pwd adminPword – מארח מקומי
אם dc-1 מוגדר כך שיפעלו שני צומתי Postgres מצב מאסטר/מצב המתנה, יש להסיר את שניהם:
> apigee-adminapi.sh קבוצות ניתוח נתונים מסוג 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 Google Analytics groups postgres_server remove -g axgroup-001 -u UUID -Y --admin adminEmail --pwd adminPword --host localhost
אם ב-dc-1 מוגדרים שני צומתי Postgres שפועלים במצב מאסטר/המתנה, מסירים את שתיהן:
> apigee-adminapi.sh קבוצות ניתוח נתונים postgres_server remove -g axgroup-001 -u UUID1,UUID2 – Y --admin adminEmail --pwd adminPword – מארח מקומי
- מסירים את הצומת Postgres מקבוצת הצרכנים:
-
בצומת שרת הניהול של dc-1, מוסיפים את המאסטר או ההמתנה החדשים
שליחת שרתים לקבוצת ניתוח הנתונים:
- מוסיפים את שני שרתי Postgres לקבוצת ניתוח הנתונים:
> apigee-adminapi.sh קבוצות ניתוח נתונים postgres_server add -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail --pwd adminPword --host localhost
כאשר UUID_1 תואם לצומת Postgres הראשי ב dc-1 ו-UUID_2 תואמים למצב ההמתנה להודעות אימייל ב-dc-2. - הוספת שרתי PG לקבוצת הצרכנים כמאסטר או כהמתנה:
> apigee-adminapi.sh קבוצות ניתוח נתונים create_groups datastores add -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" --admin adminEmail --pwd adminPword – מארח מקומי
- מוסיפים את שני שרתי Postgres לקבוצת ניתוח הנתונים:
- מוסיפים את שרתי ה-Qpid מ-dc-2 לקבוצת ניתוח הנתונים:
- בצומת שרת הניהול של dc-1, מקבלים את מזהי ה-UUID של ה-Qpid
צמתים ב-dc-2:
> apigee-adminapi.sh Server list -r dc-2 -p Central -t qpid-server --admin adminEmail --pwd adminPword --host localhost
מזהי UUID מופיעים בסוף הנתונים שהוחזרו. שומרים את הערכים האלה. - בצומת שרת הניהול של dc-1, מוסיפים את צומתי ה-Qpid
קבוצת ניתוח נתונים:
>apigee-adminapi.sh קבוצות ניתוח נתונים qpid_server add -g axgroup-001 -u "UUID_1 UUID_2" --admin adminEmail --pwd adminPword --host localhost - בצומת שרת הניהול של dc-1, מוסיפים את צומתי ה-Qpid
קבוצת צרכנים:
> apigee-adminapi.sh קבוצות ניתוח נתונים לצרכנים מוסיפים -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" --admin adminEmail --pwd adminPword – host Localhost
- בצומת שרת הניהול של dc-1, מקבלים את מזהי ה-UUID של ה-Qpid
צמתים ב-dc-2:
- ביטול הרישום ומחיקה של שרת ההמתנה הישן של Postgres מ-dc-1:
- ביטול הרישום של שרת ההמתנה הקיים dc-1 ל-Postgres:
> apigee-adminapi.sh שרתי רישום -u UUID -r dc-1 -p analytics -t postgres-server -Y --admin adminEmail --pwd adminPword --host localhost
כאשר UUID הוא מצב ההמתנה הישן צומת Postgres ב-dc-1. - מחיקת שרת ההמתנה הקיים dc-1 Postgres:
הערה: הפקודה הזו לא מסירה את הצומת של שרת Postgres. הוא מסיר אותו רק מרשימת צמתים של Edge. אפשר להסיר את Postgres מאוחר יותר דרך במקרה הצורך.
> apigee-adminapi.sh שרתים למחוק -u UUID --admin adminEmail --pwd adminPword – מארח מקומי
- ביטול הרישום של שרת ההמתנה הקיים dc-1 ל-Postgres:
- בצומת שרת הניהול של dc-1, מקבלים את ה-UUID של ה-Postgres
צומת:
- יש לעדכן את מרחבי המפתחות של Cassandra עם גורם הרפליקציה הנכון לשני מרכזי הנתונים. שלך
צריך להריץ את השלב הזה רק פעם אחת בכל שרת Cassandra בכל מרכז הנתונים:
הערה: הפקודות הבאות מגדירות את גורם הרפליקציה ל-3, דבר שמציין שלושה צמתים של Cassandra באשכול. משנים את הערך הזה לפי הצורך בהתקנה.- הפעלת הכלי Cassandra cqlsh:
> /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP - מריצים את פקודות ה-CQL הבאות באמצעות הפקודה cqlsh>. להגדרת רפליקציה
רמות במרחבי המפתחות של Cassandra:
- cqlsh> החלפה KEYSPACE 'אזור זהות' עם רפליקה = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- cqlsh> מפתח חלופי 'system_traces' עם רפליקה = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- כדי להציג את מרחבי המקשים, משתמשים בפקודה:
cqlsh> בחר * מתוך system.schema_keyspaces; - יציאה מ-cqlsh:
cqlsh> יציאה
- הפעלת הכלי Cassandra cqlsh:
- מריצים את פקודת ה-Nodetool הבאה על כל הצמתים של Cassandra ב-dc-1 כדי לפנות מקום בזיכרון:
> /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP ניקוי - לכל ארגון ולכל סביבה שבה רוצים לתמוך בנתונים
Center:
- בצומת שרת הניהול של dc-1, מוסיפים את ה-MP_POD החדש אל
ארגון:
> apigee-adminapi.sh קבוצות של ארגונים add -o orgName -r dc-2 -p gateway-2 --admin adminEmail --pwd adminPword --host Localhost
כאשר gateway-2 הוא שם רצף השער של השער כפי שמוגדר ב-MP_POD בקובץ התצורה dc-2. - הוספה של מעבדי ההודעות החדשים לארגון ולסביבה:
- בצומת שרת הניהול של dc-2, מקבלים את מזהי ה-UUID של
צמתים של מעבד הודעות ב-dc-2:
> apigee-adminapi.sh Server list -r dc-2 -p gateway-2 -t מעבד הודעות - מנהל מערכת adminEmail --pwd adminPword --host localhost
מזהי UUID מופיעים בסוף הנתונים שהוחזרו. שומרים את הערכים האלה. - בצומת שרת הניהול של dc-1, לכל מעבד הודעות
ב-dc-2, מוסיפים את מעבד ההודעות לסביבה עבור הארגון:
> ארגונים ב-apigee-adminapi.sh שרתי envs מוסיפים -o orgName -e envName -u UUID – admin adminEmail --pwd adminPword – host Localhost
- בצומת שרת הניהול של dc-2, מקבלים את מזהי ה-UUID של
צמתים של מעבד הודעות ב-dc-2:
- בצומת שרת הניהול של dc-1, בודקים את הארגון:
> apigee-adminapi.sh orgs API פריסות -o orgName -a apiProxyName --admin adminEmail --pwd adminPword --host Localhost
כאשר apiProxyName הוא השם של שרת proxy ל-API שנפרס של הארגון.
- בצומת שרת הניהול של dc-1, מוסיפים את ה-MP_POD החדש אל
ארגון: