این سند نحوه افزودن مرکز داده (که منطقه نیز نامیده میشود) به مرکز داده موجود را توضیح میدهد.
ملاحظات قبلاز افزودن مرکز داده
قبلاز افزودن مرکز داده، باید با نحوه پیکربندی سرورهای OpenLDAP، ZooKeeper، Cassandra، و Postgres در سراسر مراکز داده آشنا باشید. همچنین باید مطمئن شوید که درگاههای لازم بین گرههای دو مرکز داده باز است.
- OpenLDAP
هر مرکز داده سرور OpenLDAP خود را دارد که با فعال بودن تکثیر پیکربندی شده است. وقتی مرکز داده جدید را نصب میکنید، باید OpenLDAP را پیکربندی کنید تا از تکثیر استفاده کند، و باید سرور OpenLDAP را در مرکز داده موجود مجدداً پیکربندی کنید تا از تکثیر استفاده کند.
- ZooKeeper
برای دارایی
ZK_HOSTSبرای هر دو مرکز داده، نشانیهای IP یا نامهای ساناد همه گرههای ZooKeeper را از هر دو مرکز داده، به همان ترتیب، مشخص کنید و همه گرهها را با اصلاحگر «:observer» علامتگذاری کنید. گرههای بدون اصلاحگر:observer«رأیدهنده» نامیده میشوند. باید تعداد فردی از «رأیدهندگان» در پیکربندیتان داشته باشید.در این توپولوژی، میزبان ZooKeeper در میزبان ۹ ناظر است:

در فایل پیکربندی نمونه نشاندادهشده در زیر، گره ۹ با اصلاحگر
:observerبرچسبگذاری شده است تا پنج رأیدهنده داشته باشید: گرههای ۱، ۲، ۳، ۷، و ۸.برای دارایی
ZK_CLIENT_HOSTSبرای هر مرکز داده، نشانیهای IP یا نامهای ساناد فقط گرههای ZooKeeper در مرکز داده را به همان ترتیب برای همه گرههای ZooKeeper در مرکز داده مشخص کنید. - Cassandra
برای
CASS_HOSTSبرای هر مرکز داده، مطمئن شوید که همه نشانیهای IP کاساندرا (نه نامهای ساناد) را برای هر دو مرکز داده مشخص کردهاید. برای مرکز داده ۱، ابتدا گرههای Cassandra را در آن مرکز داده فهرست کنید. برای مرکز داده ۲، ابتدا گرههای Cassandra را در آن مرکز داده فهرست کنید. گرههای Cassandra را به همان ترتیب برای همه گرههای Cassandra در مرکز داده فهرست کنید.همه گرههای Cassandra باید پسوند ':d,r' داشته باشند؛ برای مثال 'ip:1,1 = مرکز داده ۱ و قفسه/منطقه دردسترس ۱ و 'ip:2,1 = مرکز داده ۲ و قفسه/منطقه دردسترس ۱.
برای مثال، «192.168.124.201:1,1 192.168.124.202:1,1 192.168.124.203:1,1 192.168.124.204:2,1 192.168.124.205:2,1 192.168.124.206:2,1»
اولین گره در قفسه/منطقه دسترسی ۱ هر مرکز داده بهعنوان سرور اولیه استفاده خواهد شد. در این مدل استقرار، راهاندازی Cassandra به این شکل خواهد بود:

-
Postgres
بهطور پیشفرض، Edge همه گرههای Postgres را در حالت اصلی نصب میکند. بااینحال، وقتی چندین مرکز داده دارید، گرههای Postgres را پیکربندی میکنید تا از تکثیر اصلی-آمادهبهکار استفاده کنند تا اگر گره اصلی ازکار افتاد، گره آمادهبهکار بتواند به ارائه ترافیک سرور ادامه دهد. معمولاً، سرور اصلی Postgres را در یک مرکز داده و سرور آمادهبهکار را در مرکز داده دوم پیکربندی میکنید.
اگر مرکز داده موجود ازقبل پیکربندی شده است تا دو گره Postgres در حالت اصلی/آمادهبهکار داشته باشد، بهعنوان بخشی از این رویه، گره آمادهبهکار موجود را لغو ثبت کنید و آن را با گره آمادهبهکار در مرکز داده جدید جایگزین کنید.
جدول زیر پیکربندی Postgres را قبل و بعداز هر دو سناریو نشان میدهد:
پیشاز بعد از تکگره اصلی Postgres در dc-1
گره اصلی Postgres در dc-1
گره آمادهبهکار Postgres در dc-2
گره اصلی Postgres در dc-1
گره آمادهبهکار Postgres در dc-1
گره اصلی Postgres در dc-1
گره آمادهبهکار Postgres در dc-2
لغو ثبت گره قدیمی «آمادهبهکار Postgres» در dc-1
- الزامات درگاه
باید مطمئن شوید که درگاههای لازم بین گرههای دو مرکز داده باز است. برای نمودار درگاه، به الزامات درگاه مراجعه کنید.
بهروزرسانی مرکز داده موجود
افزودن مرکز داده مستلزم انجام مراحل نصب و پیکربندی گرههای مرکز داده جدید است، اما همچنین مستلزم بهروزرسانی گرهها در مرکز داده اصلی است. این اصلاحات ضروری است زیرا گرههای جدید Cassandra و ZooKeeper را در مرکز داده جدید اضافه میکنید که باید برای مرکز داده موجود دردسترس باشد، و باید OpenLDAP را برای استفاده از تکثیر دوباره پیکربندی کنید.
درحال ایجاد فایلهای پیکربندی
در زیر، فایلهای پیکربندی بیصدا برای دو مرکز داده نشان داده شده است، که در آن هر مرکز داده دارای ۶ گره است، همانطور که در توپولوژیهای نصب نشان داده شده است. توجه داشته باشید که فایل پیکربندی dc-1 تنظیمات اضافی را به موارد زیر اضافه میکند:
- OpenLDAP را با تکثیر در دو گره OpenLDAP پیکربندی کنید.
- گرههای جدید Cassandra و ZooKeeper را از dc-2 به فایل پیکربندی dc-1 اضافه کنید.
# Datacenter 1 IP1=IPorDNSnameOfNode1 IP2=IPorDNSnameOfNode2 IP3=IPorDNSnameOfNode3 IP7=IPorDNSnameOfNode7 IP8=IPorDNSnameOfNode8 IP9=IPorDNSnameOfNode9 HOSTIP=$(hostname -i) MSIP=$IP1 ADMIN_EMAIL=opdk@google.com APIGEE_ADMINPW=Secret123 LICENSE_FILE=/tmp/license.txt USE_LDAP_REMOTE_HOST=n LDAP_TYPE=2 LDAP_SID=1 LDAP_PEER=$IP7 APIGEE_LDAPPW=secret MP_POD=gateway-1 REGION=dc-1 ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3" # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1 $IP7:2,1 $IP8:2,1 $IP9:2,1" SKIP_SMTP=n SMTPHOST=smtp.example.com SMTPUSER=smtp@example.com SMTPPASSWORD=smtppwd SMTPSSL=n SMTPPORT=25 SMTPMAILFROM="My Company <myco@company.com>" |
# Datacenter 2 IP1=IPorDNSnameOfNode1 IP2=IPorDNSnameOfNode2 IP3=IPorDNSnameOfNode3 IP7=IPorDNSnameOfNode7 IP8=IPorDNSnameOfNode8 IP9=IPorDNSnameOfNode9 HOSTIP=$(hostname -i) MSIP=$IP7 ADMIN_EMAIL=opdk@google.com APIGEE_ADMINPW=Secret123 LICENSE_FILE=/tmp/license.txt USE_LDAP_REMOTE_HOST=n LDAP_TYPE=2 LDAP_SID=2 LDAP_PEER=$IP1 APIGEE_LDAPPW=secret MP_POD=gateway-2 REGION=dc-2 ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9" # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP7:2,1 $IP8:2,1 $IP9:2,1 $IP1:1,1 $IP2:1,1 $IP3:1,1" SKIP_SMTP=n SMTPHOST=smtp.example.com SMTPUSER=smtp@example.com SMTPPASSWORD=smtppwd SMTPSSL=n SMTPPORT=25 SMTPMAILFROM="My Company <myco@company.com>" |
افزودن مرکز داده جدید
برای نصب مرکز داده جدید، از روش زیر استفاده کنید.
در این فرایند، مراکز داده نامهای زیر را دارند:
- dc-1: مرکز داده موجود
- dc-2: مرکز داده جدید
برای افزودن مرکز داده جدید:
- در dc-1، setup.sh را در گرههای اصلی Cassandra با فایل پیکربندی جدید dc-1 که شامل گرههای Cassandra از dc-2 است دوباره اجرا کنید:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
- در dc-1، راهاندازی را در گره «سرور مدیریت» دوباره اجرا کنید:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
اگر از درآمدزایی استفاده میکنید، فرمان راهاندازی درآمدزایی را دوباره اجرا کنید:
/opt/apigee/apigee-setup/bin/setup.sh -p mo -f mint_configFile1
- در dc-2،
apigee-setupرا در همه گرهها نصب کنید. برای اطلاعات بیشتر، نصب ابزار کمکی apigee-setup در Edge را ببینید. - در dc-2، Cassandra و ZooKeeper را در گرههای مناسب نصب کنید:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
- در dc-2، فرمان بازسازی را در همه گرههای Cassandra اجرا کنید و نام ناحیه dc-1 را مشخص کنید:
/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassIP rebuild dc-1
فقط درصورتی باید نام کاربری و گذرواژهتان را ارسال کنید که اصالتسنجی JMX را برای Cassandra فعال کرده باشید.
- در dc-2، «سرور مدیریت» را در گره مناسب نصب کنید:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
- در گره «سرور مدیریت» در dc-2،
apigee-provisionرا نصب کنید، که ابزارapigee-adminapi.shرا نصب میکند:/opt/apigee/apigee-service/bin/apigee-service apigee-provision install
- در dc-2، «مسیرها» و «پردازشگرهای پیام» را در گرههای مناسب نصب کنید:
/opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
- در dc-2، Qpid را در گرههای مناسب نصب کنید:
/opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
- در dc-2، Postgres را در گره مناسب نصب کنید:
/opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
- راهاندازی Postgres اصلی/آمادهبهکار برای گرههای Postgres. گره Postgres در dc-1 گره
اصلی است و گره Postgres در dc-2 سرور آمادهبهکار است.
- در گره اصلی در dc-1، فایل پیکربندی را ویرایش کنید تا موارد زیر را تنظیم کنید:
PG_MASTER=IPorDNSofDC1Master PG_STANDBY=IPorDNSofDC2Standby
- تکثیر را در سرور اصلی جدید فعال کنید:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
- در گره آمادهبهکار در dc-2، فایل پیکربندی را ویرایش کنید تا موارد زیر را تنظیم کنید:
PG_MASTER=IPorDNSofDC1Master PG_STANDBY=IPorDNSofDC2Standby
- در گره آماده بهکار در dc-2، سرور را متوقف کنید و سپس هرگونه
داده Postgres موجود را حذف کنید:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
rm -rf /opt/apigee/data/apigee-postgresql/درصورت نیاز، میتوانید قبلاز حذف کردن این دادهها از آنها پشتیبانگیری کنید.
- گره آماده بهکار را در dc-2 پیکربندی کنید:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
- در گره اصلی در dc-1، فایل پیکربندی را ویرایش کنید تا موارد زیر را تنظیم کنید:
- در dc-1، پیکربندی تجزیهوتحلیل را بهروز کنید و سازمانها را پیکربندی کنید.
- در گره «سرور مدیریت» dc-1، شناسه UUID گره Postgres را دریافت کنید:
apigee-adminapi.sh servers list -r dc-1 -p analytics -t postgres-server \ --admin adminEmail --pwd adminPword --host localhost
«شناسه منحصربهفرد جهانی» در انتهای دادههای برگشتی نشان داده میشود. آن مقدار را ذخیره کنید.
- در گره «سرور مدیریت» dc-2، شناسه UUID گره Postgres را همانطور که در مرحله قبلی نشان داده شد دریافت کنید. آن مقدار را ذخیره کنید.
- در گره «سرور مدیریت» dc-1، نام گروههای
مصرفکننده و تجزیهوتحلیل را تعیین کنید. بسیاری از فرمانهای زیر به این اطلاعات نیاز دارند.
بهطور پیشفرض، نام گروه تجزیهوتحلیل «axgroup-001» و نام گروه مصرفکننده «consumer-group-001» است. در فایل پیکربندی بیصدای یک منطقه، میتوانید نام گروه تجزیهوتحلیل را بااستفاده از دارایی
AXGROUPتنظیم کنید.اگر از نامهای گروههای مصرفکننده و تجزیهوتحلیل مطمئن نیستید، از فرمان زیر برای نمایش آنها استفاده کنید:
apigee-adminapi.sh analytics groups list \ --admin adminEmail --pwd adminPword --host localhost
این فرمان نام گروه تجزیهوتحلیل را در فیلد نام و نام گروه مصرفکننده را در فیلد گروههای مصرفکننده برمیگرداند.
- در گره «سرور مدیریت dc-1»، سرور Postgres موجود را از گروه تجزیهوتحلیل بردارید:
- گره Postgres را از گروه مصرفکننده بردارید:
apigee-adminapi.sh analytics groups consumer_groups datastores remove \ -g axgroup-001 -c consumer-group-001 -u UUID \ -Y --admin adminEmail --pwd adminPword --host localhost
اگر dc-1 پیکربندی شده است که دو گره Postgres در حالت اصلی/آمادهبهکار داشته باشد، هر دو را بردارید:
apigee-adminapi.sh analytics groups consumer_groups datastores remove \ -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" \ -Y --admin adminEmail --pwd adminPword --host localhost
- گره Postgres را از گروه تجزیهوتحلیل بردارید:
apigee-adminapi.sh analytics groups postgres_server remove \ -g axgroup-001 -u UUID -Y --admin adminEmail \ --pwd adminPword --host localhost
اگر dc-1 بهگونهای پیکربندی شده است که دو گره Postgres در حالت اصلی/آماده بهکار اجرا شود، هر دو را بردارید:
apigee-adminapi.sh analytics groups postgres_server \ remove -g axgroup-001 -u UUID1,UUID2 -Y --admin adminEmail \ --pwd adminPword --host localhost
- گره Postgres را از گروه مصرفکننده بردارید:
- در گره «سرور مدیریت» dc-1، سرورهای جدید اصلی/آمادهبهکار
Postgres را به گروه تجزیهوتحلیل اضافه کنید:
- هر دو سرور Postgres را به گروه تجزیهوتحلیل اضافه کنید:
apigee-adminapi.sh analytics groups postgres_server \ add -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail \ --pwd adminPword --host localhost
در اینجا UUID_1 با گره اصلی Postgres در dc-1 مطابقت دارد و UUID_2 با گره آمادهبهکار Postgres در dc-2 مطابقت دارد.
- سرورهای PG را بهعنوان اصلی/آمادهبهکار به گروه مصرفکننده اضافه کنید:
apigee-adminapi.sh analytics groups consumer_groups datastores \ add -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" --admin adminEmail \ --pwd adminPword --host localhost
- هر دو سرور Postgres را به گروه تجزیهوتحلیل اضافه کنید:
- سرورهای Qpid را از dc-2 به گروه تجزیهوتحلیل اضافه کنید:
- در گره «سرور مدیریت» dc-1، شناسههای یکتای گرههای Qpid در dc-2 را دریافت کنید:
apigee-adminapi.sh servers list -r dc-2 -p central -t qpid-server \ --admin adminEmail --pwd adminPword --host localhost
«شناسههای UUID» در انتهای دادههای برگشتی نشان داده میشوند. این مقادیر را ذخیره کنید.
- در گره «سرور مدیریت» dc-1، گرههای Qpid را به
گروه تجزیهوتحلیل اضافه کنید (هر دو فرمان را اجرا کنید):
apigee-adminapi.sh analytics groups qpid_server \ add -g axgroup-001 -u "UUID_1" --admin adminEmail \ --pwd adminPword --host localhost
apigee-adminapi.sh analytics groups qpid_server \ add -g axgroup-001 -u "UUID_2" --admin adminEmail \ --pwd adminPword --host localhost - در گره «سرور مدیریت» dc-1، گرههای Qpid را به گروه
مصرفکننده اضافه کنید (هر دو فرمان را اجرا کنید):
apigee-adminapi.sh analytics groups consumer_groups consumers \ add -g axgroup-001 -c consumer-group-001 -u "UUID_1" \ --admin adminEmail --pwd adminPword --host localhost
apigee-adminapi.sh analytics groups consumer_groups consumers \ add -g axgroup-001 -c consumer-group-001 -u "UUID_2" \ --admin adminEmail --pwd adminPword --host localhostاگر از درآمدزایی استفاده میکنید، گرههای Qpid را به گروه MINT در گره «سرور مدیریت» dc-1 اضافه کنید:
apigee-adminapi.sh analytics groups qpid_server \ add -g mxgroup001 -u UUID_1 --admin adminEmail \ --pwd adminPword --host localhost
apigee-adminapi.sh analytics groups qpid_server \ add -g mxgroup001 -u UUID_2 --admin adminEmail \ --pwd adminPword --host localhost
- در گره «سرور مدیریت» dc-1، شناسههای یکتای گرههای Qpid در dc-2 را دریافت کنید:
- سرور آمادهبهکار قدیمی Postgres را از dc-1 لغو ثبتنام و حذف کنید:
- سرور آمادهبهکار Postgres dc-1 موجود را لغو ثبت کنید:
apigee-adminapi.sh servers deregister -u UUID -r dc-1 \ -p analytics -t postgres-server -Y --admin adminEmail \ --pwd adminPword --host localhost
که در آن UUID گره آمادهبهکار قدیمی Postgres در dc-1 است.
- سرور آمادهبهکار dc-1 Postgres موجود را حذف کنید:
apigee-adminapi.sh servers delete -u UUID \ --admin adminEmail --pwd adminPword --host localhost
- سرور آمادهبهکار Postgres dc-1 موجود را لغو ثبت کنید:
- در گره «سرور مدیریت» dc-1، شناسه UUID گره Postgres را دریافت کنید:
- فضاهای کلید Cassandra را با عامل تکثیر صحیح برای دو مرکز داده بهروز کنید. این مرحله را فقط باید یکبار در هریک از سرورهای Cassandra در هریک از مراکز داده اجرا کنید:
- ابزار
cqlshCassandra را شروع کنید:/opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
- فرمانهای CQL زیر را در پیامواره «cqlsh>» اجرا کنید تا سطوح تکثیر را برای فضاهای کلید Cassandra تنظیم کنید:
ALTER KEYSPACE "identityzone" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };- بااستفاده از این فرمان، فضاهای کلید را مشاهده کنید:
select * from system.schema_keyspaces;
- خروج از
cqlsh:exit
- ابزار
- فرمان
nodetoolزیر را در همه گرههای Cassandra در dc-1 اجرا کنید تا حافظه آزاد شود:/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup
فقط درصورتی باید نام کاربری و گذرواژهتان را ارسال کنید که اصالتسنجی JMX را برای Cassandra فعال کرده باشید.
- برای هر سازمان و برای هر محیطی که میخواهید در مراکز داده پشتیبانی کنید:
- در گره «سرور مدیریت» dc-1، MP_POD جدید را به
«سازمان» اضافه کنید:
apigee-adminapi.sh orgs pods add -o orgName -r dc-2 -p gateway-2 \ --admin adminEmail --pwd adminPword --host localhost
که در آن gateway-2 نام واحد دروازه است که توسط دارایی MP_POD در فایل پیکربندی dc-2 تعریف شده است.
- «پردازشگرهای پیام» جدید را به سازمان و محیط اضافه کنید:
- در گره «سرور مدیریت» dc-2، شناسههای یکتای گرههای
«پردازشگر پیام» در dc-2 را دریافت کنید:
apigee-adminapi.sh servers list -r dc-2 -p gateway-2 \ -t message-processor --admin adminEmail --pwd adminPword --host localhost
«شناسههای UUID» در انتهای دادههای برگشتی نشان داده میشوند. این مقادیر را ذخیره کنید.
- در گره «سرور مدیریت» dc-1، برای هر «پردازشگر پیام»
در dc-2، «پردازشگر پیام» را به محیطی برای سازمان اضافه کنید:
apigee-adminapi.sh orgs envs servers add -o orgName -e envName \ -u UUID --admin adminEmail --pwd adminPword --host localhost
- در گره «سرور مدیریت» dc-2، شناسههای یکتای گرههای
«پردازشگر پیام» در dc-2 را دریافت کنید:
- در گره «سرور مدیریت» dc-1، سازمان را بررسی کنید:
apigee-adminapi.sh orgs apis deployments -o orgName -a apiProxyName \ --admin adminEmail --pwd adminPword --host localhost
که در آن apiProxyName نام یک پراکسی API است که در سازمان مستقر شده است.
- در گره «سرور مدیریت» dc-1، MP_POD جدید را به
«سازمان» اضافه کنید:
اگر از درآمدزایی استفاده میکنید، گره درآمدزایی را در DC2 نصب کنید.
دستور راهاندازی MINT را در گرههای «سرور مدیریت» و «پردازشگر پیام» در DC2 اجرا کنید:
/opt/apigee/apigee-setup/bin/setup.sh -p mo -f mint_configFile1