نصب چند مرکز داده برای API BaaS

Edge for Private Cloud نسخه ۴.۱۷.۰۹

می‌توانید API BaaS را در چندین مرکز داده بااستفاده از پیکربندی فعال/فعال نصب کنید. این سند نحوه افزودن مرکز داده BaaS به مرکز داده BaaS موجود را شرح می‌دهد.

افزودن مرکز داده وقتی که خوشه Cassandra با Edge هم‌رسانی شده است

همه مراکز داده باید تعداد گره‌های Cassandra یکسانی داشته باشند. نصب API BaaS می‌تواند از خوشه Cassandra خودش استفاده کند، یا می‌تواند خوشه Cassandra را با Edge هم‌رسانی کند.

اگر نصب BaaS یک خوشه Cassandra را با Edge به اشتراک می‌گذارد، باید سرور مدیریت را در مرکز داده اصلی به‌روز کنید تا آن را برای شناسایی گره‌های Cassandra در مرکز داده جدید پیکربندی کنید.

درحال به‌روزرسانی مرکز داده موجود

افزودن مرکز داده BaaS جدید (مرکز داده ۲) مستلزم آن است که مراحل نصب و پیکربندی مرکز داده جدید را انجام دهید، اما همچنین مستلزم آن است که مرکز داده BaaS اصلی (مرکز داده ۱) را به‌روز کنید. این اصلاحات ضروری است زیرا:

  • شما درحال افزودن گره‌های Cassandra جدید در مرکز داده جدید هستید که باید ازطریق مرکز داده موجود قابل‌دسترسی باشند.
  • باید اطلاعات تکرار مورداستفاده گره‌های BaaS Stack را در مرکز داده ۱ پیکربندی کنید تا اطلاعات مرکز داده ۲ را دربرگیرد. تا زمانی که مرکز داده ۲ نصب نشود، نمی‌توانید آن پیکربندی را انجام دهید.

To perform these updates on data center 1, you update the original configuration file used to install data center 1, and then rerun apigee-setup on the Cassandra nodes of data center 1. If the Cassandra cluster for data center 1 is shared with an Edge installation, then you also have to update the Management Server as well.

درحال ایجاد فایل‌های پیکربندی

برای نصب مرکز داده ۱، از پیکربندی نشان‌داده‌شده در نصب API BaaS استفاده کنید. فایل پیکربندی لازم نیست هنگام نصب مرکز داده ۱، حاوی اطلاعاتی درباره مرکز داده ۲ باشد.اطلاعات را پس‌از نصب مرکز داده ۲ به فایل پیکربندی اضافه می‌کنید.

فایل‌های پیکربندی مرکز داده ۲ در زیر نشان داده شده است. این فایل پیکربندی فرض می‌کند که شما dc-2 را روی ۱۰ گره نصب می‌کنید، همان‌طور که در توپولوژی‌های نصب شرح داده شده است. اگر روی ۷ گره نصب می‌کنید، این فایل را مطابق با آن اصلاح کنید.

توجه داشته باشید که فایل پیکربندی مرکز داده ۲ (dc-2) حاوی اطلاعاتی درباره مرکز داده ۱ (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 شرح داده شده است نصب کنید. این سند شامل فایل پیکربندی است که برای نصب مرکز داده ۱ استفاده می‌کنید.
  2. فایل پیکربندی را برای dc-2 همان‌طور که در بالا توضیح داده شد ایجاد کنید.
  3. Cassandra را به‌عنوان بخشی از نصب Edge موجود یا به‌عنوان خوشه مستقل برای BaaS نصب کنید:
    1. برنامه کمکی Edge apigee-setup را در اولین گره Cassandra از dc-2، ماشین ۸، بااستفاده از روال اینترنتی یا غیر اینترنتی نصب کنید. برای اطلاعات بیشتر، نصب ابزار کمکی Edge apigee-setup را ببینید.
    2. در پیام‌واره فرمان، دستورگان راه‌اندازی را اجرا کنید تا Cassandra در گره اول نصب شود:
      > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

      گزینه «-p c» مشخص می‌کند که Cassandra نصب شود.

      فایل پیکربندی باید برای کاربر «apigee» قابل‌دسترسی یا خواندن باشد.
    3. مراحل ۳ و ۴ را برای گره‌های Cassandra باقی‌مانده، ماشین‌های ۹ و ۱۰، در dc-2 تکرار کنید.
  4. در گره‌های Cassandra مربوط به dc-1، فایل پیکربندی را ویرایش کنید تا گره‌های Cassandra را از مرکز داده ۲ براساس نحوه نصب 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. On the first Cassandra node of dc-1, run setup.sh with the new dc-1 config file that includes the Cassandra nodes from dc-2:
    > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
  6. مراحل ۶ و ۷ را برای گره‌های Cassandra باقی‌مانده در dc-1 تکرار کنید.
  7. اگر به خوشه Cassandra برای dc-1 مشترک با Edge متصل می‌شوید، گره‌های dc-2 Cassandra را به فایل پیکربندی برای گره Management Server مربوط به dc-1 اضافه کنید و setup.sh را اجرا کنید:
    > /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile
  8. فضاهای کلید Cassandra را با ضریب تکرار صحیح برای دو مرکز داده به‌روز کنید. فقط باید این مرحله را یک‌بار در هر سرور Cassandra در هریک از مراکز داده اجرا کنید:

    توجه: همه فرمان‌های زیر ضریب تکرار را روی «۳» تنظیم می‌کنند که نشان‌دهنده سه گره Cassandra در خوشه است. این مقدار را درصورت لزوم برای نصب خود تغییر دهید.
    1. Start the Cassandra cqlsh utility:
      > /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. On all Cassandra nodes in dc-2, run the rebuild command, specifying the region name of dc-1:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP rebuild dc-1
  10. «nodetool status» را در هر گره Cassandra اجرا کنید و تأیید کنید که همه گره‌های Cassandra مقدار «Owns» (مالکیت) آن‌ها «٪۱۰۰» است:
    > /opt/apigee/apigee-cassandra/bin/nodetool status
  11. نصب BaaS در dc-2:
    1. فایل پیکربندی را ویرایش کنید تا فقط گره‌های Cassandra در dc-2 فهرست شود:
      # List dc-2 Cassandra nodes,
      # omitting Cassandra data center and rack suffix
      CASS_HOSTS="$IP8 $IP9 $IP10"
    2. ‫ElasticSearch را در گره‌های ۴، ۵، و ۶ از dc-2 نصب کنید:
      > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
    3. Install the BaaS Stack on nodes 4, 5, and 6 of dc-2:
      > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile
    4. Install the BaaS Portal on machine 7:
      > /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
  12. گره‌های پشته BaaS را در مرکز داده ۱ به‌روز کنید:
    1. در اولین گره BaaS Stack در مرکز داده ۱، /opt/apigee/customer/application/usergrid.properties را در ویرایشگر ویرایش کنید. اگر فایل وجود ندارد، آن را ایجاد کنید.
    2. ویژگی‌های زیر را به 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

      # Same value as BAAS_CASS_DC_LIST in the dc-2 config file.
      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 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

نصب این مرکز داده دوم اکنون تکمیل شده است.

پس‌از تکمیل نصب و پیکربندی دو مرکز داده، می‌توانید بااستفاده از روال زیر نصب را اعتبارسنجی کنید:

  1. در همه گره‌های پشته BaaS، وضعیت را بررسی کنید:
    > 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.