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

Edge for Private Cloud גרסה 4.18.01

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

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

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

אם אשכול Cassandra משותף להתקנת BaaS ול-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. קובץ התצורה הזה מניח מתקינים את 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
SMTPMAILFROM="My Company <myco@company.com>"

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

  1. מתקינים את מרכז הנתונים הראשון כפי שמתואר במאמר התקנה של API BaaS. המסמך הזה כולל את קובץ התצורה שמשמש אתכם להתקנת מרכז הנתונים 1.
  2. יוצרים את קובץ התצורה עבור dc-2 כפי שמתואר למעלה.
  3. מתקינים את Cassandra, כחלק מהתקנת Edge קיימת או כהתקנה עצמאית אשכול של BaaS:
    1. התקנת כלי השירות apigee-setup ב-Edge צומת Cassandra של dc-2, מכונה 8, באמצעות תהליך האינטרנט או תהליך שאינו אינטרנט. צפייה התקנת apigee-setup גבוהה יותר.
    2. בשורת הפקודה, מריצים את סקריפט ההגדרה כדי להתקין את Cassandra בצומת הראשון:
      &gt; /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 ממרכז הנתונים 2, בהתאם לאופן שבו התקנתם את Cassandra:

    # List dc-1 nodes first, then dc-2,
    # including Cassandra data center and rack suffix
    CASS_HOSTS="$IP11:1,1 $IP12:1,1 $IP13:1,1 $IP8:2,1 $IP9:2,1 $IP10:2,1"
  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:
    &gt; /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile
  8. יש לעדכן את מרחבי המפתחות של Cassandra עם גורם הרפליקציה הנכון לשני מרכזי הנתונים. שלך צריך להריץ את השלב הזה רק פעם אחת בכל שרת Cassandra בכל מרכז הנתונים:

    הערה: הפקודות הבאות מגדירות את גורם הרפליקציה ל-3, דבר שמציין שלושה צמתים של Cassandra באשכול. משנים את הערך הזה לפי הצורך להתקנה.
    1. מפעילים את הכלי cqlsh של Cassandra:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. מריצים את פקודות ה-CQL הבאות בהודעת ה-prompt "cqlsh>" כדי להגדיר את רמות היצירה של מרחבי המפתחות של Cassandra:
      1. cqlsh&gt; ALTER KEYSPACE "Apigee_Baas_dc_1" עם רפליקה = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      2. cqlsh&gt; ALTER KEYSPACE "Apigee_Baas" עם רפליקציות = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. cqlsh> ALTER KEYSPACE "Apigee_Baas_Locks" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      4. cqlsh> ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      5. cqlsh> ALTER KEYSPACE "system_auth" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      6. כדי להציג את מרחבי המקשים, משתמשים בפקודה:
        cqlsh&gt; בחר * מתוך system.schema_keyspaces;
      7. יציאה מ-cqlsh:
        cqlsh> exit
  9. בכל צמתים של Cassandra ב-dc-2, מריצים את הפקודה rebuild ומציינים את שם האזור של dc-1:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP rebuild dc-1
  10. מריצים את 'nodetool status' בכל צומת של Cassandra ומוודאים שבכל הצמתים של Cassandra הערך של 'Owns' הוא '100%':
    > /opt/apigee/apigee-cassandra/bin/nodetool status
  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 במחשב 7:
      &gt; /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:
      # אותו ערך כמו 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. אחרי שמפעילים מחדש את שני הצמתים לפי הסדר, אפשר להפעיל מחדש נותרו צמתים בכל סדר שהוא.

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

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

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

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

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