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

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

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

לפני שמתקינים מרכז נתונים, צריך להבין איך להגדיר 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: מרכז הנתונים החדש

כדי להוסיף מרכז נתונים חדש:

  1. ב-dc-1, מריצים מחדש את setup.sh בצמתים של Cassandra המקוריים עם ה-dc-1 החדש קובץ תצורה שכולל את הצמתים של Cassandra מ-dc-2:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
  2. ב-dc-1, מריצים מחדש את setup.sh בצומת שרת הניהול:
    /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:
    /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassIP rebuild dc-1

    צריך להעביר את שם המשתמש והסיסמה רק אם מופעל אימות JMX של Cassandra.

  6. ב-dc-2, מתקינים את שרת הניהול בצומת המתאים:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
  7. בצומת שרת הניהול ב-dc-2, מתקינים את apigee-provision, שמתקין את הכלי apigee-adminapi.sh:
    /opt/apigee/apigee-service/bin/apigee-service apigee-provision install
  8. ב-dc-2, מתקינים את מעבדי הנתיבים וההודעות בצמתים המתאימים:
    /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
  9. ב-dc-2, מתקינים את Qpid בצמתים המתאימים:
    /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
  10. ב-dc-2, מתקינים את Postgres בצומת המתאים:
    /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
  11. הגדרת מאסטר/המתנה של Postgres לצמתים של Postgres. הצומת של Postgres ב-dc-1 הוא מאסטר, והצומת Postgres ב-dc-2 הוא השרת ההמתנה.
    1. בצומת הראשי ב-dc-1, עורכים את קובץ התצורה כדי להגדיר:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    2. הפעלת רפליקציה במאסטר החדש:
      /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 קיימים:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
      rm -rf /opt/apigee/data/apigee-postgresql/

      במקרה הצורך, אפשר לגבות את הנתונים האלה לפני המחיקה.

    5. מגדירים את הצומת למצב המתנה ב-dc-2:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
  12. ב-dc-1, מעדכנים את ההגדרות של ניתוח הנתונים ומגדירים את הארגונים.
    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) מופיע בסוף הנתונים שמוחזרים. שומרים את הערך.

    2. בצומת שרת הניהול של dc-2, מקבלים את ה-UUID של ה-Postgres כפי שמוצג בשלב הקודם. שומרים את הערך.
    3. בצומת שרת הניהול של dc-1, קובעים את השם של Analytics וקבוצות צרכנים. הרבה מהפקודות הבאות דורשות את המידע הזה.

      כברירת מחדל, השם של קבוצת ניתוח הנתונים הוא 'axgroup-001' ושם הצרכן הקבוצה היא "consumer-group-001". בקובץ התצורה השקט של אזור ניתן להגדיר את השם בקבוצת ניתוח הנתונים באמצעות הנכס AXGROUP.

      אם אתם לא בטוחים לגבי השמות של קבוצות הצרכנים וניתוח הנתונים, תוכלו להיעזר בפרטים הבאים הפקודה כדי להציג אותם:

      apigee-adminapi.sh analytics groups list \
        --admin adminEmail --pwd adminPword --host localhost

      הפקודה הזו מחזירה את השם של קבוצת Analytics בשדה השם, ואת השם של קבוצת הצרכנים בשדה 'קבוצות צרכנים'.

    4. בצומת שרת הניהול של dc-1, מסירים את ה-Postgres הקיימים השרת מקבוצת ניתוח הנתונים:
      1. מסירים את הצומת 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
      2. מסירים את הצומת 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
    5. בצומת שרת הניהול של dc-1, מוסיפים את המאסטר או ההמתנה החדשים שליחת שרתים לקבוצת ניתוח הנתונים:
      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.

      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
    6. מוסיפים את שרתי ה-Qpid מ-dc-2 לקבוצת ניתוח הנתונים:
      1. בצומת שרת הניהול של 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 מופיעים בסוף הנתונים שהוחזרו. שומרים את הערכים האלה.

      2. בצומת שרת הניהול של 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
      3. בצומת שרת הניהול של 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
    7. ביטול הרישום ומחיקה של שרת ההמתנה הישן של Postgres מ-dc-1:
      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.

      2. מוחקים את שרת ההמתנה הקיים dc-1 Postgres:
        apigee-adminapi.sh servers delete -u UUID \
          --admin adminEmail --pwd adminPword --host localhost
  13. יש לעדכן את מרחבי המפתחות של Cassandra עם גורם הרפליקציה הנכון לשני מרכזי הנתונים. שלך יצטרכו להריץ את השלב הזה רק פעם אחת בכל שרת Cassandra בכל מרכז הנתונים:
    1. מפעילים את כלי השירות cqlsh Cassandra:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. מריצים את פקודות ה-CQL הבאות באמצעות הפקודה cqlsh>. להגדרת רפליקציה רמות במרחבי המפתחות של Cassandra:
      1. ALTER KEYSPACE "identityzone" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' }; 
      2. ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. כדי להציג את מרחבי המפתחות באמצעות הפקודה:
        select * from system.schema_keyspaces;
      4. יציאה מ-cqlsh:
        exit
  14. מריצים את פקודת nodetool הבאה על כל צומתי Cassandra ב-dc-1 כדי בחינם זיכרון:
    /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup

    צריך להעביר את שם המשתמש והסיסמה רק אם מופעל אימות JMX של Cassandra.

  15. לכל ארגון ולכל סביבה שבה רוצים לתמוך במרכזי הנתונים:
    1. בצומת שרת הניהול של 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.

    2. הוספה של מעבדי ההודעות החדשים לארגון ולסביבה:
      1. בצומת שרת הניהול של 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 מופיעים בסוף הנתונים שהוחזרו. שומרים את הערכים האלה.

      2. בצומת שרת הניהול של dc-1, לכל מעבד הודעות ב-dc-2, מוסיפים את מעבד ההודעות לסביבה עבור הארגון:
        apigee-adminapi.sh orgs envs servers add -o orgName -e envName \
          -u UUID --admin adminEmail --pwd adminPword --host localhost
    3. בצומת שרת הניהול של dc-1, בודקים את הארגון:
      apigee-adminapi.sh orgs apis deployments -o orgName -a apiProxyName \
        --admin adminEmail --pwd adminPword --host localhost

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