این سند نحوه افزودن مرکز داده (که منطقه نیز نامیده میشود) به مرکز داده موجود را شرح میدهد.
ملاحظات قبلاز افزودن مرکز داده
قبلاز نصب و افزودن مرکز داده، باید با نحوه پیکربندی سرورهای 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
- الزامات درگاه
باید مطمئن شوید که درگاههای لازم بین گرهها در دو مرکز داده باز هستند. برای نمودار درگاه، به الزامات درگاه مراجعه کنید.
درحال بهروزرسانی مرکز داده موجود
افزودن مرکز داده مستلزم انجام مراحل نصب و پیکربندی گرههای مرکز داده جدید است، اما همچنین مستلزم بهروزرسانی گرهها در مرکز داده اصلی است. These modifications are necessary because you are adding new Cassandra and ZooKeeper nodes in the new data center that have to be accessible to the existing data center, and you have to reconfigure OpenLDAP to use replication.
درحال ایجاد فایلهای پیکربندی
در زیر فایلهای پیکربندی بیصدا برای دو مرکز داده نشان داده شده است، که هر مرکز داده دارای ۶ گره است، همانطور که در توپولوژیهای نصب نشان داده شده است. توجه داشته باشید که فایل پیکربندی برای 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، setup.sh را در گره «سرور مدیریت» دوباره اجرا کنید:
/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 master/standby برای گرههای 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
UUID در انتهای دادههای برگرداندهشده نشان داده میشود. آن مقدار را ذخیره کنید.
- در گره «سرور مدیریت» dc-2، شناسه UUID گره Postgres را همانطور که در مرحله قبلی نشان داده شده است دریافت کنید. آن مقدار را ذخیره کنید.
- در گره «سرور مدیریت» dc-1، نام گروههای analytics و consumer را تعیین کنید. بسیاری از فرمانهای زیر به این اطلاعات نیاز دارند.
بهطور پیشفرض، نام گروه تجزیهوتحلیل «axgroup-001» و نام گروه مصرفکننده «consumer-group-001» است. در فایل پیکربندی بیصدا برای یک منطقه، میتوانید نام گروه Analytics را بااستفاده از ویژگی
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 به گروه Analytics اضافه کنید:
- در گره سرور مدیریت dc-1، شناسه UUID گرههای Qpid را در dc-2 دریافت کنید:
apigee-adminapi.sh servers list -r dc-2 -p central -t qpid-server \ --admin adminEmail --pwd adminPword --host localhost
UUIDها در انتهای دادههای برگرداندهشده نشان داده میشوند. این مقادیر را ذخیره کنید.
- در گره Management Server مربوط به dc-1، گرههای Qpid را به
گروه analytics اضافه کنید (هر دو فرمان را اجرا کنید):
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 - در گره Management Server مربوط به 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، شناسه UUID گرههای 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 است.
- سرور آمادهبهکار Postgres dc-1 موجود را حذف کنید:
apigee-adminapi.sh servers delete -u UUID \ --admin adminEmail --pwd adminPword --host localhost
- سرور آمادهبهکار Postgres dc-1 موجود را لغو ثبت کنید:
- در گره «سرور مدیریت» dc-1، شناسه UUID گره Postgres را دریافت کنید:
- فضاهای کلید Cassandra را با ضریب تکرار صحیح برای دو مرکز داده بهروز کنید. فقط
باید این مرحله را یکبار در هر سرور Cassandra در هریک از مراکز داده اجرا کنید:
- ابزار کمکی Cassandra
cqlshرا شروع کنید:/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
- ابزار کمکی Cassandra
- فرمان
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 تعریف شده است.
- «پردازشگرهای پیام» جدید را به سازمان و محیط اضافه کنید:
- در گره Management Server مربوط به dc-2، شناسه UUID گرههای Message Processor را در 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
- در گره Management Server مربوط به dc-2، شناسه UUID گرههای Message Processor را در 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