התקנת מרכז נתונים מרובים עבור API BaaS

Edge for Private Cloud גרסה 4.17.01

אפשר להתקין ממשקי BaaS של API במספר מרכזי נתונים באמצעות מערך פעיל/פעיל של התצורה. במסמך הזה מוסבר איך מוסיפים מרכז נתונים של BaaS למרכז נתונים קיים ב-BaaS.

הוספת מרכז נתונים בזמן שיתוף של אשכול Cassandra עם Edge

מספר צומתי Cassandra צריך להיות זהה בכל מרכזי הנתונים. התקנת BaaS של API יכולה להשתמש באשכול Cassandra משלה, או שאפשר לשתף אשכול של Cassandra עם Edge.

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

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

כדי להוסיף מרכז נתונים חדש של BaaS (מרכז נתונים 2) צריך לבצע את השלבים להתקנה ולהגדרה של מרכז הנתונים החדש, אבל צריך גם לעדכן את מרכז הנתונים המקורי של BaaS (מרכז נתונים 1) . השינויים האלה נחוצים כי:

  • בחרת להוסיף צומתי Cassandra במרכז הנתונים החדש, שמרכז הנתונים הקיים צריך לגשת אליהם.
  • צריך להגדיר את פרטי השכפול שמשמשים את צומתי ה-BaaS Stack במרכז נתונים 1, כדי לכלול מידע ממרכז נתונים 2. לא ניתן לבצע את ההגדרה לפני שמרכז הנתונים 2 יותקן.

כדי לבצע את העדכונים האלה במרכז הנתונים 1, צריך לעדכן את קובץ התצורה המקורי ששימש להתקנת מרכז הנתונים 1, ואז להפעיל מחדש את apigee-setup בצמתים של Cassandra של מרכז הנתונים 1. אם אשכול Cassandra עבור מרכז נתונים 1 משותף עם התקנת Edge, יהיה עליך לעדכן גם את שרת הניהול.

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

כדי להתקין את מרכז הנתונים 1, משתמשים בהגדרה שמוצגת בהתקנת API BaaS. קובץ התצורה לא צריך לכלול מידע על מרכז נתונים 2 כאשר מתקינים את מרכז הנתונים 1.יש להוסיף מידע לקובץ התצורה לאחר התקנת מרכז נתונים 2.

קובצי התצורה של מרכז הנתונים 2 מופיעים למטה. קובץ התצורה הזה מבוסס על ההנחה שאתם מתקינים dc-2 ב-10 צמתים, כפי שמתואר במאמר טופולוגיות של התקנות. יש לשנות את הקובץ הזה בהתאם, אם מתבצעת התקנה ב-7 צמתים.

שימו לב שקובץ התצורה של מרכז הנתונים 2 (dc-2) מכיל מידע על מרכז הנתונים 1 (dc-1):

# Specify IP address or DNS name of node for dc-2.
IP1=192.168.1.1   # ElasticSearch
IP2=192.168.1.2   # ElasticSearch
IP3=192.168.1.3   # ElasticSearch
IP4=192.168.1.4   # API BaaS Stack
IP5=192.168.1.5   # API BaaS Stack
IP6=192.168.1.6   # API BaaS Stack
IP7=192.168.1.7   # API BaaS Portal
IP8=192.168.1.8   # Cassandra dc-2 (shared with Edge or standalone)
IP9=192.168.1.9   # Cassandra dc-2 (shared with Edge or standalone)
IP10=192.168.1.10  # Cassandra dc-2 (shared with Edge or standalone)

# Specify node information for dc-1
IP11=192.168.1.11   # Cassandra dc-1 (shared with Edge or standalone)
IP12=192.168.1.12   # Cassandra dc-1 (shared with Edge or standalone)
IP13=192.168.1.13   # Cassandra dc-1 (shared with Edge or standalone)
IP14=192.168.1.14   # API BaaS Stack
IP15=192.168.1.15   # API BaaS Stack

# Must resolve to IP address or DNS name of host - not to 127.0.0.1 or localhost.
HOSTIP=$(hostname -i)

# Define the API BaaS administrator account.  
AS_ADMIN="superuser"    # User name - default is "superuser".
AS_ADMIN_EMAIL=stackAdmin@email.com
AS_PASSWD=stackAdminPWord

# Specify Cassandra data center and rack suffix.
# List dc-2 nodes first, then dc-1.
# Must use IP addresses for CASS_HOSTS, not DNS names.
# CASS_HOSTS="$IP8:2,1 $IP9:2,1 $IP10:2,1 $IP11:1,1 $IP12:1,1 $IP13:1,1"

# Specify the Cassandra region.
REGION=dc-2

# Cassandra uname/pword.
# Even if Cassandra authentication is disabled,
# you must still pass values for these properties.
CASS_USERNAME=cassandra    # Default value
CASS_PASSWORD=cassandra    # Default value

# Specify BaaS Cassandra connection information.
# Specify the data center name as dc-2.
BAAS_CASS_LOCALDC=dc-2    

# Specify both data centers.
BAAS_CASS_DC_LIST=dc-1,dc-2

# Replication is in the form "dataCenterName:#CassandraNodes". 
# Specify both data centers.
BAAS_CASS_REPLICATION=dc-1:3,dc-2:3

# Defines the initial contact points for members of the BaaS cluster. 
# Specify the IP address of no more than two Stack nodes per data center.
# Specify both data centers. 
BAAS_CLUSTER_SEEDS="dc-1:$IP14,dc-1:$IP15,dc-2:$IP4,dc-2:$IP5"

# ElasticSearch IPs or DNS names, separated by spaces, for dc-2.
ES_HOSTS="$IP1 $IP2 $IP3"

# API BaaS Stack information.
# Default cluster name is "apigee_baas"
BAAS_USERGRID_CLUSTERNAME="apigee_baas" 

# URL and port of the load balancer for the API BaaS Stack nodes, 
# or IP/DNS and port 8080 of a single Stack node with no load balancer.
BAAS_USERGRID_URL=http://myloadbalancer:8443

# API BaaS Portal information.
# URL and port number of load balancer, if there is one in front of the Portal,
# or the URL and port of the Portal node.  
BAAS_PORTAL_URL="http://$IP7:9000"

# Portal port. Default value is 9000.
BAAS_PORTAL_LISTEN_PORT=9000 

# SMTP information. BaaS requires an SMTP server.
SMTPHOST=smtp.gmail.com
SMTPPORT=465
SMTPUSER=your@email.com
SMTPPASSWORD=yourEmailPassword
SMTPSSL=y

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

  1. מתקינים את מרכז הנתונים הראשון כפי שמתואר במאמר התקנת API BaaS. המסמך כולל את קובץ התצורה שבו משתמשים כדי להתקין את מרכז הנתונים 1.
  2. יוצרים את קובץ התצורה עבור dc-2 כמו שמתואר למעלה.
  3. מתקינים את Cassandra, כחלק מהתקנה קיימת של Edge או כאשכול עצמאי של BaaS:
    1. מתקינים את כלי השירות apigee-setup של Edge בצומת Cassandra הראשונה של dc-2, מכונה 8, באמצעות הליך באינטרנט או ללא חיבור לאינטרנט. למידע נוסף, ראו התקנת כלי השירות להגדרת ממשק ה-API של Edge.
    2. בשורת הפקודה, מריצים את סקריפט ההגדרה כדי להתקין את Cassandra בצומת הראשון:
      > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

      האפשרות ' -p c' מציינת אם להתקין את Cassandra.

      קובץ התצורה חייב להיות נגיש או קריא למשתמש "apigee".
    3. חוזרים על שלבים 3 ו-4 לצומתי Cassandra הנותרים, למכונות 9 ו-10, ב-dc-2.
  4. בצמתים של Cassandra של dc-1, עורכים את קובץ התצורה כדי להוסיף את צומתי Cassandra מ-Data Center 2, בהתאם לאופן שבו התקנתם את Cassandra:

    # מזינים קודם רשימה של צומתי dc-1 ואז את dc-2,
    # כולל Cassandra Data center ו-DockS
    CASS_HOSTS="$IP11:1,1 $IP11:13IP1,1 $IP11:18",
  5. בצומת Cassandra הראשון של dc-1, מריצים את setup.sh עם קובץ התצורה dc-1 החדש שכולל את צומתי Cassandra מ-dc-2:
    > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
  6. חוזרים על שלבים 6 ו-7 עבור צומתי Cassandra הנותרים ב-dc-1.
  7. אם התחברת לאשכול Cassandra עבור dc-1 המשותף עם Edge, הוסיפו את צומתי dc-2 Cassandra לקובץ התצורה של צומת שרת הניהול של dc-1 והפעילו את setup.sh:
    > /opt/apigee/apigee-setup/bin/setup.sh -p config -f File
  8. צריך לעדכן את מרחבי המפתח של Cassandra בגורם השכפול הנכון לשני מרכזי הנתונים. צריך להריץ את השלב הזה פעם אחת בלבד בכל שרת של Cassandra באחד ממרכזי הנתונים:

    הערה: הפקודות שלמטה מגדירות את גורם השכפול כ-"3", ומציינת שלושה צומתי Cassandra באשכול. יש לשנות את הערך הזה לפי הצורך בהתקנה.
    1. מפעילים את הכלי Cassandra cqlsh:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. מפעילים את פקודות ה-CQL הבאות בהנחיה cqlsh> כדי להגדיר את רמות השכפול של Cassandra keyspaces:
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH + שכפול = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas" WITHקונסולה = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. cqlsh> ALTER KEYSPACE "Apigee_Baas_Locks" WITH העתק = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      4. cqlsh> ALTER KEYSPACE "system_traces" WITH העתק = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      5. cqlsh> ALTER KEYSPACE "system_auth" WITH copytion = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      6. מציגים את מרחבי המפתחות באמצעות הפקודה:
        cqlsh> select * from system.schema_keyspaces;
      7. יציאה מ-cqlsh:
        cqlsh> exit
  9. בכל צומתי Cassandra ב-dc-2, מריצים את הפקודה rebuild ומציינים את שם האזור של dc-1:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP בנייה מחדש של dc-1
  10. מריצים את 'nodetool status' בכל צומת ב-Cassandra ולוודא שלכל צומתי Cassandra יש '100%' לערך 'Owns':
    > /opt/apigee/apigee-cassandra/bin/nodetool
  11. מתקינים את BaaS ב-dc-2:
    1. עורכים את קובץ התצורה כך שיצוין בו רק צומתי Cassandra ב-dc-2:
      # רשימה של צומתי dc-2 Cassandra,
      # השמטת מרכז הנתונים וסיומת המדף של Cassandra
      CASS_HOSTS="$IP8 $IP9 $IP10"
    2. התקנת ElasticSearch בצמתים 4, 5 ו-6 של dc-2:
      > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
    3. התקנת BaaS Stack בצמתים 4, 5 ו-6 של dc-2 :
      > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile
    4. מתקינים את BaaS Portal במחשב 7:
      > /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
  12. עדכון צומתי BaaS Stack במרכז הנתונים 1:
    1. בצומת BaaS Stack הראשון במרכז הנתונים 1, עורכים את /opt/apigee/customer/application/usergrid.properties בעורך. אם הקובץ לא קיים, יוצרים אותו.
    2. מוסיפים את המאפיינים הבאים ל-usergrid.properties:
      # Same value as BAAS_cluster_SEEDS בקובץ התצורה dc-2,
      # ללא מירכאות כפולות.
      usergrid-deployment_usergrid.cluster.seeds=dc-1:dc1StackIP1,dc-1:dc1StackIP2,dc-2:dc2StackIP1,dc-2:dc2StackIP2

      # זהה לזה של BAAS_CASS_DC_LIST בקובץ התצורה dc-2.
      usergrid-deployment_usergrid.cluster.region.list=dc-1,dc-2
    3. חוזרים על שלבים א' ו-ב' על שאר הצמתים ב-BaaS Stack.
    4. הפעלה מחדש של כל צומתי ה-BaaS Stack.

      הערה: כשמפעילים מחדש את צומתי BaaS Stack, צריך להפעיל אותם מחדש לפי הסדר שבו הם מופיעים ב-BAAS_CLUSTER_SEEDS. יש רשימה של BAAS_CLUSTER_SEEDS לכל היותר מתוך צומתי ה-Stack. לאחר הפעלה מחדש של שני הצמתים האלה לפי הסדר, אפשר להפעיל מחדש את הצמתים שנותרו לפי הסדר.

      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid הפעלה מחדש
  13. עדכון הערכים של מרחב המפתחות של BaaS. צריך להגדיר את מרחב המפתחות האלה לשכפול בזמן ההתקנה, אבל לא בזמן הריצה. הסרת השכפול שומרת גם על הזיכרון של Cassandra.

    צריך להריץ את השלב הזה פעם אחת בלבד בכל שרת של Cassandra באחד ממרכזי הנתונים:
    1. מפעילים את הכלי Cassandra cqlsh:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. מפעילים את פקודות ה-CQL הבאות כדי להגדיר את רמות הרפליקציה ב-Keyspaces של Cassandra:
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH בנייד = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_2" WITH במצב שכפול = { 'class': 'NetworkTopologyStrategy', 'dc-2': '3' };
      3. מציגים את מרחבי המפתחות באמצעות הפקודה:
        cqlsh> בוחרים * מתוך system.schema_keyspaces;
      4. יציאה מ-cqlsh:
        cqlsh> exit

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

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

  1. בכל צומתי BaaS Stack, בודקים את הסטטוס:
    > curl 0:8080/status
  2. קריאה ל-API של אסימון הבדיקה פועלת:
    > curl -X POST "http://localhost:8080/management/token" -d '{"grant_type":"password", "username":"adminEmail","password":"pWord"}'
  3. כדאי לנסות להתחבר ל-BaaS Portal עבור dc-2. צריך לוודא שכל הנתונים משוכפלים ב-dc-2, כמו אוספים שנוצרו ב-dc-1.