Ngừng hoạt động của một trung tâm dữ liệu

Đôi khi, bạn có thể cần phải ngừng hoạt động một trung tâm dữ liệu. Ví dụ: nếu đang nâng cấp hệ điều hành, bạn cần cài đặt hệ điều hành mới trong một trung tâm dữ liệu mới, sau đó ngừng sử dụng trung tâm dữ liệu cũ. Các phần sau đây trình bày ví dụ về việc ngừng hoạt động một trung tâm dữ liệu, trong đó có hai trung tâm dữ liệu, dc-1 và dc-2, trên một bản cài đặt theo cụm 12 nút:

  • dc-1 là trung tâm dữ liệu sẽ ngừng hoạt động.
  • dc-2 là trung tâm dữ liệu thứ hai, được dùng trong quy trình ngừng hoạt động.

Nếu bạn đang nâng cấp hệ điều hành, dc-2 có thể là trung tâm dữ liệu mà bạn đã cài đặt phiên bản mới của hệ điều hành (OS). Tuy nhiên, bạn không cần phải cài đặt hệ điều hành mới để ngừng hoạt động của trung tâm dữ liệu.

Những điều cần cân nhắc trước khi ngừng hoạt động một trung tâm dữ liệu

Hãy lưu ý những điều sau khi bạn ngừng hoạt động một trung tâm dữ liệu:

  • Chặn tất cả lưu lượng truy cập thời gian chạy và quản lý đến trung tâm dữ liệu đang ngừng hoạt động và chuyển hướng chúng đến các trung tâm dữ liệu khác.
  • Sau khi ngừng hoạt động trung tâm dữ liệu, bạn sẽ giảm dung lượng trong cụm Apigee. Để bù đắp, hãy cân nhắc tăng dung lượng trong các trung tâm dữ liệu còn lại hoặc thêm trung tâm dữ liệu sau khi ngừng hoạt động.
  • Trong quá trình ngừng hoạt động, có thể xảy ra tình trạng mất dữ liệu phân tích, tuỳ thuộc vào thành phần phân tích nào được cài đặt trong trung tâm dữ liệu đang ngừng hoạt động. Bạn có thể tìm thêm thông tin chi tiết trong phần Thêm hoặc xoá nút Qpid.
  • Trước khi ngừng hoạt động một trung tâm dữ liệu, bạn nên tìm hiểu cách định cấu hình tất cả các thành phần trên tất cả trung tâm dữ liệu, đặc biệt là các máy chủ OpenLDAP, ZooKeeper, Cassandra và Postgres. Bạn cũng nên sao lưu tất cả các thành phần và cấu hình của chúng.

Trước khi bắt đầu

  • Máy chủ quản lý: Tất cả các bước ngừng hoạt động đều phụ thuộc nhiều vào Máy chủ quản lý. Nếu chỉ có một Máy chủ quản lý, bạn nên cài đặt một thành phần Máy chủ quản lý mới trên một trung tâm dữ liệu không phải dc-1 trước khi ngừng hoạt động Máy chủ quản lý trên dc-1 và đảm bảo rằng một trong các Máy chủ quản lý luôn hoạt động.
  • Bộ định tuyến: Trước khi ngừng hoạt động một Bộ định tuyến, hãy tắt khả năng kết nối của Bộ định tuyến bằng cách chặn cổng 15999. Đảm bảo không có lưu lượng truy cập trong thời gian chạy nào được chuyển hướng đến Bộ định tuyến đang ngừng hoạt động.
  • Cassandra và ZooKeeper: Các phần dưới đây mô tả cách ngừng hoạt động dc-1 trong chế độ thiết lập hai trung tâm dữ liệu. Nếu bạn có nhiều hơn hai trung tâm dữ liệu, hãy nhớ xoá tất cả tệp tham chiếu đến nút đang ngừng hoạt động (dc-1 trong trường hợp này) khỏi tất cả tệp cấu hình tự động trên tất cả trung tâm dữ liệu còn lại. Đối với các nút Cassandra cần ngừng hoạt động, hãy loại bỏ các máy chủ lưu trữ đó khỏi CASS_HOSTS. Các nút Cassandra còn lại phải giữ nguyên thứ tự ban đầu của CASS_HOSTS.

  • Postgres: Nếu bạn ngừng sử dụng Postgres chính, hãy nhớ nâng cấp một trong các nút dự phòng hiện có thành Postgres chính mới. Mặc dù máy chủ QPID giữ một vùng đệm trong hàng đợi, nhưng nếu máy chủ chính Postgres không hoạt động trong thời gian dài hơn, bạn có nguy cơ mất dữ liệu phân tích.

Điều kiện tiên quyết

  • Trước khi ngừng hoạt động bất kỳ thành phần nào, bạn nên sao lưu hoàn toàn tất cả các nút. Sử dụng quy trình cho phiên bản Edge hiện tại của bạn để thực hiện sao lưu. Để biết thêm thông tin về tính năng sao lưu, hãy xem bài viết Sao lưu và khôi phục.

    Lưu ý: Nếu bạn có nhiều nút Cassandra hoặc ZooKeeper, hãy sao lưu từng nút một, vì quá trình sao lưu sẽ tạm thời tắt ZooKeeper.

  • Đảm bảo rằng Edge đang hoạt động trước khi ngừng hoạt động bằng cách sử dụng lệnh:
    /opt/apigee/apigee-service/bin/apigee-all status
  • Đảm bảo rằng hiện không có lưu lượng truy cập thời gian chạy nào đến trung tâm dữ liệu mà bạn đang ngừng hoạt động.

Thứ tự ngừng hoạt động của các thành phần

Nếu cài đặt Edge cho đám mây riêng tư trên nhiều nút, bạn nên ngừng hoạt động Các thành phần biên trên các nút đó theo thứ tự sau:

  1. Edge UI (edge-ui)
  2. Máy chủ quản lý (edge-management-server)
  3. OpenLDAP (apigee-openldap)
  4. Bộ định tuyến (bộ định tuyến biên)
  5. Bộ xử lý thông báo (edge-message-processor)
  6. Máy chủ Qpid và Qpidd (edge-qpid-server và apigee-qpidd)
  7. Cơ sở dữ liệu Postgres và PostgreSQL (edge-postgres-server và apigee-postgresql)
  8. ZooKeeper (apigee-zookeeper)
  9. Cassandra (apigee-cassandra)

Các phần sau đây giải thích cách ngừng hoạt động từng thành phần.

Giao diện người dùng Edge

Để dừng và gỡ cài đặt thành phần Giao diện người dùng Edge của dc-1, hãy nhập các lệnh sau:

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

Máy chủ quản lý

Để ngừng hoạt động Máy chủ quản lý trên dc-1, hãy làm theo các bước sau:

  1. Dừng Máy chủ quản lý trên dc-1:
    apigee-service edge-management-server stop
  2. Tìm UUID của Máy chủ quản lý đã đăng ký trong dc-1:
    curl -u <AdminEmailID>:'<AdminPassword>' \
    -X GET “http://{MS_IP}:8080/v1/servers?pod=central&region=dc-1&type=management-server”
  3. Loại máy chủ huỷ đăng ký:
    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. Xoá máy chủ. Lưu ý: Nếu các thành phần khác cũng được cài đặt trên máy chủ này, hãy huỷ đăng ký tất cả các thành phần đó trước khi xoá UUID.
    curl -u <AdminEmailID>:'<AdminPassword> -X DELETE http://{MS_IP}:8080/v1/servers/{UUID}
  5. Gỡ cài đặt thành phần Máy chủ quản lý trên dc-1:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server uninstall

Open LDAP

Phần này giải thích cách ngừng sử dụng OpenLDAP trên dc-1.

Lưu ý: Nếu bạn có nhiều hơn hai trung tâm dữ liệu, hãy xem phần Thiết lập với nhiều hơn hai trung tâm dữ liệu bên dưới.

Để ngừng hoạt động OpenLDAP trên dc-1, hãy làm theo các bước sau:

  1. Sao lưu nút OpenLDAP dc-1 bằng cách làm theo các bước trong phần Cách sao lưu.
  2. Ngắt quá trình sao chép dữ liệu giữa hai trung tâm dữ liệu, dc-1 và dc-2, bằng cách thực hiện các bước sau trong cả hai trung tâm dữ liệu.

    1. Kiểm tra trạng thái hiện tại:
      ldapsearch -H ldap://{HOST}:{PORT} -LLL -x -b "cn=config" -D "cn=admin,cn=config" -w {credentials} -o ldif-wrap=no 'olcSyncRepl' | grep olcSyncrepl

      Kết quả sẽ tương tự như kết quả sau:

      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. Tạo tệp break_repl.ldif chứa các lệnh sau:
      dn: olcDatabase={2}bdb,cn=config
      changetype: modify
      delete: olcSyncRepl
      
      dn: olcDatabase={2}bdb,cn=config
      changetype: modify
      delete: olcMirrorMode
    3. Chạy lệnh ldapmodify:
      ldapmodify -x -w {credentials} -D "cn=admin,cn=config" -H "ldap://{HOST}:{PORT}/" -f path/to/file/break_repl.ldif

      Kết quả sẽ tương tự như kết quả sau:

      modifying entry "olcDatabase={2}bdb,cn=config"
      modifying entry "olcDatabase={2}bdb,cn=config"
  3. Bạn có thể xác minh rằng dc-2 không còn sao chép sang dc-1 bằng cách tạo một mục trong LDAP của dc-2 và đảm bảo mục đó không xuất hiện trong LDAP của dc-1.

    Nếu muốn, bạn có thể làm theo các bước dưới đây để tạo người dùng chỉ có quyền đọc trong nút OpenLDAP dc-2, sau đó kiểm tra xem người dùng đó có được sao chép hay không. Sau đó, người dùng sẽ bị xoá.

    1. Tạo tệp readonly-user.ldif trong dc-2 có nội dung sau:
      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. Thêm người dùng bằng lệnh `ldapadd` trong dc-2:
      ldapadd -H ldap://{HOST}:{PORT} -w {credentials} -D "cn=manager,dc=apigee,dc=com" -f path/to/file/readonly-user.ldif

      Kết quả sẽ tương tự như sau:

      adding new entry "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"
    3. Tìm người dùng trong dc-1 để đảm bảo người dùng không được sao chép. Nếu người dùng không có trong dc-1, bạn sẽ chắc chắn rằng cả hai LDAP đều không còn sao chép:
      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

      Kết quả sẽ tương tự như kết quả sau:

      No such object (32)
      Matched DN: ou=users,ou=global,dc=apigee,dc=com
    4. Xoá người dùng chỉ có quyền đọc mà bạn đã thêm trước đó:
      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. Dừng OpenLDAP trong dc-1:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
  5. Gỡ cài đặt thành phần OpenLDAP trên dc-1:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap uninstall

Bộ định tuyến

Phần này giải thích cách ngừng sử dụng Bộ định tuyến. Hãy xem phần Xoá máy chủ để biết thêm thông tin chi tiết về cách xoá Bộ định tuyến.

Các bước sau đây sẽ ngừng hoạt động của Bộ định tuyến khỏi dc-1. Nếu có nhiều nút Bộ định tuyến được định cấu hình trong dc-1, hãy thực hiện các bước trong tất cả các nút Bộ định tuyến từng nút một

Lưu ý: Ở đây, giả sử rằng cổng kiểm tra tình trạng 15999 của bộ định tuyến được định cấu hình trong trình cân bằng tải của bạn và việc chặn cổng 15999 sẽ khiến bộ định tuyến không thể truy cập được. Bạn có thể cần quyền truy cập thư mục gốc để chặn cổng.

Để ngừng hoạt động của Bộ định tuyến, hãy làm theo các bước sau:

  1. Vô hiệu hoá khả năng kết nối của bộ định tuyến bằng cách chặn cổng 15999, cổng kiểm tra tình trạng. Đảm bảo rằng lưu lượng truy cập trong thời gian chạy bị chặn trên trung tâm dữ liệu này:

    iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
  2. Xác minh rằng bạn có thể kết nối với bộ định tuyến:

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

    Kết quả sẽ tương tự như kết quả sau:

    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. Lấy UUID của Bộ định tuyến, như mô tả trong phần Lấy UUID.
  4. Dừng bộ định tuyến:
    /opt/apigee/apigee-service/bin/apigee-service edge-router stop
  5. Liệt kê các nhóm cổng hiện có trong tổ chức bằng lệnh sau:
    curl -u  <AdminEmailID>:<AdminPassword> -X GET "http://{MS_IP}:8080/v1/organizations/{ORG}/pods"

    Xem bài viết Giới thiệu về nhóm quảng cáo.

  6. Huỷ đăng ký loại máy chủ:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \
    -d "type=router&amp;region=dc-1&amp;pod=gateway-1&amp;uuid=UUID&amp;action=remove"
  7. Xoá máy chủ:
    curl -u <AdminEmailID>:'<AdminPassword>’ -X DELETE http://{MS_IP}:8080/v1/servers/UUID
  8. Gỡ cài đặt edge-router:
    /opt/apigee/apigee-service/bin/apigee-service edge-router uninstall
    Xem bài viết Xoá máy chủ.
  9. Xoá các quy tắc iptables để bật cổng 15999 bị chặn:
    iptables -F

Bộ xử lý thông báo

Phần này mô tả cách ngừng hoạt động của Bộ xử lý thông báo khỏi dc-1. Hãy xem phần Xoá máy chủ để biết thêm thông tin chi tiết về cách xoá Bộ xử lý thông báo.

Vì chúng tôi giả định rằng dc-1 có bản cài đặt theo cụm 12 nút, nên có hai nút Bộ xử lý thông báo được định cấu hình trong dc-1. Thực hiện các lệnh sau trong cả hai nút.

  1. Lấy UUID của Bộ xử lý thông báo, như mô tả trong phần Lấy UUID.
  2. Dừng Bộ xử lý thông báo:
    apigee-service edge-message-processor stop
  3. Huỷ đăng ký loại máy chủ:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers  \
    -d "type=message-processor&amp;region=dc-1&amp;pod=gateway-1&amp;uuid=UUID&amp;action=remove"/pre>
  4. Disassociate an environment from the Message Processor.

    Note: You need to remove the bindings on each org/env that associates the Message Processor UUID.

    curl -H "Content-Type:application/x-www-form-urlencoded" -u <AdminEmailID>:''  \
    -X POST http://{MS_IP}:8080/v1/organizations/{ORG}/environments/{ENV}/servers \
    -d "action=remove&uuid=UUID"
  5. Huỷ đăng ký loại máy chủ:
    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. Gỡ cài đặt Bộ xử lý thông báo:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor uninstall
  7. Huỷ đăng ký máy chủ:
    curl -u <AdminEmailID>:'<AdminPassword> -X DELETE http://{MS_IP}:8080/v1/servers/UUID

Máy chủ Qpid và Qpidd

Phần này giải thích cách ngừng hoạt động của Máy chủ Qpid (edge-qpid-server) và Qpidd (apigee-qpidd). Có hai nút Qpid được định cấu hình trong dc-1, vì vậy, bạn phải thực hiện các bước sau cho cả hai nút:

  1. Lấy UUID cho Qpidd, như mô tả trong phần Lấy UUID.
  2. Dừng edge-qpid-server và apigee-qpidd:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
  3. Xem danh sách các nhóm người dùng và nhóm Analytics:
    curl -u <AdminEmailID>:'<AdminPassword>' -X GET http://{MS_IP}:8080/v1/analytics/groups/ax
  4. Xoá Qpid khỏi nhóm người dùng:
    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. Xoá Qpid khỏi nhóm phân tích:
    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. Huỷ đăng ký máy chủ Qpid khỏi bản cài đặt 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. Xoá máy chủ Qpid khỏi bản cài đặt Edge:
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
  8. Khởi động lại tất cả các thành phần edge-qpid-server trên tất cả các nút để đảm bảo các thành phần đó nhận được thay đổi:
    $ /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. Gỡ cài đặt edge-qpid-server và apigee-qpidd:
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall
    $ /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall

Postgres và Postgresql

Trung tâm dữ liệu mà bạn đang ngừng hoạt động có thể có một máy chủ chính Postgres hoặc một máy chủ dự phòng Postgres. Các phần sau đây giải thích cách ngừng sử dụng các thành phần này:

Đang ngừng hoạt động bản chính Postgres

Lưu ý: Nếu bạn ngừng sử dụng Postgres chính, hãy nhớ nâng cấp một trong các nút dự phòng hiện có thành Postgres chính mới. Mặc dù hàng đợi QPID lưu dữ liệu vào vùng đệm, nhưng nếu Postgres chính không hoạt động trong thời gian dài, bạn có nguy cơ mất dữ liệu phân tích.

Cách ngừng hoạt động của Postgres chính:

  1. Sao lưu nút chính Postgres dc-1 bằng cách làm theo hướng dẫn trong các đường liên kết sau:
  2. Lấy UUID của máy chủ Postgres, như mô tả trong phần Lấy UUID.
  3. Trên dc-1, hãy dừng edge-postgres-server và apigee-postgresql trên bản chính hiện tại:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
  4. Trên nút dự phòng của dc-2, hãy nhập lệnh sau để đặt nút này làm nút chính:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql promote-standby-to-master <IP of OLD Progress master>

    Lưu ý: Nếu có nhiều nút Postgres dự phòng, bạn phải thêm các mục nhập máy chủ lưu trữ trên nút chính mới và cập nhật chế độ cài đặt sao chép cho tất cả các nút Postgres dự phòng hiện có.

    Để thêm mục nhập máy chủ lưu trữ vào bản chính Postgres mới: hãy làm theo các bước trong phần thích hợp bên dưới:

    Nếu chỉ còn một nút dự phòng

    Ví dụ: giả sử trước khi ngừng hoạt động, có 3 nút Postgres được định cấu hình. Bạn đã ngừng hoạt động nút chính hiện tại và thăng cấp một trong các nút dự phòng postgres còn lại thành nút chính. Định cấu hình nút dự phòng còn lại theo các bước sau:

    1. Trên bản chính mới, hãy chỉnh sửa tệp cấu hình để đặt:
      PG_MASTER=IP_or_DNS_of_new_PG_MASTER
      PG_STANDBY=IP_or_DNS_of_PG_STANDBY
    2. Bật tính năng sao chép trên bản chính mới:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle

    Nếu còn nhiều nút dự phòng

    1. Thêm cấu hình sau vào /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. Đảm bảo tệp /opt/apigee/customer/application/postgresql.properties thuộc sở hữu của người dùng apigee:
            chown apigee:apigee /opt/apigee/customer/application/postgresql.properties
    3. Khởi động lại apigee-postgresql:
      apigee-service apigee-postgresql restart
    4. Cách cập nhật chế độ cài đặt sao chép trên nút dự phòng:

      1. Sửa đổi tệp cấu hình /opt/silent.conf và cập nhật trường PG_MASTER bằng địa chỉ IP của bản chính Postgres mới.
      2. Xoá mọi dữ liệu Postgres cũ bằng lệnh sau:
        rm -rf /opt/apigee/data/apigee-postgresql/
      3. Thiết lập tính năng sao chép trên nút dự phòng:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
    5. Xác minh rằng Postgres chính được thiết lập chính xác bằng cách nhập lệnh sau vào dc-2:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
    6. Xoá và thêm máy chủ Postgresql khỏi nhóm phân tích và nhóm người dùng.
      1. Xoá máy chủ Postgres cũ khỏi nhóm phân tích theo hướng dẫn trong phần Xoá máy chủ Postgres khỏi nhóm phân tích.
      2. Thêm một máy chủ postgres mới vào nhóm phân tích theo hướng dẫn trong phần Thêm máy chủ Postgres hiện có vào nhóm phân tích.
    7. Huỷ đăng ký máy chủ postgres cũ khỏi 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"<
    8. Xoá máy chủ postgres cũ khỏi dc-1:
      curl -u >AdminEmailID>:'>AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
    9. Giờ đây, bạn có thể ngừng sử dụng bản chính Postgres cũ một cách an toàn. Gỡ cài đặt edge-postgres-server và apigee-postgresql:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall

    Ngừng hoạt động Postgres dự phòng

    Lưu ý: Tài liệu về bản cài đặt theo cụm 12 nút cho thấy nút postgresql dc-1 là nút chính, nhưng để thuận tiện, trong phần này, giả sử nút postgresql dc-1 là nút dự phòng và nút postgresql dc-2 là nút chính.

    Để ngừng hoạt động của Postgres dự phòng, hãy làm theo các bước sau:

    1. Lấy UUID của máy chủ Postgres theo hướng dẫn trong phần Lấy UUID.
    2. Dừng apigee-postgresql trên nút dự phòng hiện tại trong dc-1:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
    3. Xoá và thêm máy chủ Postgresql khỏi nhóm phân tích và nhóm người dùng.
      1. Xoá máy chủ Postgres cũ khỏi nhóm phân tích theo hướng dẫn trong phần Xoá máy chủ Postgres khỏi nhóm phân tích.
      2. Thêm một máy chủ postgres mới vào nhóm phân tích theo hướng dẫn trong phần Thêm máy chủ Postgres hiện có vào nhóm phân tích.
    4. Huỷ đăng ký máy chủ postgres cũ khỏi 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. Xoá máy chủ postgres cũ khỏi dc-1:
      curl -u >AdminEmailID>:'>AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
    6. Giờ đây, bạn có thể ngừng sử dụng bản chính Postgres cũ một cách an toàn. Gỡ cài đặt edge-postgres-server và apigee-postgresql:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall

    ZooKeeper và Cassandra

    Phần này giải thích cách ngừng hoạt động của máy chủ ZooKeeper và Cassandra trong chế độ thiết lập hai trung tâm dữ liệu.

    Nếu bạn có nhiều hơn hai trung tâm dữ liệu, hãy nhớ xoá tất cả tệp tham chiếu đến nút đang ngừng hoạt động (dc-1 trong trường hợp này) khỏi tất cả tệp cấu hình tự động trên tất cả trung tâm dữ liệu còn lại. Đối với các nút Cassandra cần ngừng hoạt động, hãy loại bỏ các máy chủ lưu trữ đó khỏi CASS_HOSTS. Các nút Cassandra còn lại phải giữ nguyên thứ tự ban đầu của CASS_HOSTS.

    Lưu ý về ZooKeeper: Bạn phải duy trì một số đại biểu của các nút cử tri trong khi sửa đổi thuộc tính ZK_HOST trong tệp cấu hình để đảm bảo rằng tập hợp ZooKeeper vẫn hoạt động. Bạn phải có số lượng nút bỏ phiếu lẻ trong cấu hình của mình. Để biết thêm thông tin, hãy xem phần Nhiệm vụ bảo trì Apache ZooKeeper.

    Cách ngừng hoạt động máy chủ ZooKeeper và Cassandra:

    1. Sao lưu các nút Cassandra và ZooKeeper dc-1 bằng cách làm theo hướng dẫn trong các đường liên kết sau:
    2. Liệt kê UUID của máy chủ ZooKeeper và Cassandra trong trung tâm dữ liệu nơi các nút Cassandra sắp ngừng hoạt động.

      apigee-adminapi.sh servers list -r dc-1 -p central -t application-datastore --admin <AdminEmailID> --pwd '<AdminPassword>' --host localhost
    3. Huỷ đăng ký loại máy chủ:
      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. Huỷ đăng ký máy chủ:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
    5. Cập nhật tệp cấu hình bằng IP của các nút đã ngừng hoạt động được xoá khỏi ZK_HOSTS và CASS_HOSTS.

      Ví dụ: Giả sử bạn có IP $IP1 $IP2 $IP3 trong dc-1 và $IP4 $IP5 $IP6 trong dc-2, đồng thời bạn đang ngừng hoạt động dc-1. Sau đó, bạn nên xoá các địa chỉ IP $IP1 $IP2 $IP3 khỏi tệp cấu hình.

      • Các mục hiện có trong tệp cấu hình:
        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”
      • Mục mới trong tệp cấu hình:
        ZK_HOSTS="$IP4 $IP5 $IP6"
        CASS_HOSTS="$IP4:2,1 $IP5:2,1 $IP6:2,1"
    6. Cập nhật tệp cấu hình tự động (đã sửa đổi ở bước e) bằng IP của các nút đã ngừng hoạt động và chạy hồ sơ Máy chủ quản lý trên tất cả các nút lưu trữ Máy chủ quản lý:
      /opt/apigee/apigee-setup/bin/setup.sh -p ms -f updated_config_file
    7. Cập nhật tệp cấu hình bằng IP của các nút đã ngừng hoạt động và chạy hồ sơ MP/RMP trên tất cả các nút Bộ định tuyến và Bộ xử lý thông báo:
      • Nếu Bộ định tuyến biên và Bộ xử lý thông báo được định cấu hình trên cùng một nút, hãy nhập:
        /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f updated_config_file
      • Nếu Bộ định tuyến biên và Bộ xử lý thông báo được định cấu hình trên các nút riêng biệt, hãy nhập thông tin sau:

        Đối với Bộ định tuyến:

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

        Đối với Bộ xử lý thông báo:

        /opt/apigee/apigee-setup/bin/setup.sh -p mp -f updated_config_file
    8. Định cấu hình lại tất cả các nút Qpid, trong đó IP của các nút đã ngừng hoạt động sẽ bị xoá khỏi Tệp phản hồi:
      /opt/apigee/apigee-setup/bin/setup.sh -p qs -f updated_config_file
    9. Định cấu hình lại tất cả các nút Postgres, trong đó IP của các nút đã ngừng hoạt động sẽ bị xoá khỏi Tệp phản hồi:
      /opt/apigee/apigee-setup/bin/setup.sh -p ps -f updated_config_file
    10. Thay đổi không gian khoá system_auth. Nếu bạn đã bật tính năng xác thực Cassandra trên một nút Cassandra hiện có, hãy cập nhật hệ số sao chép của không gian khoá system_auth bằng cách chạy lệnh sau:
      ALTER KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'dc-2': '3'};

      Lệnh này đặt hệ số sao chép thành '3', cho biết ba nút Cassandra trong cụm. Sửa đổi giá trị này nếu cần.

      Sau khi hoàn tất bước này, cấu trúc liên kết Cassandra không được có dc-1 trong bất kỳ không gian khoá nào.

    11. Huỷ từng nút Cassandra trên dc-1.

      Để ngừng hoạt động các nút Cassandra, hãy nhập lệnh sau:

      /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP -u cassandra -pw '<AdminPassword>' decommission
    12. Kiểm tra kết nối của các nút Cassandra từ dc-1 bằng một trong các lệnh sau:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p '<AdminPassword>'

      Hoặc lệnh xác minh phụ cần chạy trên nút đã ngừng hoạt động:

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

      Lệnh trên sẽ trả về:

      Mode: DECOMMISSIONED
    13. Chạy hồ sơ DS cho tất cả các nút Cassandra và ZooKeeper trong dc-2:
      /opt/apigee/apigee-setup/bin/setup.sh -p ds -f updated_config_file
    14. Dừng apigee-cassandra và apigee-zookeeper trong dc-1:
      apigee-service apigee-cassandra stop
      apigee-service apigee-zookeeper stop
    15. Gỡ cài đặt apigee-cassandra và apigee-zookeeper trong dc-1:
      apigee-service apigee-cassandra uninstall
      apigee-service apigee-zookeeper uninstall

    Xoá các liên kết khỏi dc-1

    Để xoá các liên kết khỏi dc-1, hãy làm theo các bước sau:

    1. Xoá các liên kết khỏi dc-1.
      1. Liệt kê tất cả các nhóm hiện có trong tổ chức:
        curl -v -u  <AdminEmailID>:<AdminPassword> -X GET "http://MS_IP:8080/v1/o/ORG/pods"
      2. Để kiểm tra xem tất cả các liên kết đã được xoá hay chưa, hãy lấy UUID của các máy chủ liên kết với nhóm:
        curl -v -u  <AdminEmailID>:<AdminPassword> \
        -X GET "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1/servers"

        Nếu lệnh này không trả về bất kỳ UUID nào, thì các bước trước đó đã xoá tất cả các liên kết và bạn có thể bỏ qua bước tiếp theo. Nếu không, hãy thực hiện bước tiếp theo.

      3. Xoá tất cả các liên kết máy chủ cho UUID thu được ở bước trước:
        curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
      4. Huỷ liên kết Tổ chức khỏi nhóm:
        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. Xoá các pod:
      curl -v -u <AdminEmailID>:<AdminPassword> "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1" -X DELETE
    3. Xoá khu vực.
      curl -v -u <AdminEmailID>:<AdminPassword>  "http://MS_IP:8080/v1/regions/dc-1" -X DELETE

    Lưu ý: Nếu bạn bỏ lỡ một trong các bước xoá máy chủ, thì bước trên sẽ trả về thông báo lỗi cho biết một máy chủ cụ thể trong nhóm vẫn tồn tại. Vì vậy, hãy xoá các tệp này bằng cách làm theo các bước khắc phục sự cố bên dưới, đồng thời tuỳ chỉnh các loại trong lệnh curl.

    Đến đây, bạn đã hoàn tất việc ngừng hoạt động dc-1.

    Phụ lục

    Khắc phục sự cố

    Nếu sau khi thực hiện các bước trước đó mà vẫn còn máy chủ trong một số nhóm, hãy làm theo các bước sau để huỷ đăng ký và xoá máy chủ. Lưu ý: Thay đổi các loại và pod nếu cần.

    1. Lấy UUID bằng lệnh sau:
      apigee-adminapi.sh servers list -r dc-1 -p POD -t  --admin <AdminEmailID> --pwd  '<AdminPassword>’ --host localhost
    2. Loại máy chủ huỷ đăng ký:
      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. Xoá từng máy chủ:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MP_IP:8080/v1/servers/UUID

    Xác thực

    Bạn có thể xác thực việc ngừng hoạt động bằng các lệnh sau.

    Máy chủ quản lý

    Chạy các lệnh sau từ Máy chủ quản lý trên tất cả các khu vực.

    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

    Chạy lệnh sau trên tất cả các thành phần để kiểm tra yêu cầu về cổng cho tất cả các cổng quản lý.

    curl -v http://MS_IP:8080/v1/servers/self

    Kiểm tra nhóm số liệu phân tích.

    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

    Nút Cassandra/ZooKeeper

    Trên tất cả các nút Cassandra, hãy nhập:

    /opt/apigee/apigee-cassandra/bin/nodetool -h <host> statusthrift

    Thao tác này sẽ trả về trạng thái running hoặc not running cho nút cụ thể đó.

    Trên một nút, hãy nhập:

    /opt/apigee/apigee-cassandra/bin/nodetool -h <host> ring
    /opt/apigee/apigee-cassandra/bin/nodetool -h <host> status

    Các lệnh trên sẽ trả về thông tin trung tâm dữ liệu đang hoạt động.

    Trên các nút ZooKeeper, trước tiên hãy nhập:

    echo ruok | nc <host> 2181

    Lệnh này sẽ trả về imok.

    Sau đó, hãy nhập:

    echo stat | nc <host> 2181 | grep Mode

    Giá trị của Mode do lệnh trên trả về sẽ là một trong những giá trị sau: observer, leader hoặc follower.

    Trong một nút ZooKeeper:

    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh >> /tmp/zk-tree.out.txt

    Trên nút chính Postgres, hãy chạy:

    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

    Xác thực rằng phản hồi cho biết nút này là nút chính.

    Trên nút dự phòng:

    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

    Xác thực rằng phản hồi cho biết nút này là nút dự phòng.

    Đăng nhập vào cơ sở dữ liệu PostgreSQL bằng lệnh

    psql -h localhost -d apigee -U postgres

    Khi được nhắc, hãy nhập mật khẩu người dùng "postgres" là 'postgres'. Chọn max(client_received_start_timestamp) trong số liệu phân tích.

    ”$org.$env.fact” limit 1;

    Nhật ký

    Kiểm tra nhật ký trên các thành phần để đảm bảo không có lỗi.