במסמך הזה מוסבר איך להוסיף מרכז נתונים (נקרא גם אזור) לנתונים קיימים במרכז.
שיקולים לפני הוספה של מרכז נתונים
לפני שמתקינים מרכז נתונים, צריך להבין איך להגדיר OpenLDAP, שרתי ZoKeeper, Cassandra ו-Postgres בכל מרכזי הנתונים. צריך גם לוודא היציאות הדרושות פתוחות בין הצמתים בשני מרכזי הנתונים.
- OpenLDAP
לכל מרכז נתונים יש שרת OpenLDAP משלו שמוגדר עם הפעלת רפליקציות. אחרי ש להתקין את מרכז הנתונים החדש, עליך להגדיר את OpenLDAP להשתמש ברפליקציה, ועליך להגדיר להגדיר מחדש את שרת OpenLDAP במרכז הנתונים הקיים כדי להשתמש ברפליקציה.
- ZooKeeper
לנכס
ZK_HOSTS
עבור שני מרכזי הנתונים, לציין את כתובות ה-IP או את שמות ה-DNS של כל הצמתים של ZoomKeeper משני הנתונים במרכז, באותו סדר, ומסמנים צמתים כלשהם באמצעות הצירוף ':observer'. צמתים בלי מקש הצירוף:observer
נקראים 'מצביעים'. חייב להיות לך אי-זוגי מספר ה"מצביעים" בהגדרות האישיות שלכם.בטופולוגיה הזו, מארח ZoKeeper במארח 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 החדש
קובץ תצורה שכולל את הצמתים של 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 [-u username -pw password] -h cassIP rebuild dc-1
צריך להעביר את שם המשתמש והסיסמה רק אם מופעל אימות JMX של Cassandra.
- ב-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 install
- ב-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, עורכים את קובץ התצורה כדי להגדיר:
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, מעדכנים את ההגדרות של ניתוח הנתונים ומגדירים את הארגונים.
- בצומת שרת הניהול של 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-2, מקבלים את ה-UUID של ה-Postgres כפי שמוצג בשלב הקודם. שומרים את הערך.
- בצומת שרת הניהול של dc-1, קובעים את השם של
Analytics וקבוצות צרכנים. הרבה מהפקודות הבאות דורשות את המידע הזה.
כברירת מחדל, השם של קבוצת ניתוח הנתונים הוא 'axgroup-001' ושם הצרכן הקבוצה היא "consumer-group-001". בקובץ התצורה השקט של אזור ניתן להגדיר את השם בקבוצת ניתוח הנתונים באמצעות הנכס
AXGROUP
.אם אתם לא בטוחים לגבי השמות של קבוצות הצרכנים וניתוח הנתונים, תוכלו להיעזר בפרטים הבאים הפקודה כדי להציג אותם:
apigee-adminapi.sh analytics groups list \ --admin adminEmail --pwd adminPword --host localhost
הפקודה הזו מחזירה את השם של קבוצת Analytics בשדה השם, ואת השם של קבוצת הצרכנים בשדה 'קבוצות צרכנים'.
- בצומת שרת הניהול של 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 מקבוצת הצרכנים:
- בצומת שרת הניהול של dc-1, מוסיפים את המאסטר או ההמתנה החדשים
שליחת שרתים לקבוצת ניתוח הנתונים:
- מוסיפים את שני שרתי 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 לקבוצת ניתוח הנתונים:
- בצומת שרת הניהול של 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 מופיעים בסוף הנתונים שהוחזרו. שומרים את הערכים האלה.
- בצומת שרת הניהול של dc-1, מוסיפים את צומתי ה-Qpid
analytics group (הרצת שתי הפקודות):
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
- בצומת שרת הניהול של dc-1, מוסיפים את צומתי ה-Qpid
Consumer group (הרצת שתי הפקודות):
apigee-adminapi.sh analytics groups consumer_groups consumers \ add -g axgroup-001 -c consumer-group-001 -u "UUID_1" \ --admin adminEmail --pwd adminPword --host localhost
apigee-adminapi.sh analytics groups consumer_groups consumers \ add -g axgroup-001 -c consumer-group-001 -u "UUID_2" \ --admin adminEmail --pwd adminPword --host localhost
- בצומת שרת הניהול של dc-1, מקבלים את מזהי ה-UUID של ה-Qpid
צמתים ב-dc-2:
- ביטול הרישום ומחיקה של שרת ההמתנה הישן של Postgres מ-dc-1:
- ביטול הרישום של שרת ההמתנה הקיים dc-1 ל-Postgres:
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.
- מוחקים את שרת ההמתנה הקיים dc-1 Postgres:
apigee-adminapi.sh servers delete -u UUID \ --admin adminEmail --pwd adminPword --host localhost
- ביטול הרישום של שרת ההמתנה הקיים dc-1 ל-Postgres:
- בצומת שרת הניהול של dc-1, מקבלים את ה-UUID של ה-Postgres
צומת:
- יש לעדכן את מרחבי המפתחות של Cassandra עם גורם הרפליקציה הנכון לשני מרכזי הנתונים. שלך
יצטרכו להריץ את השלב הזה רק פעם אחת בכל שרת Cassandra בכל מרכז הנתונים:
- מפעילים את כלי השירות
cqlsh
Cassandra:/opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
- מריצים את פקודות ה-CQL הבאות באמצעות הפקודה cqlsh>. להגדרת רפליקציה
רמות במרחבי המפתחות של Cassandra:
ALTER KEYSPACE "identityzone" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- כדי להציג את מרחבי המפתחות באמצעות הפקודה:
select * from system.schema_keyspaces;
- יציאה מ-
cqlsh
:exit
- מפעילים את כלי השירות
- מריצים את פקודת
nodetool
הבאה על כל צומתי Cassandra ב-dc-1 כדי בחינם זיכרון:/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup
צריך להעביר את שם המשתמש והסיסמה רק אם מופעל אימות JMX של Cassandra.
- לכל ארגון ולכל סביבה שבה רוצים לתמוך במרכזי הנתונים:
- בצומת שרת הניהול של 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.
- הוספה של מעבדי ההודעות החדשים לארגון ולסביבה:
- בצומת שרת הניהול של dc-2, מקבלים את מזהי ה-UUID של
צמתים של מעבד הודעות ב-dc-2:
apigee-adminapi.sh servers list -r dc-2 -p gateway-2 \ -t message-processor --admin adminEmail --pwd adminPword --host localhost
מזהי UUID מופיעים בסוף הנתונים שהוחזרו. שומרים את הערכים האלה.
- בצומת שרת הניהול של dc-1, לכל מעבד הודעות
ב-dc-2, מוסיפים את מעבד ההודעות לסביבה עבור הארגון:
apigee-adminapi.sh orgs envs servers add -o orgName -e envName \ -u UUID --admin adminEmail --pwd adminPword --host localhost
- בצומת שרת הניהול של dc-2, מקבלים את מזהי ה-UUID של
צמתים של מעבד הודעות ב-dc-2:
- בצומת שרת הניהול של 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 החדש אל
ארגון: