การติดตั้งศูนย์ข้อมูลหลายแห่งสําหรับ API BaaS

Edge for Private Cloud เวอร์ชัน 4.17.01

คุณสามารถติดตั้ง API BaaS ในศูนย์ข้อมูลหลายแห่งโดยใช้การกำหนดค่าแบบ Active/Active เอกสารนี้อธิบายวิธีเพิ่มศูนย์ข้อมูล BaaS ลงในศูนย์ข้อมูล BaaS ที่มีอยู่

การเพิ่มศูนย์ข้อมูลเมื่อมีการแชร์คลัสเตอร์ Cassandra กับ Edge

ศูนย์ข้อมูลทั้งหมดต้องมีจำนวนโหนด Cassandra เท่ากัน การติดตั้ง API BaaS สามารถใช้คลัสเตอร์ Cassandra ของตนเอง หรือจะแชร์คลัสเตอร์ Cassandra กับ Edge ก็ได้

หากการติดตั้ง BaaS แชร์คลัสเตอร์ Cassandra กับ Edge คุณต้องอัปเดต Management Server ในศูนย์ข้อมูลเดิมเพื่อกำหนดค่าให้รู้จักโหนด 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. ติดตั้งยูทิลิตี Edge apigee-setup ในโหนด Cassandra แรกของ dc-2, เครื่อง 8 โดยใช้ขั้นตอนทางอินเทอร์เน็ตหรือไม่ใช้อินเทอร์เน็ต ดูข้อมูลเพิ่มเติมได้ที่ติดตั้งยูทิลิตี apigee-setup ของ Edge
    2. ที่ Command Prompt ให้เรียกใช้สคริปต์การตั้งค่าเพื่อติดตั้ง 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 จากศูนย์ข้อมูล 2 โดยอิงตามวิธีที่คุณติดตั้ง Cassandra:

    # แสดงรายการโหนด dc-1 ก่อน แล้วจึงแสดง dc-2
    # รวมถึงศูนย์ข้อมูล Cassandra และคำต่อท้ายแร็ก
    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:
    > /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile
  8. อัปเดตคีย์สเปซ Cassandra ด้วยปัจจัยการจำลองที่ถูกต้องสำหรับศูนย์ข้อมูลทั้ง 2 แห่ง คุณต้องทำขั้นตอนนี้เพียงครั้งเดียวในเซิร์ฟเวอร์ Cassandra ในศูนย์ข้อมูลใดศูนย์ข้อมูลหนึ่ง ดังนี้

    หมายเหตุ: คำสั่งด้านล่างทั้งหมดจะตั้งค่าปัจจัยการจำลองเป็น "3" ซึ่งหมายถึงโหนด Cassandra 3 โหนดในคลัสเตอร์ แก้ไขค่านี้ตามความจำเป็นสำหรับการติดตั้ง
    1. เริ่มยูทิลิตี Cassandra cqlsh:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. เรียกใช้คำสั่ง CQL ต่อไปนี้ที่พรอมต์ "cqlsh>" เพื่อตั้งค่าระดับการจำลองสำหรับคีย์สเปซ Cassandra
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas" WITH replication = { '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> select * from 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:
      # List dc-2 Cassandra nodes,
      # omitting Cassandra ศูนย์ข้อมูล and rack suffix
      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:
      > /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. ทำขั้นตอน a และ b ซ้ำในโหนด BaaS Stack ที่เหลือ
    4. รีสตาร์ทโหนด BaaS Stack ทั้งหมด

      หมายเหตุ: เมื่อรีสตาร์ทโหนด BaaS Stack ให้รีสตาร์ทตามลำดับที่แสดงใน BAAS_CLUSTER_SEEDS BAAS_CLUSTER_SEEDS จะแสดงรายการโหนด Stack ไม่เกิน 2 โหนด หลังจากรีสตาร์ทโหนดทั้ง 2 โหนดตามลำดับแล้ว คุณจะรีสตาร์ทโหนดที่เหลือตามลำดับใดก็ได้

      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart
  13. อัปเดตค่าคีย์สเปซ BaaS ต้องตั้งค่าคีย์สเปซเหล่านี้สำหรับการจำลองแบบ ณ เวลาติดตั้ง แต่ไม่จำเป็นต้องตั้งค่า ณ รันไทม์ การนำการจำลองออกยังช่วยประหยัดหน่วยความจำ Cassandra ด้วย

    คุณต้องทำขั้นตอนนี้เพียงครั้งเดียวในเซิร์ฟเวอร์ Cassandra ในศูนย์ข้อมูลใดศูนย์ข้อมูลหนึ่ง ดังนี้
    1. เริ่มยูทิลิตี Cassandra cqlsh:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. เรียกใช้คำสั่ง CQL ต่อไปนี้เพื่อตั้งค่าระดับการจำลองสำหรับคีย์สเปซ Cassandra
      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> select * from system.schema_keyspaces;
      4. ออกจาก cqlsh:
        cqlsh> exit

การติดตั้งศูนย์ข้อมูลแห่งที่ 2 นี้เสร็จสมบูรณ์แล้ว

หลังจากติดตั้งและกำหนดค่าศูนย์ข้อมูลทั้ง 2 แห่งเสร็จแล้ว คุณจะตรวจสอบความถูกต้องของการติดตั้งได้โดยทำตามขั้นตอนต่อไปนี้

  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 สำหรับ dc-2 ยืนยันว่าข้อมูลทั้งหมดได้รับการจำลองใน dc-2 เช่น คอลเล็กชันที่สร้างใน dc-1