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

Edge for Private Cloud גרסה 4.18.01

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

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

לפני ההתקנה של הוספת מרכז נתונים, צריך להבין איך להגדיר את השרתים OpenLDAP, ZooKeeper, Cassandra ו-Postgres במרכזי הנתונים. בנוסף, צריך לוודא שהיציאות הדרושות פתוחות בין הצמתים בשני מרכזי הנתונים.

  • OpenLDAP
    לכל מרכז נתונים יש שרת OpenLDAP משלו שמוגדר כשמפעילים רפליקציה. כשמתקינים את מרכז הנתונים החדש, צריך להגדיר את OpenLDAP לשימוש בשכפול, ולהגדיר מחדש את שרת OpenLDAP במרכז הנתונים הקיים כדי להשתמש ברפליקציה.
  • ZooKeeper
    בנכס ZK_HOSTS של שני מרכזי הנתונים, מציינים את כתובות ה-IP או את שמות ה-DNS של כל צומתי ה-ZooKeeper משני מרכזי הנתונים, באותו סדר, ומסמנים את הצמתים באמצעות מקש הצירוף ' :observer'. צמתים ללא תכונת הצירוף ' :observer' נקראים 'מצביעים'. צריך להיות לך מספר אי-זוגי של "מצביעים" בהגדרה.

    בטופולוגיה הזו, המארח שלzoKeeper במארח 9 הוא הצופה:



    בקובץ התצורה לדוגמה שמוצג בהמשך, צומת 9 מתויג עם מקש הצירוף " :observer", כך שיהיו לך חמישה מצביעים: צמתים 1, 2, 3, 7 ו-8.

    עבור המאפיין ZK_CLIENT_HOSTS של כל מרכז נתונים, יש לציין את כתובות ה-IP או את שמות ה-DNS רק של צומתי ה-ZooKeeper במרכז הנתונים, באותו סדר, בכל הצמתים שלzoKeeper במרכז הנתונים.
  • Cassandra
    מספר הצמתים של 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,1 192.168.124.202:1,1 192.168.124.203:1,1 192.168.124.204:2,1 192.168.12 192.168.12

    במודל הפריסה הזה, ההגדרה של 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

    ביטול הרישום של צומת מצב המתנה ישן ב-dc-1

  • דרישות לגבי יציאות
    צריך לוודא שהיציאות הדרושות פתוחות בין הצמתים בשני מרכזי הנתונים. לקבלת תרשים יציאה, כדאי לעיין במאמר דרישות התקנה.

עדכון של מרכז הנתונים הקיים

כדי להוסיף מרכז נתונים צריך לבצע את השלבים להתקנה ולהגדרה של הצמתים החדשים של מרכז הנתונים, אבל צריך גם לעדכן את הצמתים במרכז הנתונים המקורי. השינויים האלה נחוצים כי מוסיפים צמתים חדשים של Cassandra ו-zoKeeper במרכז הנתונים החדש, שצריכים להיות נגישים למרכז הנתונים הקיים, וצריך להגדיר מחדש את OpenLDAP כדי להשתמש ברפליקציה.

יצירת קובצי התצורה

למטה מוצגים קובצי התצורה השקטים של שני מרכזי הנתונים, כאשר לכל מרכז נתונים יש 6 צמתים, כפי שמתואר בקטע טופולוגיות של התקנות. שימו לב שקובץ התצורה של dc-1 מוסיף הגדרות נוספות לפרטים הבאים:

  • הגדרת OpenLDAP עם שכפול בשני צומתי OpenLDAP.
  • הוסיפו את הצמתים החדשים של Cassandra ו-zoKeeper מ-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.
  4. ב-dc-2, מתקינים את Cassandra ואת התאמות גן החיות בצמתים המתאימים:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
  5. ב-dc-2, מריצים את הפקודה rebuild בכל הצמתים של Cassandra, ומציינים את שם האזור של dc-1:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP בנייה מחדש של dc-1
  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 setup
  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 הוא שרת ההמתנה.

    הערה: אם dc-1 כבר מוגדר כך ששני צומתי Postgres פועלים במצב ראשי/המתנה, כחלק מהתהליך הזה משתמשים בצומת המאסטר הקיים של Postgres ב-dc-1 כשרת הראשי ובצומת Postgres ב-dc-2 כשרת ההמתנה. בשלב מאוחר יותר התהליך הזה יבטל את הרישום של שרת Postgres הקיים במצב המתנה ב-dc-1.
    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 -r dc-1 -p analytics -t postgres-server --admin adminEmail --pwd adminPword --host localhost

      ה-UUID מוחזר בסוף הנתונים. שומרים את הערך.

      הערה: אם dc-1 מוגדר כך ששני צומתי Postgres פועלים במצב ראשי/המתנה, יופיעו שתי כתובות IP ומזהי UUID בפלט. שומרים את שני מזהי UUID. לפי כתובות ה-IP, אפשר לקבוע איזה UUID הוא עבור המאסטר ואיזה הוא של צומת ההמתנה.
    2. בצומת של שרת הניהול של dc-2, מקבלים את ה-UUID של צומת Postgres כפי שמתואר בשלב הקודם. שומרים את הערך.
    3. בצומת של שרת הניהול של dc-1, קובעים את השם של קבוצות ניתוח הנתונים וקבוצות הצרכנים. רבות מהפקודות הבאות דורשות את המידע הזה.
      כברירת מחדל, השם של קבוצת ניתוח הנתונים הוא axgroup-001, והשם של קבוצת הצרכנים הוא axgroup-001. בקובץ התצורה השקטה של אזור מסוים, אפשר להגדיר את השם של קבוצת ניתוח הנתונים באמצעות הנכס AXGROUP.

      אם לא ידוע לך מה השמות של קבוצות ניתוח הנתונים וקבוצות הצרכנים, אפשר להציג אותן באמצעות הפקודה הבאה:
      > רשימת הקבוצות apigee-adminapi.sh analytics --admin adminEmail --pwd adminPword --host localhost

      פקודה זו מחזירה את השם של קבוצת analytics בשדה השם, ואת השם של קבוצת הצרכנים בשדה של Consumer-groups.
    4. בצומת של שרת הניהול של dc-1, מסירים את שרת Postgres הקיים מקבוצת analytics:
      1. מסירים את הצומת Postgres מהקבוצה לצרכנים-group:
        > apigee-adminapi.sh analytics groups customer_groups datastores remove -g axgroup-001 -c Consumer-group-001 -u UUID -Y --admin adminEmail --pwd adminPword --host localhost

        אם admin-groupes running to two-hostapigroup>
      2. מסירים את הצומת Postgres מקבוצת analytics:
        > apigee-adminapi.sh analytics groups postgres_server remove -g axgroup-001 -u UUID -Y --admin adminEmail --pwd adminPword --host localhost

        אם dc-apige_host_1 מוגדר בשני צמתים של Postgrapigroup_togres:
    5. בצומת של שרת הניהול של dc-1, מוסיפים את שרתי המאסטר/המתנה החדשים Postgres לקבוצת ניתוח הנתונים:
      1. מוסיפים את שני שרתי Postgres לקבוצת analytics:
        > apigee-adminapi.sh קבוצות analytics postgres_server מוסיפים -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail --pwd adminPword עד --host localhost

        כאשר UDC-DC_1 מייצג את הצומת postgrby ב-UdcID_1.
      2. מוסיפים את שרתי ה-PG לקבוצת הצרכן כמאסטר/המתנה:
        > apigee-adminapi.sh analytics groups customer_groups datastores add -g axgroup-001 -cconsumer-group-001 -u "UUID_1,UUID_2" --admin adminEmail --pwd adminPword --host
    6. מוסיפים את שרתי ה-Qpid מ-dc-2 לקבוצת ניתוח הנתונים:
      1. בצומת של שרת הניהול של dc-1, מקבלים את מזהי ה-UUID של צומתי ה-Qpid ב-dc-2:
        > רשימת השרתים apigee-adminapi.sh -r dc-2 -p Central -t qpid-server --admin adminEmail --pwd adminPword --host localhost ID --host localhost שמוחזר

        שומרים את הערכים האלה.
      2. בצומת של שרת הניהול של dc-1, מוסיפים את צומתי ה-Qpid לקבוצת analytics (מריצים את שתי הפקודות):
        >apigee-adminapi.sh analytics groups qpid_server add -g axgroup-001 -u "UUID_1 --admin admin Email --pwd adminPword --host local adminPword --host local

      3. בצומת של שרת הניהול של dc-1, מוסיפים את צומתי ה-Qpid לקבוצת הצרכן (מריצים את שתי הפקודות):
        > apigee-adminapi.sh analytics groups customer_groups audiences add -g axgroup-001 -c Consumer-group-001 -u "UUID_1" --admin adminEmail --pwd

    7. ביטול הרישום ומחיקת שרת ההמתנה הישן של Postgres מ-dc-1:
      1. ביטול הרישום של שרת ההמתנה הקיים dc-1 Postgres:
        > שרתי apigee-adminapi.sh מבטלים את הרישום -u UUID -r dc-1 -p analytics -t postgres-server -Y --admin adminEmail --pwd adminPword --host localhost

        כאשר UdcUID הישן הוא הצומת הישן של Postgres.
      2. מחיקת שרת dc-1 Postgres הקיים בהמתנה:
        הערה: פקודה זו לא מסירה את צומת השרת של Postgres. הוא רק מסיר אותו מהרשימה של צומתי Edge. במידת הצורך, אפשר להסיר את Postgres בשלב מאוחר יותר מהצומת.
        > apigee-adminapi.sh server delete -u UUID --admin adminEmail --pwd adminPword --host localhost
  13. צריך לעדכן את מרחבי המפתח של Cassandra בגורם השכפול הנכון לשני מרכזי הנתונים. צריך להריץ את השלב הזה פעם אחת בלבד בכל שרת של Cassandra באחד ממרכזי הנתונים:

    הערה: הפקודות שלמטה מגדירות את גורם השכפול כ-"3", ומציינת שלושה צומתי Cassandra באשכול. יש לשנות את הערך הזה לפי הצורך בהתקנה.
    1. מפעילים את הכלי Cassandra cqlsh:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. מפעילים את פקודות ה-CQL הבאות בהנחיה cqlsh> כדי להגדיר את רמות השכפול של Cassandra keyspaces:
      1. cqlsh> ALTER KEYSPACE "identityzone" WITH copytion = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      2. cqlsh> ALTER KEYSPACE "system_traces" WITH העתק = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. מציגים את מרחבי המפתחות באמצעות הפקודה:
        cqlsh> select * from system.schema_keyspaces;
      4. יציאה מ-cqlsh:
        cqlsh> exit
  14. מריצים את פקודת הצומת הבאה בכל צומתי Cassandra ב-dc-1 לזיכרון פנוי:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP ניקוי
  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 localhostway and the podlocalhostgate
      כאשר ה-adminPword-pwd adminPword --host localhostway
      מוגדר כ-host localhostway.
    2. מוסיפים את מעבדי ההודעות החדשים לארגון ולסביבה:
      1. בצומת של שרת הניהול dc-2, מקבלים את מזהי ה-UUID של הצמתים של מעבד ההודעות ב-dc-2:
        > apigee-adminapi.sh רשימת השרתים -r dc-2 -p gateway-2 -t message-processor --admin adminEmail --pwd adminPword --host of localhost adminPword --host to localhost data כפי שמוחזר ב-UendID.

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

      כאשר apiProxyName הוא השם של הארגון proxy.