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

Edge for Private Cloud نسخه 4.17.05

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

افزودن مرکز داده زمانی که خوشه Cassandra با Edge به اشتراک گذاشته می شود

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

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

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

افزودن یک مرکز داده جدید BaaS (مرکز داده 2) به شما نیاز دارد که مراحل نصب و پیکربندی مرکز داده جدید را انجام دهید، اما همچنین باید مرکز داده اصلی BaaS (مرکز داده 1) را به روز کنید. این تغییرات ضروری است زیرا:

  • شما در حال اضافه کردن گره های Cassandra جدید در مرکز داده جدید هستید که باید توسط مرکز داده موجود قابل دسترسی باشند.
  • شما باید اطلاعات تکرار مورد استفاده توسط گره های پشته BaaS در مرکز داده 1 را به گونه ای پیکربندی کنید که شامل اطلاعات مرکز داده 2 باشد. تا زمانی که مرکز داده 2 نصب نشده باشد نمی توانید آن پیکربندی را انجام دهید.

برای انجام این به‌روزرسانی‌ها در مرکز داده 1، فایل پیکربندی اصلی مورد استفاده برای نصب مرکز داده 1 را به‌روزرسانی می‌کنید و سپس apigee-setup را روی گره‌های Cassandra مرکز داده 1 مجدداً اجرا می‌کنید. اگر خوشه Cassandra برای مرکز داده 1 با یک Edge به اشتراک گذاشته شده باشد. نصب، سپس شما همچنین باید سرور مدیریت را نیز به روز کنید.

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

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

در زیر فایل های پیکربندی مرکز داده 2 نشان داده شده است. این فایل پیکربندی فرض می کند که dc-2 را روی 10 گره نصب می کنید، همانطور که در Installation Topologies توضیح داده شده است. اگر روی 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 با استفاده از روش اینترنتی یا غیراینترنتی نصب کنید. برای اطلاعات بیشتر به نصب ابزار Edge apigee-setup مراجعه کنید.
    2. در خط فرمان، اسکریپت setup را اجرا کنید تا Cassandra در اولین گره نصب شود:
      > /opt/apigee/apigee-setup/bin/setup.sh -pc -f configFile

      گزینه “-p c” نصب Cassandra را مشخص می کند.

      فایل پیکربندی باید توسط کاربر "apigee" قابل دسترسی یا خواندن باشد.
    3. مراحل 3 و 4 را برای گره های کاساندرا باقی مانده، ماشین های 9 و 10، در dc-2 تکرار کنید.
  4. در گره های Cassandra dc-1، فایل پیکربندی را ویرایش کنید تا گره های Cassandra را از مرکز داده 2 بر اساس نحوه نصب Cassandra اضافه کنید:

    # ابتدا گره های dc-1 و سپس dc-2 را فهرست کنید،
    # شامل مرکز داده کاساندرا و پسوند رک
    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 -pc -f configFile
  6. مرحله 6 و 7 را برای گره های کاساندرا باقی مانده در 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 را با ضریب تکرار صحیح برای دو مرکز داده به روز کنید. شما فقط باید این مرحله را یک بار روی هر سرور کاساندرا در هر مرکز داده اجرا کنید:

    توجه : دستورات زیر همگی ضریب تکرار را روی "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> تغییر فضای کلید "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> * را از system.schema_keyspace انتخاب کنید.
      7. خروج از cqlsh:
        cqlsh> خروج
  9. در تمام گره های Cassandra در dc-2، دستور rebuild را اجرا کنید و نام منطقه dc-1 را مشخص کنید:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP بازسازی dc-1
  10. "وضعیت ابزار نود" را روی هر گره کاساندرا اجرا کنید و بررسی کنید که تمام گره های کاساندرا "100%" برای مقدار "مالک" دارند:
    > وضعیت /opt/apigee/apigee-cassandra/bin/nodetool
  11. BaaS را در dc-2 نصب کنید:
    1. فایل پیکربندی را ویرایش کنید تا فقط گره‌های کاساندرا در dc-2 فهرست شوند:
      # فهرست dc-2 گره های کاساندرا،
      # حذف مرکز داده کاساندرا و پسوند رک
      CASS_HOSTS="$IP8 $IP9 $IP10"
    2. ElasticSearch را روی گره های 4، 5، و 6 dc-2 نصب کنید:
      > /opt/apigee/apigee-setup/bin/setup.sh -pe -f configFile
    3. پشته BaaS را روی گره های 4، 5 و 6 dc-2 نصب کنید :
      > /opt/apigee/apigee-setup/bin/setup.sh -pb -f configFile
    4. پورتال BaaS را روی دستگاه 7 نصب کنید:
      > /opt/apigee/apigee-setup/bin/setup.sh -pp -f configFile
  12. گره های پشته BaaS را در مرکز داده 1 به روز کنید:
    1. در اولین گره پشته BaaS در مرکز داده 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 را مجددا راه اندازی کنید.

      توجه : هنگام راه‌اندازی مجدد گره‌های پشته BaaS، آنها را به همان ترتیبی که در BAAS_CLUSTER_SEEDS فهرست شده‌اند، راه‌اندازی مجدد کنید . BAAS_CLUSTER_SEEDS حداکثر دو گره Stack را فهرست می کند. پس از راه اندازی مجدد آن دو گره به ترتیب، می توانید گره های باقی مانده را به هر ترتیبی راه اندازی مجدد کنید.

      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid راه اندازی مجدد
  13. مقادیر فضای کلید BaaS را به روز کنید. این فضاهای کلیدی باید برای تکرار در زمان نصب تنظیم شوند، اما لازم نیست در زمان اجرا باشند. حذف Replication باعث صرفه جویی در حافظه 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> * را از system.schema_keyspace انتخاب کنید.
      4. خروج از cqlsh:
        cqlsh> خروج

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

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

  1. در تمام گره‌های پشته BaaS، وضعیت را بررسی کنید:
    > curl 0:8080/وضعیت
  2. بررسی کنید که تماس API نشانه کار می کند:
    > curl -X POST "http://localhost:8080/management/token" -d '{"grant_type":"password", "username":" adminEmail ","password":" pWord "}'
  3. سعی کنید برای dc-2 وارد پورتال BaaS شوید. بررسی کنید، تمام داده‌ها در dc-2 تکرار می‌شوند، مانند مجموعه‌های ایجاد شده در dc-1.