از کار انداختن مرکز داده

گاهی اوقات، ممکن است نیاز به از رده خارج کردن یک مرکز داده داشته باشید. به عنوان مثال، اگر در حال ارتقاء سیستم عامل خود هستید، باید سیستم عامل جدید را در یک مرکز داده جدید نصب کنید و سپس مرکز داده قدیمی را از رده خارج کنید. بخش‌های زیر مثالی از از رده خارج کردن یک مرکز داده را ارائه می‌دهند که در آن دو مرکز داده، dc-1 و dc-2، در یک نصب خوشه‌ای 12 گره‌ای وجود دارد:

  • dc-1 مرکز داده‌ای است که قرار است از رده خارج شود.
  • dc-2 مرکز داده دوم است که در فرآیند از رده خارج کردن استفاده می‌شود.

اگر در حال ارتقاء سیستم عامل خود هستید، dc-2 می‌تواند مرکز داده‌ای باشد که نسخه جدید سیستم عامل (OS) را در آن نصب کرده‌اید. با این حال، نصب یک سیستم عامل جدید برای از رده خارج کردن یک مرکز داده الزامی نیست.

ملاحظات قبل از برچیدن یک مرکز داده

هنگام از رده خارج کردن یک مرکز داده، نکات زیر را در نظر داشته باشید:

  • تمام ترافیک زمان اجرا و مدیریت به مرکز داده‌ای که در حال از رده خارج شدن است را مسدود کرده و آنها را به مراکز داده دیگر هدایت کنید.
  • پس از از رده خارج کردن مرکز داده، ظرفیت کمتری در خوشه Apigee خود خواهید داشت. برای جبران آن، افزایش ظرفیت در مراکز داده باقی مانده یا اضافه کردن مراکز داده پس از از رده خارج کردن را در نظر بگیرید.
  • در طول فرآیند از رده خارج کردن، بسته به اینکه کدام اجزای تحلیلی در مرکز داده‌ای که از رده خارج می‌شود نصب شده باشند، احتمال از دست رفتن داده‌های تحلیلی وجود دارد. می‌توانید جزئیات بیشتر را در بخش افزودن یا حذف گره‌های Qpid بیابید.
  • قبل از اینکه یک مرکز داده را از رده خارج کنید، باید نحوه پیکربندی تمام اجزا در تمام مراکز داده، به ویژه سرورهای SymasLDAP، ZooKeeper، Cassandra و Postgres را درک کنید. همچنین باید از تمام اجزا و پیکربندی‌های آنها پشتیبان تهیه کنید.

قبل از شروع

  • سرور مدیریت: تمام مراحل غیرفعال‌سازی به شدت به سرور مدیریت وابسته هستند. اگر فقط یک سرور مدیریت در دسترس دارید، توصیه می‌کنیم قبل از غیرفعال‌سازی سرور مدیریت در dc-1، یک جزء سرور مدیریت جدید را در مرکز داده‌ای غیر از dc-1 نصب کنید و مطمئن شوید که یکی از سرورهای مدیریت همیشه در دسترس است.
  • روتر: قبل از غیرفعال کردن یک روتر، با مسدود کردن پورت ۱۵۹۹۹، دسترسی به روترها را غیرفعال کنید. اطمینان حاصل کنید که هیچ ترافیکی در زمان اجرا به سمت روترهایی که غیرفعال می‌شوند، هدایت نمی‌شود.
  • کاساندرا و زوکیپر: بخش‌های زیر نحوه‌ی از رده خارج کردن dc-1 را در یک مجموعه‌ی دو مرکز داده شرح می‌دهند.

    اگر بیش از دو مرکز داده دارید، مطمئن شوید که تمام ارجاعات به گره‌ای که قرار است از سرویس خارج شود (در این مورد dc-1) را از تمام فایل‌های پیکربندی خاموش در تمام مراکز داده باقی‌مانده حذف کرده‌اید. برای گره‌های کاساندرا که قرار است از سرویس خارج شوند، آن میزبان‌ها را از CASS_HOSTS حذف کنید. گره‌های کاساندرا باقی‌مانده باید در ترتیب اصلی CASS_HOSTS باقی بمانند.

  • Postgres: اگر Postgres master را غیرفعال می‌کنید، حتماً هر یک از گره‌های آماده به کار موجود را به عنوان یک postgres master جدید ارتقا دهید. در حالی که سرور QPID یک بافر را در صف نگه می‌دارد، اگر Postgres master برای مدت طولانی‌تری در دسترس نباشد، خطر از دست دادن داده‌های تحلیلی وجود دارد.

پیش‌نیازها

  • قبل از غیرفعال کردن هر مؤلفه‌ای، توصیه می‌کنیم از تمام گره‌ها یک نسخه پشتیبان کامل تهیه کنید. برای انجام پشتیبان‌گیری از رویه مربوط به نسخه فعلی Edge خود استفاده کنید. برای اطلاعات بیشتر در مورد پشتیبان‌گیری، به بخش پشتیبان‌گیری و بازیابی مراجعه کنید.

  • قبل از غیرفعال کردن، با استفاده از دستور زیر، مطمئن شوید که Edge فعال و در حال اجرا است:
    /opt/apigee/apigee-service/bin/apigee-all status
  • مطمئن شوید که در حال حاضر هیچ ترافیک زمان اجرا به مرکز داده‌ای که در حال از رده خارج کردن آن هستید، نمی‌رسد.

ترتیب از رده خارج کردن اجزا

اگر Edge را برای Private Cloud روی چندین گره نصب می‌کنید، باید اجزای Edge را در آن گره‌ها به ترتیب زیر غیرفعال کنید:

  1. رابط کاربری لبه (edge-ui)
  2. سرور مدیریت (سرور مدیریت لبه)
  3. سایماس LDAP (apigee-openldap)
  4. روتر (روتر لبه‌ای)
  5. پردازنده پیام (پردازنده پیام لبه‌ای)
  6. سرور Qpid و Qpidd (سرور-qpid-edge و qpidd-apigee)
  7. پایگاه داده Postgres و PostgreSQL (edge-postgres-server و apigee-postgresql)
  8. نگهبان باغ وحش (نگهدارنده میمون-باغ وحش)
  9. کاساندرا (apigee-cassandra)

بخش‌های بعدی نحوه‌ی از رده خارج کردن هر جزء را توضیح می‌دهند.

رابط کاربری اج

برای متوقف کردن و حذف نصب کامپوننت رابط کاربری Edge از dc-1، دستورات زیر را وارد کنید:

/opt/apigee/apigee-service/bin/apigee-service edge-ui stop
/opt/apigee/apigee-service/bin/apigee-service edge-ui uninstall

سرور مدیریت

برای غیرفعال کردن سرور مدیریت در dc-1، مراحل زیر را انجام دهید:

  1. سرور مدیریت را در dc-1 متوقف کنید:
    apigee-service edge-management-server stop
  2. UUID سرور مدیریت ثبت شده در dc-1 را پیدا کنید:
    curl -u <AdminEmailID>:'<AdminPassword>' -X GET “http://{MS_IP}:8080/v1/servers?pod=central&region=dc-1&type=management-server”
  3. نوع سرور لغو ثبت نام:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=management-server&region=dc-1&pod=central&uuid=UUID&action=remove"
  4. سرور را حذف کنید. توجه: اگر اجزای دیگری نیز روی این سرور نصب شده‌اند، قبل از حذف UUID، ابتدا همه آنها را از حالت ثبت خارج کنید.
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/{UUID}
  5. کامپوننت Management Server را از روی dc-1 حذف نصب کنید:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server uninstall

سایماس LDAP

این بخش نحوه غیرفعال کردن SymasLDAP در dc-1 را توضیح می‌دهد.

توجه: اگر بیش از دو مرکز داده دارید، به تنظیمات با بیش از دو مرکز داده در زیر مراجعه کنید.

برای غیرفعال کردن SymasLDAP در dc-1، مراحل زیر را انجام دهید:

  1. با دنبال کردن مراحل موجود در بخش «نحوه پشتیبان‌گیری» ، از نود dc-1 SymasLDAP پشتیبان‌گیری کنید.
  2. با اجرای مراحل زیر در هر دو مرکز داده، تکرار داده‌ها را بین دو مرکز داده، dc-1 و dc-2، متوقف کنید.

    1. بررسی وضعیت فعلی:
            /opt/symas/bin/ldapsearch -H ldap://{HOST}:{PORT} -LLL -x -b "cn=config" -D "cn=admin,cn=config" -w {credentials} -o ldif-wrap=no 'olcSyncRepl' | grep olcSyncrepl

      خروجی باید مشابه زیر باشد:

      olcSyncrepl: {0}rid=001 provider=ldap://{HOST}:{PORT}/ binddn="cn=manager,dc=apigee,dc=com" bindmethod=simple credentials={credentials} searchbase="dc=apigee,dc=com" attrs="*,+" type=refreshAndPersist retry="60 1 300 12 7200 +" timeout=1
    2. یک فایل break_repl.ldif حاوی دستورات زیر ایجاد کنید:
      dn: olcDatabase={2}mdb,cn=config
      changetype: modify
      delete: olcSyncRepl
      
      dn: olcDatabase={2}mdb,cn=config
      changetype: modify
      delete: olcMirrorMode
    3. دستور ldapmodify را اجرا کنید:
            /opt/symas/bin/ldapmodify -x -w {credentials} -D "cn=admin,cn=config" -H "ldap://{HOST}:{PORT}/" -f path/to/file/break_repl.ldif

      خروجی باید مشابه زیر باشد:

      modifying entry "olcDatabase={2}mdb,cn=config"
      modifying entry "olcDatabase={2}mdb,cn=config"
  3. شما می‌توانید با ایجاد یک ورودی در LDAP مربوط به dc-2 و اطمینان از عدم نمایش آن در LDAP مربوط به dc-1، تأیید کنید که dc-2 دیگر به dc-1 کپی ارسال نمی‌کند.

    به صورت اختیاری، می‌توانید مراحل زیر را دنبال کنید که در آن یک کاربر فقط خواندنی در گره dc-2 SymasLDAP ایجاد می‌شود و سپس بررسی می‌شود که آیا کاربر تکثیر شده است یا خیر. کاربر متعاقباً حذف می‌شود.

    1. یک فایل readonly-user.ldif در dc-2 با محتوای زیر ایجاد کنید:
      dn: uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com
      objectClass: organizationalPerson
      objectClass: person
      objectClass: inetOrgPerson
      objectClass: top
      cn: readonly-user
      sn: readonly-user
      userPassword: {testPassword}
    2. کاربر را با دستور `ldapadd` در dc-2 اضافه کنید:
      /opt/symas/bin/ldapadd -H ldap://{HOST}:{PORT} -w {credentials} -D "cn=manager,dc=apigee,dc=com" -f path/to/file/readonly-user.ldif

      خروجی مشابه زیر خواهد بود:

      adding new entry "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"
    3. برای اطمینان از عدم تکثیر کاربر در dc-1، آن را جستجو کنید. اگر کاربر در dc-1 وجود نداشته باشد، مطمئن خواهید شد که هر دو LDAP دیگر تکثیر نمی‌شوند:
      /opt/symas/bin/ldapsearch -H ldap://{HOST}:{PORT} -x -w {credentials} -D "cn=manager,dc=apigee,dc=com" -b uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com -LLL

      خروجی باید مشابه زیر باشد:

      No such object (32)
      Matched DN: ou=users,ou=global,dc=apigee,dc=com
    4. کاربر فقط خواندنی که قبلاً اضافه کرده‌اید را حذف کنید:
      /opt/symas/bin/ldapdelete -v -H ldap://{HOST}:{PORT} -w {credentials} -D "cn=manager,dc=apigee,dc=com" "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"
  4. متوقف کردن SymasLDAP در dc-1:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
  5. کامپوننت SymasLDAP را از روی dc-1 حذف نصب کنید:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap uninstall

روتر

این بخش نحوه‌ی از کار انداختن یک روتر را توضیح می‌دهد. برای جزئیات بیشتر در مورد حذف روتر، به بخش حذف سرور مراجعه کنید.

مراحل زیر روتر را از dc-1 غیرفعال می‌کند. اگر چندین گره روتر در dc-1 پیکربندی شده است، مراحل را در تمام گره‌های روتر یکی یکی انجام دهید.

توجه: در اینجا فرض بر این است که پورت بررسی سلامت روتر ۱۵۹۹۹ در متعادل‌کننده بار شما پیکربندی شده است و مسدود کردن پورت ۱۵۹۹۹ باعث می‌شود روتر غیرقابل دسترس شود. ممکن است برای مسدود کردن پورت به دسترسی root نیاز داشته باشید.

برای از کار انداختن روتر، مراحل زیر را انجام دهید:

  1. با مسدود کردن پورت ۱۵۹۹۹، پورت بررسی سلامت، دسترسی به روترها را غیرفعال کنید. اطمینان حاصل کنید که ترافیک زمان اجرا در این مرکز داده مسدود شده است:

    iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
  2. تأیید کنید که روتر قابل دسترسی است:

    curl -vvv -X GET http://{ROUTER_IP}:15999/v1/servers/self/reachable

    خروجی باید مشابه زیر باشد:

    About to connect() to 10.126.0.160 port 15999 (#0)
    Trying 10.126.0.160...
    Connection refused
    Failed connect to 10.126.0.160:15999; Connection refused
    Closing connection 0
    curl: (7) Failed connect to 10.126.0.160:15999; Connection refused
  3. همانطور که در بخش «دریافت UUIDها» توضیح داده شده است، UUID روتر را دریافت کنید.
  4. روتر را متوقف کنید:
    /opt/apigee/apigee-service/bin/apigee-service edge-router stop
  5. با دستور زیر، گیت‌وی پادهای (Pods) موجود در سازمان را فهرست کنید:
    curl -u  <AdminEmailID>:'<AdminPassword>' -X GET "http://{MS_IP}:8080/v1/organizations/{ORG}/pods"

    درباره پادها را ببینید.

  6. نوع سرور را از حالت ثبت خارج کنید:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=router&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
  7. سرور را از حالت ثبت خارج کنید:
    curl -u <AdminEmailID>:'<AdminPassword>’ -X DELETE http://{MS_IP}:8080/v1/servers/UUID
  8. حذف edge-router :
    /opt/apigee/apigee-service/bin/apigee-service edge-router uninstall
    به حذف یک سرور مراجعه کنید.
  9. برای فعال کردن پورت مسدود شده ۱۵۹۹۹، قوانین iptables پاک کنید:
    iptables -F

پردازشگر پیام

این بخش نحوه‌ی غیرفعال کردن پردازشگر پیام از dc-1 را شرح می‌دهد. برای جزئیات بیشتر در مورد حذف پردازشگر پیام، به بخش «حذف سرور» مراجعه کنید.

از آنجایی که فرض می‌کنیم dc-1 دارای یک نصب خوشه‌ای ۱۲ گره‌ای است، دو گره پردازشگر پیام در dc-1 پیکربندی شده‌اند. دستورات زیر را در هر دو گره اجرا کنید.

  1. UUID های پردازنده‌های پیام را، همانطور که در Get UUID ها توضیح داده شده است، دریافت کنید.
  2. پردازنده پیام را متوقف کنید:
    apigee-service edge-message-processor stop
  3. نوع سرور را از حالت ثبت خارج کنید:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=message-processor&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
  4. یک محیط را از پردازشگر پیام جدا می‌کند.
    curl -H "Content-Type:application/x-www-form-urlencoded" <AdminEmailID>:'<AdminPassword>’  \
    -X POST http://{MS_IP}:8080/v1/organizations/{ORG}/environments/{ENV}/servers \
    -d "action=remove&uuid=UUID"
  5. نوع سرور را از حالت ثبت خارج کنید:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=message-processor&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
  6. حذف پردازشگر پیام:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor uninstall
  7. سرور را از حالت ثبت خارج کنید:
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID

سرور Qpid و Qpidd

این بخش نحوه غیرفعال کردن Qpid Server ( edge-qpid-server ) و Qpidd ( apigee-qpidd ) را توضیح می‌دهد. دو گره Qpid در dc-1 پیکربندی شده‌اند، بنابراین باید مراحل زیر را برای هر دو گره انجام دهید:

  1. همانطور که در بخش «دریافت UUIDها» توضیح داده شده است، UUID مربوط به Qpidd را دریافت کنید.
  2. edge-qpid-server و apigee-qpidd را متوقف کنید:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
  3. لیستی از Analytics و گروه‌های مصرف‌کننده دریافت کنید:
    curl -u <AdminEmailID>:'<AdminPassword>' -X GET http://{MS_IP}:8080/v1/analytics/groups/ax
  4. Qpid را از گروه مصرف‌کننده حذف کنید:
    curl -u <AdminEmailID>:'<AdminPassword>' -H "Content-Type: application/json"  -X DELETE \ "http://{MS_IP}:8080/v1/analytics/groups/ax/{ax_group}/consumer-groups/{consumer_group}/consumers/{QPID_UUID}"
  5. Qpid را از گروه تحلیلی حذف کنید:
    curl -v -u <AdminEmailID>:'<AdminPassword>' \
    -X DELETE "http://{MS_IP}:8080/v1/analytics/groups/ax/{ax_group}/servers?uuid={QPID_UUID}&type=qpid-server"
  6. سرور Qpid را از نصب Edge غیرفعال کنید:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \
    -d "type=qpid-server&region=dc-1&pod=central&uuid={QPID_UUID}&action=remove"
  7. سرور Qpid را از نصب Edge حذف کنید:
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
  8. تمام اجزای edge-qpid-server را روی همه گره‌ها مجدداً راه‌اندازی کنید تا مطمئن شوید که تغییر توسط آن اجزا دریافت شده است:
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server wait_for_ready
  9. edge-qpid-server و apigee-qpidd را حذف نصب کنید:
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall
    $ /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall

پستگرس و پستگرس‌کیوال

مرکز داده‌ای که در حال از رده خارج کردن آن هستید، می‌تواند دارای یک Postgres master یا یک Postgres standby باشد. بخش‌های زیر نحوه از رده خارج کردن آنها را توضیح می‌دهند:

از رده خارج کردن Postgres master

توجه: اگر Postgres master را غیرفعال می‌کنید، حتماً هر یک از گره‌های آماده به کار موجود را به عنوان یک postgres master جدید ارتقا دهید. در حالی که QPID داده‌ها را در بافر صف می‌کند، اگر Postgres master برای مدت طولانی در دسترس نباشد، خطر از دست دادن داده‌های تحلیلی وجود دارد.

برای غیرفعال کردن Postgres master:

  1. با دنبال کردن دستورالعمل‌های موجود در لینک‌های زیر، از گره اصلی Postgres در dc-1 نسخه پشتیبان تهیه کنید:
  2. UUID های سرورهای Postgres را همانطور که در Get UUID ها توضیح داده شده است، دریافت کنید.
  3. در dc-1، edge-postgres-server و apigee-postgresql را روی سرور اصلی فعلی متوقف کنید:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
  4. در گره آماده به کار در dc-2، دستور زیر را وارد کنید تا آن را به گره اصلی تبدیل کنید:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql promote-standby-to-master <IP of OLD Progress master>

    توجه: اگر بیش از یک گره Postgres آماده به کار دارید، باید ورودی‌های میزبان را در گره اصلی جدید اضافه کنید و تنظیمات تکثیر را برای همه گره‌های آماده به کار postgres موجود به‌روزرسانی کنید.

    برای افزودن ورودی‌های میزبان به مستر جدید Postgres: مراحل موجود در بخش مربوطه در زیر را دنبال کنید:

    اگر فقط یک گره آماده به کار باقی مانده باشد

    برای مثال، فرض کنید قبل از غیرفعال کردن، سه گره Postgres پیکربندی شده بودند. شما گره اصلی موجود را غیرفعال کردید و یکی از گره‌های آماده به کار postgres باقی مانده را به گره اصلی ارتقا دادید. گره آماده به کار باقی مانده را با مراحل زیر پیکربندی کنید:

    1. در سرور اصلی جدید، فایل پیکربندی را ویرایش کنید تا موارد زیر را تنظیم کنید:
      PG_MASTER=IP_or_DNS_of_new_PG_MASTER
      PG_STANDBY=IP_or_DNS_of_PG_STANDBY
    2. فعال کردن تکثیر روی سرور اصلی جدید:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle

    اگر بیش از یک گره آماده به کار باقی مانده باشد

    1. پیکربندی زیر را در /opt/apigee/customer/application/postgresql.properties اضافه کنید:
      conf_pg_hba_replication.connection=host replication apigee standby_1_ip/32 trust \n host replication apigee standby_2_ip/32 trust
    2. مطمئن شوید که فایل /opt/apigee/customer/application/postgresql.properties متعلق به کاربر apigee است:
      chown apigee:apigee /opt/apigee/customer/application/postgresql.properties
    3. apigee-postgresql را مجدداً راه‌اندازی کنید:
      apigee-service apigee-postgresql restart
    4. برای به‌روزرسانی تنظیمات تکثیر در یک گره آماده به کار:

      1. فایل پیکربندی /opt/silent.conf را تغییر دهید و فیلد PG_MASTER را با آدرس IP سرور اصلی جدید Postgres به‌روزرسانی کنید.
      2. داده‌های قدیمی Postgres را با دستور زیر حذف کنید:
        rm -rf /opt/apigee/data/apigee-postgresql/
      3. تنظیم تکثیر روی گره آماده به کار:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
    5. با وارد کردن دستور زیر در dc-2، تأیید کنید که Postgres master به درستی تنظیم شده است:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
    6. سرورهای Postgresql را از گروه analytics و گروه consumer حذف و اضافه کنید.
      1. سرور قدیمی Postgres را با دنبال کردن دستورالعمل‌های موجود در بخش «حذف سرور Postgres از یک گروه تحلیلی» از گروه تحلیلی حذف کنید.
      2. با دنبال کردن دستورالعمل‌های موجود در بخش «افزودن یک سرور Postgres موجود به یک گروه تحلیلی»، یک سرور postgres جدید به گروه analytics اضافه کنید.
    7. سرور قدیمی postgres را از dc-1 غیرفعال کنید:
      curl -u <AdminEmailID>:<AdminPassword> -X POST http://{MS_IP}:8080/v1/servers \
      -d "type=postgres-server®ion=dc-1&pod=analytics&uuid=UUID&action=remove"
            
    8. سرور قدیمی postgres را از dc-1 حذف کنید:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
    9. اکنون می‌توان با خیال راحت Postgres master قدیمی را از رده خارج کرد. edge-postgres-server و apigee-postgresql را حذف نصب کنید:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall

    از رده خارج کردن Postgres در حالت آماده به کار

    نکته: مستندات مربوط به نصب خوشه‌ای ۱۲ گره‌ای، گره postgresql مربوط به dc-1 را به عنوان گره اصلی (master) نشان می‌دهد، اما برای راحتی، در این بخش فرض بر این است که گره postgresql مربوط به dc-1 آماده به کار و گره postgresql مربوط به dc-2 اصلی است.

    برای غیرفعال کردن Postgres در حالت آماده به کار، مراحل زیر را انجام دهید:

    1. با دنبال کردن دستورالعمل‌های موجود در Get UUIDs ، شناسه‌های کاربری (UUID) سرورهای Postgres را دریافت کنید.
    2. apigee-postgresql روی گره آماده به کار فعلی در dc-1 متوقف کنید:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
    3. سرورهای Postgresql را از گروه analytics و گروه consumer حذف و اضافه کنید.
      1. سرور قدیمی Postgres را با دنبال کردن دستورالعمل‌های موجود در بخش «حذف سرور Postgres از یک گروه تحلیلی» از گروه تحلیلی حذف کنید.
      2. با دنبال کردن دستورالعمل‌های موجود در بخش «افزودن یک سرور Postgres موجود به یک گروه تحلیلی»، یک سرور postgres جدید به گروه analytics اضافه کنید.
    4. سرور قدیمی postgres را از dc-1 غیرفعال کنید:
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \
      -d "type=postgres-server&region=dc-1&pod=analytics&uuid=UUID&action=remove"
    5. سرور قدیمی postgres را از dc-1 حذف کنید:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
    6. اکنون می‌توان با خیال راحت Postgres master قدیمی را از رده خارج کرد. edge-postgres-server و apigee-postgresql را حذف نصب کنید:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall

    نگهبان باغ وحش و کاساندرا

    این بخش نحوه‌ی از کار انداختن سرورهای ZooKeeper و Cassandra را در یک مجموعه‌ی دو مرکز داده توضیح می‌دهد.

    اگر بیش از دو مرکز داده دارید، مطمئن شوید که تمام ارجاعات به گره‌ای که قرار است از سرویس خارج شود (در این مورد dc-1) را از تمام فایل‌های پیکربندی خاموش در تمام مراکز داده باقی‌مانده حذف کرده‌اید. برای گره‌های کاساندرا که قرار است از سرویس خارج شوند، آن میزبان‌ها را از CASS_HOSTS حذف کنید. گره‌های کاساندرا باقی‌مانده باید در ترتیب اصلی CASS_HOSTS باقی بمانند.

    نکته‌ای در مورد ZooKeeper: شما باید هنگام تغییر ویژگی ZK_HOST در فایل پیکربندی، حد نصاب گره‌های رأی‌دهنده را حفظ کنید تا از عملکرد صحیح مجموعه ZooKeeper اطمینان حاصل شود. تعداد گره‌های رأی‌دهنده در پیکربندی شما باید فرد باشد. برای اطلاعات بیشتر، به وظایف نگهداری Apache ZooKeeper مراجعه کنید.

    برای از رده خارج کردن سرورهای ZooKeeper و Cassandra:

    1. با دنبال کردن دستورالعمل‌های موجود در لینک‌های زیر، از گره‌های dc-1 Cassandra و ZooKeeper نسخه پشتیبان تهیه کنید:
    2. UUID های سرورهای ZooKeeper و Cassandra را در مرکز داده ای که گره های Cassandra در شرف از رده خارج شدن هستند، فهرست کنید.

      apigee-adminapi.sh servers list -r dc-1 -p central -t application-datastore --admin <AdminEmailID> --pwd '<AdminPassword>' --host localhost
    3. نوع سرور را از حالت ثبت خارج کنید:
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MS_IP:8080/v1/servers -d "type=cache-datastore&type=user-settings-datastore&type=scheduler-datastore&type=audit-datastore&type=apimodel-datastore&type=application-datastore&type=edgenotification-datastore&type=identityzone-datastore&type=user-settings-datastore&type=auth-datastore&region=dc-1&pod=central&uuid=UUID&action=remove"
    4. سرور را از حالت ثبت خارج کنید:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
    5. فایل پیکربندی را با IPهای گره‌های از رده خارج‌شده که از ZK_HOSTS و CASS_HOSTS حذف شده‌اند، به‌روزرسانی کنید.

      مثال: فرض کنید IP های $IP1 $IP2 $IP3 در dc-1 و $IP4 $IP5 $IP6 در dc-2 دارید و می‌خواهید dc-1 را از رده خارج کنید. در این صورت باید IP های $IP1 $IP2 $IP3 از فایل‌های پیکربندی حذف کنید.

      • ورودی‌های فایل پیکربندی موجود:
        ZK_HOSTS="$IP1 $IP2 $IP3 $IP4 $IP5 $IP6"
        CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1, $IP4:2,1 $IP5:2,1 $IP6:2,1”
      • ورودی‌های جدید فایل پیکربندی:
        ZK_HOSTS="$IP4 $IP5 $IP6"
        CASS_HOSTS="$IP4:2,1 $IP5:2,1 $IP6:2,1"
    6. فایل پیکربندی بی‌صدا (اصلاح‌شده در مرحله‌ی e) را با IPهای گره‌های حذف‌شده و از رده خارج‌شده به‌روزرسانی کنید و پروفایل سرور مدیریت را روی تمام گره‌هایی که سرورهای مدیریت را میزبانی می‌کنند، اجرا کنید:
      /opt/apigee/apigee-setup/bin/setup.sh -p ms -f updated_config_file
    7. فایل پیکربندی را با IP های گره‌های حذف شده و از رده خارج شده به‌روزرسانی کنید و پروفایل MP/RMP را روی تمام گره‌های روتر و پردازنده پیام اجرا کنید:
      • اگر روتر لبه و پردازنده پیام در یک گره پیکربندی شده‌اند، وارد کنید:
        /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f updated_config_file
      • اگر روتر لبه و پردازنده پیام روی گره‌های جداگانه پیکربندی شده‌اند، موارد زیر را وارد کنید:

        برای روتر:

        /opt/apigee/apigee-setup/bin/setup.sh -p r -f updated_config_file

        برای پردازشگر پیام:

        /opt/apigee/apigee-setup/bin/setup.sh -p mp -f updated_config_file
    8. تمام گره‌های Qpid را مجدداً پیکربندی کنید، به طوری که IP گره‌های از رده خارج شده از فایل پاسخ حذف شوند:
      /opt/apigee/apigee-setup/bin/setup.sh -p qs -f updated_config_file
    9. تمام گره‌های Postgres را مجدداً پیکربندی کنید، به طوری که IP گره‌های از رده خارج شده از فایل پاسخ حذف شوند:
      /opt/apigee/apigee-setup/bin/setup.sh -p ps -f updated_config_file
    10. تغییر فضای کلید system_auth . اگر Cassandra auth را روی یک گره Cassandra موجود فعال کرده‌اید، با اجرای دستور زیر، ضریب تکثیر فضای کلید system_auth را به‌روزرسانی کنید:
      ALTER KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'dc-2': '3'};

      این دستور ضریب تکثیر را روی '3' تنظیم می‌کند که نشان‌دهنده سه گره کاساندرا در خوشه است. در صورت لزوم، این مقدار را تغییر دهید.

      پس از تکمیل این مرحله، توپولوژی کاساندرا نباید در هیچ یک از فضاهای کلید، dc-1 داشته باشد.

    11. گره‌های کاساندرا را روی dc-1، یکی یکی از کار بیندازید.

      برای غیرفعال کردن گره‌های کاساندرا، دستور زیر را وارد کنید:

      /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP -u cassandra -pw '<AdminPassword>' decommission
    12. اتصال گره‌های کاساندرا از dc-1 را با استفاده از یکی از دستورات زیر بررسی کنید:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p '<AdminPassword>'

      یا دستور تأیید ثانویه که باید روی گره از رده خارج شده اجرا شود:

      /opt/apigee/apigee-cassandra/bin/nodetool netstats

      دستور بالا باید مقدار زیر را برگرداند:

      Mode: DECOMMISSIONED
    13. پروفایل DS را برای همه گره‌های Cassandra و ZooKeeper در dc-2 اجرا کنید:
      /opt/apigee/apigee-setup/bin/setup.sh -p ds -f updated_config_file
    14. توقف apigee-cassandra و apigee-zookeeper در dc-1:
      apigee-service apigee-cassandra stop
      apigee-service apigee-zookeeper stop
    15. حذف نصب apigee-cassandra و apigee-zookeeper در dc-1:
      apigee-service apigee-cassandra uninstall
      apigee-service apigee-zookeeper uninstall

    اتصالات را از dc-1 حذف کنید

    برای حذف اتصالات از dc-1، مراحل زیر را انجام دهید:

    1. اتصالات را از dc-1 حذف کنید.
      1. تمام پادهای موجود را در زیر سازمان فهرست کنید:
        curl -v -u  <AdminEmailID>:'<AdminPassword>' -X GET "http://MS_IP:8080/v1/o/ORG/pods"
      2. برای بررسی اینکه آیا همه اتصالات حذف شده‌اند، UUID های سرورهای مرتبط با پادها را دریافت کنید:
        curl -v -u  <AdminEmailID>:'<AdminPassword>' \
        -X GET "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1/servers"

        اگر این دستور هیچ UUID را برنگرداند، مراحل قبلی تمام اتصالات را حذف کرده‌اند و می‌توانید از مرحله بعدی صرف نظر کنید. در غیر این صورت، مرحله بعدی را انجام دهید.

      3. تمام اتصالات سرور را برای UUID های به دست آمده در مرحله قبل حذف کنید:
        curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
      4. جدا کردن Org از پاد:
        curl -v -u  <AdminEmailID>:'<AdminPassword>'  "http://MS_IP:8080/v1/o/ORG/pods" -d "action=remove&region=dc-1&pod=gateway-1" -H "Content-Type: application/x-www-form-urlencoded" -X POST
    2. غلاف‌ها را حذف کنید:
      curl -v -u <AdminEmailID>:'<AdminPassword>' "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1" -X DELETE
    3. منطقه را حذف کنید.
      curl -v -u <AdminEmailID>:'<AdminPassword>'  "http://MS_IP:8080/v1/regions/dc-1" -X DELETE

    در این مرحله، شما از رده خارج کردن dc-1 را تکمیل کرده‌اید.

    پیوست

    عیب‌یابی

    اگر پس از انجام مراحل قبلی، هنوز سرورها در برخی از پادها وجود دارند، مراحل زیر را برای لغو ثبت و حذف سرورها انجام دهید. توجه: در صورت لزوم، انواع و پاد را تغییر دهید.

    1. با استفاده از دستور زیر، UUID ها را دریافت کنید:
      apigee-adminapi.sh servers list -r dc-1 -p POD -t  --admin <AdminEmailID> --pwd  '<AdminPassword>’ --host localhost
    2. نوع سرور لغو ثبت نام:
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MP_IP:8080/v1/servers -d "type=TYPE=REGION=dc-1&pod=POD&uuid=UUID&action=remove"
    3. سرورها را یکی یکی حذف کنید:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MP_IP:8080/v1/servers/UUID

    اعتبارسنجی

    با استفاده از دستورات زیر می‌توانید از غیرفعال شدن سرویس اطمینان حاصل کنید.

    سرور مدیریت

    1. دستورات زیر را از سرورهای مدیریت روی تمام مناطق اجرا کنید.
      curl -v -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=central&region=dc-1
      curl -v -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=gateway&region=dc-1
      curl -v -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=analytics&region=dc-1
    2. دستور زیر را روی تمام اجزا اجرا کنید تا الزامات پورت برای همه پورت‌های مدیریتی بررسی شود.
      curl -v http://MS_IP:8080/v1/servers/self
    3. گروه تحلیلی را بررسی کنید.
      curl -v  -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/o/ORG/e/ENV/provisioning/axstatus
      curl -v  -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/analytics/groups/ax
    4. گره‌های کاساندرا/باغ‌وحش

      1. در تمام گره‌های کاساندرا، دستور زیر را وارد کنید:
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> statusthrift

        این دستور وضعیت running یا not running را برای آن گره خاص برمی‌گرداند.

      2. در یک گره، وارد کنید:
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> ring
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> status

        دستورات بالا اطلاعات مرکز داده فعال را برمی‌گردانند.

      3. در گره‌های ZooKeeper، ابتدا وارد کنید:
        echo ruok | nc <host> 2181
        

        این دستور imok را برمی‌گرداند.

        بعد، وارد کنید:

        echo stat | nc <host> 2181 | grep Mode
        

        مقدار Mode که توسط دستور فوق برگردانده می‌شود، یکی از موارد زیر خواهد بود: observerleader ) یا follower ).

      4. در یک گره ZooKeeper، دستور زیر را اجرا کنید:
        /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh >> /tmp/zk-tree.out.txt
      5. روی گره اصلی Postgres، دستور زیر را اجرا کنید:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

        تأیید کنید که پاسخ می‌گوید گره، گره اصلی است.

      6. روی گره آماده به کار، دستور زیر را اجرا کنید:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

        مطمئن شوید که پاسخ، آماده به کار بودن گره را تأیید می‌کند.

      7. با استفاده از دستور زیر وارد پایگاه داده PostgreSQL شوید:
        psql -h localhost -d apigee -U postgres

        وقتی از شما خواسته شد، رمز عبور کاربر postgres را وارد کنید (پیش‌فرض: postgres ).

        سپس کوئری زیر را برای بررسی حداکثر client_received_start_timestamp اجرا کنید:

        SELECT max(client_received_start_timestamp) FROM "analytics"."$org.$env.fact" LIMIT 1;

      سیاههها

      لاگ‌های مربوط به قطعات را بررسی کنید تا مطمئن شوید خطایی وجود ندارد.