הוספה של מרכז נתונים

Edge for Private Cloud גרסה 4.17.01

במסמך הזה מוסבר איך להוסיף מרכז נתונים (נקרא גם אזור) לנתונים קיימים במרכז.

שיקולים לפני הוספה של מרכז נתונים

לפני שמתקינים מרכז נתונים, צריך להבין איך להגדיר 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
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: מרכז הנתונים החדש
  1. ב-dc-1, מריצים מחדש את setup.sh בצמתים של Cassandra המקוריים עם ה-dc-1 החדש confiig שכולל את צומתי Cassandra מ-dc-2:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
  2. ב-dc-1, מריצים מחדש את setup.sh בצומת שרת הניהול:
    &gt; /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
  3. ב-dc-2, מתקינים את apigee-setup בכל הצמתים. מידע נוסף זמין במאמר התקנת כלי ההגדרה של Edge apigee-setup מידע.
  4. ב-dc-2, מתקינים את Cassandra ו-ZooKeeper בצמתים המתאימים:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
  5. ב-dc-2, מריצים את הפקודה rebuild בכל הצמתים של Cassandra, לציון שם האזור של dc-1:
    &gt; /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP בנייה מחדש dc-1
  6. ב-dc-2, מתקינים את שרת הניהול בצומת המתאים:
    &gt; /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
  7. ב-dc-2, מתקינים את מעבדי הנתיבים ומעבדי ההודעות צמתים:
    &gt; /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
  8. ב-dc-2, מתקינים את Qpid בצמתים המתאימים:
    &gt; /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
  9. ב-dc-2, מתקינים Postgres בצומת המתאים:
    &gt; /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
  10. הגדרת מאסטר/המתנה של Postgres לצמתים של Postgres. הצומת של Postgres ב-dc-1 הוא מאסטר, והצומת Postgres ב-dc-2 הוא השרת ההמתנה.

    הערה: אם dc-1 כבר מוגדר שיהיו בו שני Postgres וצמתים שפועלים במצב מאסטר/המתנה, ובמסגרת התהליך הזה, משתמשים צומת ראשי של Postgres ב-dc-1 כמאסטר, ו צומת ששולח דואר ב-dc-2 כשרת ההמתנה. בהמשך התהליך, יבטל את הרישום של שרת ההמתנה הקיים של Postgres ב-dc-1.
    1. בצומת הראשי ב-dc-1, עורכים את קובץ התצורה כדי להגדיר:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    2. הפעלת רפליקציה במאסטר החדש:
      &gt; /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
    3. בצומת ההמתנה ב-dc-2, עורכים את קובץ התצורה כדי להגדיר:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    4. בצומת ההמתנה ב-dc-2, מפסיקים את השרת ומוחקים את נתוני Postgres קיימים:
      &gt; /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
      &gt; rm -rf /opt/apigee/data/apigee-postgresql/

      הערה: במקרה הצורך, אפשר לגבות את הנתונים האלה לפני המחיקה.
    5. הגדרת הצומת למצב המתנה ב-dc-2:
      &gt; /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-waitby-f configFile
  11. ב-dc-1, מעדכנים את הגדרות ניתוח הנתונים ומגדירים את הארגונים.
    1. בצומת שרת הניהול של dc-1, מקבלים את ה-UUID של ה-Postgres צומת:
      &gt; שרתי 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 מיועד למאסטר הצומת של מצב המתנה.
    2. בצומת שרת הניהול של dc-2, מקבלים את ה-UUID של ה-Postgres כפי שמוצג בשלב הקודם. שומרים את הערך.
    3. בצומת שרת הניהול של dc-1, קובעים את השם של Analytics וקבוצות צרכנים. הרבה מהפקודות הבאות דורשות את המידע הזה.
      כברירת מחדל, השם של קבוצת ניתוח הנתונים הוא axgroup-001 ושם הצרכן הקבוצה היא קבוצת צרכנים-001. בקובץ התצורה השקט של אזור ניתן להגדיר את השם בקבוצת ניתוח הנתונים באמצעות הנכס AXGROUP.

      אם אתם לא בטוחים לגבי השמות של קבוצות הצרכנים וניתוח הנתונים, תוכלו להיעזר בפרטים הבאים הפקודה כדי להציג אותם:
      &gt; ניתוח נתונים של apigee-adminapi.sh רשימת קבוצות --admin adminEmail --pwd adminPword --host localhost

      הפקודה הזו מחזירה את השם של קבוצת Analytics בשדה השם, ואת השם של קבוצת הצרכנים בשדה 'קבוצות צרכנים'.
    4. בצומת שרת הניהול של dc-1, מסירים את ה-Postgres הקיימים השרת מקבוצת ניתוח הנתונים:
      1. מסירים את הצומת Postgres מקבוצת הצרכנים:
        &gt; apigee-adminapi.sh קבוצות ניתוח נתונים מסוג consumer_groups datastores remove -g axgroup-001 -c consumer-group-001 -u UUID -Y --admin adminEmail --pwd adminPword – מארח מקומי

        אם dc-1 מוגדר כך שיפעלו שני צומתי Postgres מצב מאסטר/מצב המתנה, יש להסיר את שניהם:
        &gt; 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
      2. הסרת הצומת של Postgres מקבוצת ניתוח הנתונים:
        &gt; apigee-adminapi.sh Google Analytics groups postgres_server remove -g axgroup-001 -u UUID -Y --admin adminEmail --pwd adminPword --host localhost

        אם ב-dc-1 מוגדרים שני צומתי Postgres שפועלים במצב מאסטר/המתנה, מסירים את שתיהן:
        &gt; apigee-adminapi.sh קבוצות ניתוח נתונים postgres_server remove -g axgroup-001 -u UUID1,UUID2 – Y --admin adminEmail --pwd adminPword – מארח מקומי
    5. בצומת שרת הניהול של dc-1, מוסיפים את המאסטר או ההמתנה החדשים שליחת שרתים לקבוצת ניתוח הנתונים:
      1. מוסיפים את שני שרתי Postgres לקבוצת ניתוח הנתונים:
        &gt; 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.
      2. הוספת שרתי PG לקבוצת הצרכנים כמאסטר או כהמתנה:
        &gt; apigee-adminapi.sh קבוצות ניתוח נתונים create_groups datastores add -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" --admin adminEmail --pwd adminPword – מארח מקומי
    6. מוסיפים את שרתי ה-Qpid מ-dc-2 לקבוצת ניתוח הנתונים:
      1. בצומת שרת הניהול של dc-1, מקבלים את מזהי ה-UUID של ה-Qpid צמתים ב-dc-2:
        &gt; apigee-adminapi.sh Server list -r dc-2 -p Central -t qpid-server --admin adminEmail --pwd adminPword --host localhost

        מזהי UUID מופיעים בסוף הנתונים שהוחזרו. שומרים את הערכים האלה.
      2. בצומת שרת הניהול של dc-1, מוסיפים את צומתי ה-Qpid קבוצת ניתוח נתונים:
        &gt;apigee-adminapi.sh קבוצות ניתוח נתונים 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
      3. בצומת שרת הניהול של dc-1, מוסיפים את צומתי ה-Qpid קבוצת צרכנים:
        &gt; apigee-adminapi.sh קבוצות ניתוח נתונים לצרכנים מוסיפים -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" --admin adminEmail --pwd adminPword – host Localhost
    7. ביטול הרישום ומחיקה של שרת ההמתנה הישן של Postgres מ-dc-1:
      1. ביטול הרישום של שרת ההמתנה הקיים dc-1 ל-Postgres:
        &gt; apigee-adminapi.sh שרתי רישום -u UUID -r dc-1 -p analytics -t postgres-server -Y --admin adminEmail --pwd adminPword --host localhost

        כאשר UUID הוא מצב ההמתנה הישן צומת Postgres ב-dc-1.
      2. מחיקת שרת ההמתנה הקיים dc-1 Postgres:
        הערה: הפקודה הזו לא מסירה את הצומת של שרת Postgres. הוא מסיר אותו רק מרשימת צמתים של Edge. אפשר להסיר את Postgres מאוחר יותר דרך במקרה הצורך.
        &gt; apigee-adminapi.sh שרתים למחוק -u UUID --admin adminEmail --pwd adminPword – מארח מקומי
  12. יש לעדכן את מרחבי המפתחות של Cassandra עם גורם הרפליקציה הנכון לשני מרכזי הנתונים. שלך צריך להריץ את השלב הזה רק פעם אחת בכל שרת Cassandra בכל מרכז הנתונים:

    הערה: הפקודות הבאות מגדירות את גורם הרפליקציה ל-3, דבר שמציין שלושה צמתים של Cassandra באשכול. משנים את הערך הזה לפי הצורך בהתקנה.
    1. הפעלת הכלי Cassandra cqlsh:
      &gt; /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. מריצים את פקודות ה-CQL הבאות באמצעות הפקודה cqlsh>. להגדרת רפליקציה רמות במרחבי המפתחות של Cassandra:
      1. cqlsh&gt; החלפה KEYSPACE 'אזור זהות' עם רפליקה = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      2. cqlsh&gt; מפתח חלופי 'system_traces' עם רפליקה = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. כדי להציג את מרחבי המקשים, משתמשים בפקודה:
        cqlsh&gt; בחר * מתוך system.schema_keyspaces;
      4. יציאה מ-cqlsh:
        cqlsh&gt; יציאה
  13. מריצים את פקודת ה-Nodetool הבאה על כל הצמתים של Cassandra ב-dc-1 כדי לפנות מקום בזיכרון:
    &gt; /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP ניקוי
  14. לכל ארגון ולכל סביבה שבה רוצים לתמוך בנתונים Center:
    1. בצומת שרת הניהול של dc-1, מוסיפים את ה-MP_POD החדש אל ארגון:
      &gt; apigee-adminapi.sh קבוצות של ארגונים add -o orgName -r dc-2 -p gateway-2 --admin adminEmail --pwd adminPword --host Localhost

      כאשר gateway-2 הוא שם רצף השער של השער כפי שמוגדר ב-MP_POD בקובץ התצורה dc-2.
    2. הוספה של מעבדי ההודעות החדשים לארגון ולסביבה:
      1. בצומת שרת הניהול של dc-2, מקבלים את מזהי ה-UUID של צמתים של מעבד הודעות ב-dc-2:
        &gt; apigee-adminapi.sh Server list -r dc-2 -p gateway-2 -t מעבד הודעות - מנהל מערכת adminEmail --pwd adminPword --host localhost

        מזהי UUID מופיעים בסוף הנתונים שהוחזרו. שומרים את הערכים האלה.
      2. בצומת שרת הניהול של dc-1, לכל מעבד הודעות ב-dc-2, מוסיפים את מעבד ההודעות לסביבה עבור הארגון:
        &gt; ארגונים ב-apigee-adminapi.sh שרתי envs מוסיפים -o orgName -e envName -u UUID – admin adminEmail --pwd adminPword – host Localhost
    3. בצומת שרת הניהול של dc-1, בודקים את הארגון:
      &gt; apigee-adminapi.sh orgs API פריסות -o orgName -a apiProxyName --admin adminEmail --pwd adminPword --host Localhost

      כאשר apiProxyName הוא השם של שרת proxy ל-API שנפרס של הארגון.