Cài đặt nhiều trung tâm dữ liệu cho API BaaS

Edge for Private Cloud v4.18.01

Bạn có thể cài đặt API BaaS trên nhiều trung tâm dữ liệu bằng cách sử dụng cấu hình đang hoạt động/đang hoạt động. Tài liệu này mô tả cách thêm trung tâm dữ liệu BaaS vào trung tâm dữ liệu BaaS hiện có.

Thêm một trung tâm dữ liệu khi Cụm Cassandra được chia sẻ với Edge

Tất cả các trung tâm dữ liệu phải có cùng số lượng nút Cassandra. Quá trình cài đặt API BaaS có thể sử dụng cụm Cassandra riêng hoặc chia sẻ cụm Cassandra với Edge.

Nếu quá trình cài đặt BaaS chia sẻ một cụm Cassandra với Edge, bạn phải cập nhật Máy chủ quản lý trong trung tâm dữ liệu ban đầu để định cấu hình máy chủ này nhằm nhận dạng các nút Cassandra trong trung tâm dữ liệu mới.

Cập nhật trung tâm dữ liệu hiện có

Để thêm một trung tâm dữ liệu BaaS mới (trung tâm dữ liệu 2) bạn cần thực hiện các bước để cài đặt và định cấu hình trung tâm dữ liệu mới, nhưng bạn cũng phải cập nhật trung tâm dữ liệu BaaS gốc (trung tâm dữ liệu 1) . Những nội dung sửa đổi này là cần thiết vì:

  • Bạn đang thêm các nút Cassandra mới trong trung tâm dữ liệu mới mà trung tâm dữ liệu hiện có.
  • Bạn phải định cấu hình thông tin sao chép mà các nút trong ngăn xếp BaaS sử dụng trong trung tâm dữ liệu 1 để bao gồm thông tin từ trung tâm dữ liệu 2. Bạn không thể thực hiện cấu hình đó cho đến khi cài đặt xong trung tâm dữ liệu 2.

Để thực hiện các cập nhật này trên trung tâm dữ liệu 1, bạn cập nhật tệp cấu hình gốc đã dùng để cài đặt trung tâm dữ liệu 1, sau đó chạy lại apigee-setup trên các nút Cassandra của dữ liệu trung tâm 1. Nếu cụm Cassandra cho trung tâm dữ liệu 1 được chia sẻ với một lượt cài đặt Edge, thì bạn cũng phải cập nhật Máy chủ quản lý.

Tạo tệp cấu hình

Để cài đặt trung tâm dữ liệu 1, hãy sử dụng cấu hình có trong phần Cài đặt API BaaS. Tệp cấu hình không cần chứa bất kỳ thông tin nào về trung tâm dữ liệu 2 tại thời điểm bạn cài đặt trung tâm dữ liệu 1. Bạn sẽ thêm thông tin vào tệp cấu hình sau khi cài đặt trung tâm dữ liệu 2.

Dưới đây là các tệp cấu hình cho trung tâm dữ liệu 2. Tệp cấu hình này giả định bạn đang cài đặt dc-2 trên 10 nút, như mô tả trong bài viết Cài đặt cấu trúc liên kết. Sửa đổi tệp này cho phù hợp nếu bạn đang cài đặt trên 7 nút.

Lưu ý rằng tệp cấu hình cho trung tâm dữ liệu 2 (dc-2) chứa thông tin về trung tâm dữ liệu 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>"

Thêm trung tâm dữ liệu BaaS

  1. Cài đặt trung tâm dữ liệu đầu tiên như mô tả trong phần Cài đặt API BaaS. Tài liệu đó bao gồm tệp cấu hình mà bạn sử dụng để cài đặt trung tâm dữ liệu 1.
  2. Tạo tệp cấu hình cho dc-2 như mô tả ở trên.
  3. Cài đặt Cassandra, dưới dạng một phần của quá trình cài đặt Edge hiện có hoặc dưới dạng một cụm độc lập cho BaaS:
    1. Cài đặt tiện ích apigee-setup của Edge trên nút Cassandra đầu tiên của dc-2, máy 8, bằng cách sử dụng quy trình Internet hoặc không phải Internet. Hãy xem phần Cài đặt tiện ích thiết lập apigee của Edge để biết thêm thông tin.
    2. Tại dấu nhắc lệnh, hãy chạy tập lệnh thiết lập để cài đặt Cassandra trên nút đầu tiên:
      &gt; /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

      Tuỳ chọn “-p c” chỉ định việc cài đặt Cassandra.

      Người dùng "apigee" phải có thể truy cập hoặc đọc tệp cấu hình.
    3. Lặp lại các bước 3 và 4 cho các nút Cassandra còn lại, máy 9 và 10, trong dc-2.
  4. Trên các nút Cassandra của dc-1, hãy chỉnh sửa tệp cấu hình để thêm các nút Cassandra từ trung tâm dữ liệu 2 dựa trên cách bạn cài đặt Cassandra:

    # Liệt kê các nút dc-1 trước, sau đó là dc-2,
    # bao gồm cả hậu tố trung tâm dữ liệu và giá đỡ Cassandra
    CASS_HOSTS="$IP11:1,1 $IP12:1,1 $IP13:1,1 $IP8:2,1 $IP9:2,1 $IP10:2,1"
  5. Trên nút Cassandra đầu tiên của dc-1, hãy chạy setup.sh với tệp cấu hình dc-1 mới bao gồm các nút Cassandra từ dc-2:
    &gt; /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
  6. Lặp lại bước 6 và 7 cho các nút Cassandra còn lại trong dc-1.
  7. Nếu bạn đang kết nối với một cụm Cassandra cho dc-1 được chia sẻ với Edge, thêm các nút Cassandra dc-2 vào tệp cấu hình cho nút Máy chủ quản lý của dc-1 và chạy setup.sh:
    &gt; /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile
  8. Cập nhật không gian khoá Cassandra bằng hệ số sao chép chính xác cho hai trung tâm dữ liệu. Bạn chỉ phải chạy bước này một lần trên máy chủ Cassandra bất kỳ ở một trong hai trung tâm dữ liệu:

    Lưu ý: Các lệnh bên dưới đều đặt hệ số nhân bản thành "3", cho biết rằng ba nút Cassandra trong cụm. Sửa đổi giá trị này nếu cần cho quá trình cài đặt.
    1. Khởi động tiện ích cqlsh Cassandra:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Thực thi các lệnh CQL sau đây tại "cqlsh>" lời nhắc thiết lập bản sao cho không gian phím Cassandra:
      1. cqlsh&gt; ALTER KEYSPACE "Apigee_Baas_dc_1" WITH sao chép = { '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&gt; ALTER KEYSPACE "Apigee_Baas_Locks" WITH sao chép = { 'class': 'NetworkTopologyStrategy', "dc-1": "3", "dc-2": "3" };
      4. cqlsh&gt; Hàm ALTER KEYSPACE "system_traces" CÓ tính năng sao chép = { 'class': 'NetworkTopologyStrategy', 'dc-1': "3", "dc-2": "3" };
      5. cqlsh&gt; ALTER KEYSPACE "system_auth" CÓ tính năng sao chép = { 'class': 'NetworkTopologyStrategy', 'dc-1': "3", "dc-2": "3" };
      6. Xem các không gian phím bằng cách dùng lệnh:
        cqlsh&gt; chọn * từ system.schema_keyspaces;
      7. Thoát khỏi CQ1:
        cqlsh&gt; thoát
  9. Trên tất cả các nút Cassandra trong dc-2, hãy chạy lệnh tạo lại, chỉ định tên khu vực của dc-1:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP rebuild dc-1
  10. Chạy "nodetool trạng thái" trên mỗi nút Cassandra và xác minh rằng tất cả các nút Cassandra có "100%" đối với giá trị "Sở hữu":
    &gt; /opt/apigee/apigee-cassandra/bin/trạng thái củanodetool
  11. Cài đặt BaaS trong dc-2:
    1. Chỉnh sửa tệp cấu hình để chỉ liệt kê các nút Cassandra trong dc-2:
      # List dc-2 Cassandra nodes,
      # omitting Cassandra data center and rack suffix
      CASS_HOSTS="$IP8 $IP9 $IP10"
    2. Cài đặt ElasticSearch trên các nút 4, 5 và 6 của dc-2:
      &gt; /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
    3. Cài đặt Ngăn xếp BaaS trên các nút 4, 5 và 6 của dc-2:
      &gt; /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile
    4. Cài đặt BaaS Portal trên máy 7:
      &gt; /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
  12. Cập nhật các nút Ngăn xếp BaaS trong trung tâm dữ liệu 1:
    1. Trên nút Ngăn xếp BaaS đầu tiên trong trung tâm dữ liệu 1, hãy chỉnh sửa /opt/apigee/customer/application/usergrid.properties trong trình chỉnh sửa. Nếu tệp không tồn tại, hãy tạo tệp đó.
    2. Thêm các thuộc tính sau vào usergrid.properties:
      # Same value as BAAS_CLUSTER_SEEDS in the dc-2 config file,
      # without double quotes.
      usergrid-deployment_usergrid.cluster.seeds=dc-1:dc1StackIP1,dc-1:dc1StackIP2,dc-2:dc2StackIP1,dc-2:dc2StackIP2

      # Cùng giá trị với BAAS_CASS_DC_LIST trong tệp cấu hình dc-2.
      usergrid-deployment_usergrid.cluster.region.list=dc-1,dc-2
    3. Lặp lại các bước a và b trên các nút ngăn xếp BaaS còn lại.
    4. Khởi động lại tất cả các nút trong ngăn xếp BaaS.

      Lưu ý: Khi khởi động lại các nút Ngăn xếp BaaS, hãy khởi động lại các nút đó trên cùng một gói thứ tự của các sản phẩm đó được liệt kê trong BAAS_CLUSTER_SEEDS. BAAS_CLUSTER_SEEDS danh sách tại 2 trong số các nút Ngăn xếp. Sau khi khởi động lại hai nút đó theo thứ tự, bạn có thể khởi động lại các nút còn lại theo thứ tự bất kỳ.

      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart
  13. Cập nhật các giá trị không gian khoá BaaS. Các không gian khoá này phải được thiết lập để sao chép tại thời điểm cài đặt, nhưng không nhất thiết phải chạy vào thời gian chạy. Việc xoá tính năng sao chép cũng giúp tiết kiệm bộ nhớ Cassandra.

    ?Bạn chỉ phải chạy bước này một lần trên bất kỳ máy chủ Cassandra nào ở một trong hai trung tâm dữ liệu:
    1. Khởi động tiện ích Cassandra cqlsh:
      &gt; /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Thực thi các lệnh CQL sau đây để đặt mức độ sao chép cho Cassandra không gian phím:
      1. cqlsh&gt; Hàm ALTER KEYSPACE &quot;Apigee_Baas_dc_1&quot; CÓ bản sao = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3' };
      2. cqlsh&gt; Hàm ALTER KEYSPACE &quot;Apigee_Baas_dc_2&quot; CÓ bản sao = { 'class': 'NetworkTopologyStrategy', 'dc-2': '3' };
      3. Xem không gian khoá bằng cách sử dụng lệnh:
        cqlsh> select * from system.schema_keyspaces;
      4. Thoát cqlsh:
        cqlsh> exit

Quá trình cài đặt trung tâm dữ liệu thứ hai đã hoàn tất.

Sau khi hoàn tất việc cài đặt và định cấu hình hai trung tâm dữ liệu này, bạn có thể xác thực việc cài đặt bằng cách sử dụng quy trình sau:

  1. Trên tất cả các nút Ngăn xếp BaaS, hãy kiểm tra trạng thái:
    &gt; curl 0:8080/trạng thái
  2. Kiểm tra lệnh gọi API mã thông báo có đang hoạt động:
    &gt; cuộn tròn – X BÀI ĐĂNG &quot;http://localhost:8080/management/token&quot; -d &#39;{&quot;grant_type&quot;:&quot;password&quot;, "username":"adminEmail","password":"pWord"}'
  3. Hãy thử đăng nhập vào Cổng dịch vụ BaaS cho dc-2. Xác minh rằng tất cả dữ liệu được sao chép trong dc-2, chẳng hạn như các bộ sưu tập được tạo trên dc-1.