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

Edge for Private Cloud v. 4.17.05

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

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

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

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

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

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

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

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

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

برای نصب مرکز داده ۱، از پیکربندی نشان‌داده‌شده در نصب 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

افزودن مرکز داده 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. در اولین گره Cassandra در dc-1، فایل setup.sh را با فایل پیکربندی dc-1 جدید که شامل گره‌های Cassandra از dc-2 است اجرا کنید:
    > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
  6. مراحل ۶ و ۷ را برای گره‌های Cassandra باقی‌مانده در dc-1 تکرار کنید.
  7. اگر به خوشه Cassandra برای dc-1 که با Edge هم‌رسانی شده است متصل می‌شوید، گره‌های Cassandra مربوط به dc-2 را به فایل پیکربندی گره «سرور مدیریت» dc-1 اضافه کنید و setup.sh را اجرا کنید:
    > /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile
  8. فضاهای کلید Cassandra را با عامل تکثیر صحیح برای دو مرکز داده به‌روز کنید. این مرحله را فقط باید یک‌بار در هریک از سرورهای Cassandra در هریک از مراکز داده اجرا کنید:

    توجه: همه دستورات زیر عامل تکثیر را روی «۳» تنظیم می‌کنند که نشان‌دهنده سه گره Cassandra در خوشه است. این مقدار را درصورت لزوم برای نصب خود تغییر دهید.
    1. ابزار cqlsh مربوط به Cassandra را شروع کنید:
      > /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، فرمان بازسازی را اجرا کنید و نام منطقه dc-1 را مشخص کنید:> /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP rebuild dc-1
  10. «nodetool status» را در هر گره Cassandra اجرا کنید و تأیید کنید که همه گره‌های Cassandra مقدار «۱۰۰٪» را برای مقدار «مالک» دارند:
    > /opt/apigee/apigee-cassandra/bin/nodetool status
  11. نصب BaaS در dc-2:
    1. فایل پیکربندی را ویرایش کنید تا فقط گره‌های Cassandra در dc-2 فهرست شود:
      # فهرست گره‌های Cassandra در dc-2،
      # حذف پسوند مرکز داده و قفسه Cassandra
      CASS_HOSTS="$IP8 $IP9 $IP10"
    2. ‫ElasticSearch را در گره‌های ۴، ۵، و ۶ از dc-2 نصب کنید:
      > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
    3. ‫BaaS Stack را در گره‌های ۴، ۵، و ۶ از dc-2 نصب کنید:
      > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile
    4. «درگاه BaaS» را در ماشین ۷ نصب کنید:
      > /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
  12. به‌روزرسانی گره‌های BaaS Stack در مرکز داده ۱:
    1. در اولین گره BaaS Stack در مرکز داده ۱، /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 حداکثر دو گره «پشته» را فهرست می‌کند. پس‌از راه‌اندازی مجدد آن دو گره به‌ترتیب، می‌توانید گره‌های باقی‌مانده را به هر ترتیبی راه‌اندازی مجدد کنید.

      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart
  13. مقادیر فضای کلید BaaS را به‌روزرسانی کنید. این فضای کلید باید در زمان نصب برای تکثیر تنظیم شود، اما لازم نیست در زمان اجرا تنظیم شود. حذف کردن تکثیر همچنین باعث صرفه‌جویی در حافظه Cassandra می‌شود.

    فقط باید این مرحله را یک‌بار در هریک از سرورهای Cassandra در هریک از مراکز داده اجرا کنید:
    1. ابزار cqlsh مربوط به Cassandra را شروع کنید:
      > /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 Stack، وضعیت را بررسی کنید:
    > curl 0:8080/status
  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.