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 gỡ bỏ 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 đó gỡ bỏ 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 của một trung tâm dữ liệu, trong đó có 2 trung tâm dữ liệu, dc-1 và dc-2, trên một chế độ 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 tháo dỡ thiết bị.

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 nơi bạn đã cài đặt phiên bản hệ điều hành (OS) mới. Tuy nhiên, bạn không bắt buộc phải cài đặt hệ điều hành mới để gỡ bỏ trung tâm dữ liệu.

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

Khi bạn ngừng hoạt động một trung tâm dữ liệu, hãy ghi nhớ những điều sau:

  • Chặn tất cả lưu lượng truy cập quản lý và thời gian chạy đến trung tâm dữ liệu sẽ bị ngừng sử dụ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 của trung tâm dữ liệu, dung lượng của cụm Apigee bạn sẽ bị giảm. Để bù đắp, hãy cân nhắc việc tăng dung lượng tại các trung tâm dữ liệu còn lại hoặc bổ sung trung tâm dữ liệu sau khi ngừng hoạt động.
  • Trong quá trình gỡ bỏ, dữ liệu phân tích có thể bị mất, 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 bị ngừng sử dụng. Bạn có thể xem thêm thông tin chi tiết trong phần Thêm hoặc xoá nút Qpid.
  • Trước khi gỡ bỏ trung tâm dữ liệu, bạn nên hiểu cách tất cả các thành phần được định cấu hình trên tất cả cá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ả thành phần và cấu hình của các thành phần đó.

Trước khi bắt đầu

  • Máy chủ quản lý: Tất cả các bước gỡ bỏ đề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 thành phần Máy chủ quản lý mới trên trung tâm dữ liệu khác với dc-1 trước khi gỡ bỏ 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 dùng được.
  • Bộ định tuyến: Trước khi ngừng hoạt động Bộ định tuyến, hãy 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. Đảm bảo không có lưu lượng truy cập trong thời gian chạy nào đang hướng đến Bộ định tuyến đã ngừng hoạt động.
  • Cassandra và ZooKeeper: Các phần dưới đây mô tả cách gỡ bỏ dc-1 trong cá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á mọi tham chiếu đến nút đã ngừng hoạt động (dc-1 trong trường hợp này) khỏi mọi tệp cấu hình im lặng trên mọi trung tâm dữ liệu còn lại. Đối với các nút Cassandra sắp ngừng hoạt động, hãy xoá các máy chủ đó khỏi CASS_HOSTS. Các nút Cassandra còn lại sẽ vẫn giữ nguyên thứ tự ban đầu là CASS_HOSTS.

  • Postgres: Nếu bạn ngừng hoạt động quảng cáo chính Postgres, hãy nhớ quảng bá bất kỳ nút nào trong số các nút chế độ chờ hiện có dưới dạng một nút chính postgres mới. Mặc dù máy chủ QPID lưu một vùng đệm trong hàng đợi, nhưng nếu bản chính Postgres không hoạt động trong một 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 gỡ bỏ bất kỳ thành phần nào, bạn nên sao lưu toàn bộ tất cả các nút. Hãy sử dụng quy trình cho phiên bản Edge hiện tại của bạn để sao lưu. Để biết thêm thông tin về quá trình 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 tạm thời tắt ZooKeeper.

  • Đảm bảo rằng Edge đang hoạt động và đang chạy trước khi ngừng hoạt động bằ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 nào trong thời gian chạy đang đến trung tâm dữ liệu mà bạn đang gỡ bỏ.

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

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

  1. Giao diện người dùng cạnh (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 cạnh)
  5. Trình xử lý thư (edge-message- xử lý)
  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 gỡ bỏ 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ý

Để gỡ bỏ 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 mã nhận dạng duy nhất (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. Huỷ đăng ký loại máy chủ:
    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, trước tiên, hãy huỷ đăng ký tất cả các thành phần đó trước khi xoá mã nhận dạng duy nhất (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

Mở LDAP

Phần này giải thích cách gỡ bỏ lệnh 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 bằng nhiều hơn hai trung tâm dữ liệu ở bên dưới.

Để gỡ bỏ OpenLDAP trên dc-1, hãy làm theo các bước sau:

  1. Sao lưu nút dc-1 OpenLDAP bằng cách làm theo các bước trong Cách sao lưu.
  2. Ngắt bản sao 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 đây 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 một 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 nhập trong LDAP dc-2 và đảm bảo mục đó không hiển thị trong LDAP của dc-1.

    Nếu muốn, bạn có thể làm theo các bước bên dưới để tạo người dùng chỉ có quyền đọc trong nút OpenLDAP, 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 một tệp readonly-user.ldif trong dc-2 với 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ư:

      adding new entry "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"

    3. Tìm kiế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 có quyền chỉ có thể đọ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 Open LDAP 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 dừng hoạt động của 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 gỡ bỏ 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 lần lượt từng bước trong tất cả các nút Bộ định tuyến

Lưu ý: Ở đây, giả định 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 và cổng chặn 15999 sẽ khiến bộ định tuyến không truy cập được. Bạn có thể cần có quyền truy cập thư mục gốc để chặn cổng.

Để gỡ bỏ Bộ định tuyến, hãy làm theo các bước sau:

  1. Tắt 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. Kiểm tra để đảm bảo rằng bộ định tuyến có thể truy cập được:

    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 có sẵn trong tổ chức bằng lệnh sau:
    curl -u  <AdminEmailID>:<AdminPassword> -X GET "http://{MS_IP}:8080/v1/organizations/{ORG}/pods"

    Xem phần Giới thiệu về nhóm.

  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. Huỷ đăng ký 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 phần Xoá máy chủ.
  9. Xoá các quy tắc iptables để bật cổng bị chặn 15999:
    iptables -F

Bộ xử lý thư

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

Vì chúng ta giả định rằng dc-1 có chế độ cài đặt theo cụm 12 nút, nên có 2 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 mã nhận dạng duy nhất (UUID) của Bộ xử lý thông báo theo mô tả trong phần Nhận mã nhận dạng duy nhất (UUID).
  2. Dừng bộ xử lý tin nhắn:
    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 Trình xử lý thư:
    /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 gỡ cài đặt Máy chủ Qpid (edge-qpid-server) và Qpidd (apigee-qpidd). Có 2 nút Qpid được định cấu hình trong dc-1 nên 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-serverapigee-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 Analytics và nhóm người tiêu dùng:
    curl -u <AdminEmailID>:'<AdminPassword>' -X GET http://{MS_IP}:8080/v1/analytics/groups/ax
  4. Xoá Qpid khỏi nhóm người tiêu 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 số liệu 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ả 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 đó nắm bắt 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 bạn đang ngừng hoạt động có thể có chế độ chờ chính Postgres hoặc chế độ chờ Postgres. Các phần sau đây giải thích cách gỡ bỏ chúng:

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

Lưu ý: Nếu bạn gỡ bỏ thiết bị chính Postgres, hãy nhớ quảng bá bất kỳ nút nào trong số các nút chế độ chờ hiện có dưới dạng một nút chính mới cho Postgres. Mặc dù QPID sắp xếp dữ liệu vùng đệm, nếu bản chính Postgres không hoạt động trong một thời gian dài, bạn có nguy cơ mất dữ liệu phân tích.

Để huỷ gỡ bỏ lệnh Postgres chính:

  1. Sao lưu nút chính dc-1 Postgres bằng cách làm theo hướng dẫn trong các đường liên kết sau:
  2. Lấy mã nhận dạng duy nhất (UUID) của máy chủ Postgres, như mô tả trong phần Nhận mã nhận dạng duy nhất (UUID).
  3. Trên dc-1, hãy dừng edge-postgres-serverapigee-postgresql trên trang cái 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 chờ trên 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 chờ, bạn phải thêm các mục nhập máy chủ lưu trữ trên trang chủ mới và cập nhật chế độ cài đặt sao chép cho tất cả các nút chế độ chờ postgres hiện có.

    Để thêm các mục nhập máy chủ lưu trữ vào trang cái 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 chế độ chờ

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

    1. Trên trang cái mới, chỉnh sửa tệp cấu hình để thiết lập:
      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 trang cái 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 chế độ chờ

    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 nhân bản trên nút chế độ chờ:

      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 trang cái Postgres mới.
      2. Xoá mọi dữ liệu cũ của Postgres bằng lệnh sau:
        rm -rf /opt/apigee/data/apigee-postgresql/
      3. Thiết lập bản sao trên nút chế độ chờ:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
    5. Xác minh rằng trang chính Postgres đượ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 các máy chủ Postgresql khỏi nhóm Analytics và nhóm người tiêu 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 Analytics bằng cách làm theo hướng dẫn trong phần Thêm một máy chủ Postgres hiện có vào nhóm Analytics.
    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. Ứng dụng chính Postgres cũ hiện đã an toàn để gỡ bỏ. Gỡ cài đặt edge-postgres-serverapigee-postgresql:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall

    Đang ngừng hoạt động ở chế độ chờ Postgres

    Lưu ý: Tài liệu 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, người dùng giả định rằng nút postgresql dc-1 ở chế độ chờ và nút postgresql dc-2 là nút chính.

    Để dừng hoạt động ở chế độ chờ Postgres, hãy làm theo các bước sau:

    1. Lấy mã nhận dạng duy nhất (UUID) của máy chủ Postgres, làm theo hướng dẫn trong phần Lấy mã nhận dạng duy nhất (UUID).
    2. Dừng apigee-postgresql trên nút chế độ chờ 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 các máy chủ Postgresql khỏi nhóm Analytics và nhóm người tiêu 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 Analytics bằng cách làm theo hướng dẫn trong phần Thêm một máy chủ Postgres hiện có vào nhóm Analytics.
    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. Ứng dụng chính Postgres cũ hiện đã an toàn để gỡ bỏ. Gỡ cài đặt edge-postgres-serverapigee-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 tắt máy chủ ZooKeeper và Cassandra bằng cá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á mọi tham chiếu đến nút đã ngừng hoạt động (dc-1 trong trường hợp này) khỏi mọi tệp cấu hình im lặng trên mọi trung tâm dữ liệu còn lại. Đối với các nút Cassandra sắp ngừng hoạt động, hãy xoá các máy chủ đó khỏi CASS_HOSTS. Các nút Cassandra còn lại sẽ vẫn giữ nguyên thứ tự ban đầu là CASS_HOSTS.

    Lưu ý về ZooKeeper: Bạn phải duy trì số lượng 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 nhóm ZooKeeper vẫn hoạt động. Cấu hình của bạn phải có số lượng nút cử tri là số lẻ. Để biết thêm thông tin, hãy xem các nhiệm vụ bảo trì trong Apache ZooKeeper.

    Cách gỡ bỏ máy chủ ZooKeeper và Cassandra:

    1. Sao lưu các nút dc-1 Cassandra và ZooKeeper bằng cách làm theo hướng dẫn trong các đường liên kết sau:
    2. Liệt kê các 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 sử dụng đã bị xoá khỏi ZK_HOSTSCASS_HOSTS.

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

      • Các mục hiện có đối với 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 nhập mới cho 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 im lặng (được sửa đổi ở bước e) bằng IP của các nút đã ngừng sử dụng đã bị xoá và chạy hồ sơ máy chủ quản lý trên tất cả các nút đang 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 sử dụng đã bị xoá và chạy cấu hình 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 cạnh và Trình xử lý tin nhắn đượ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 cạnh và Trình 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ư:

        /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 đó xoá IP của các nút đã ngừng uỷ quyền 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 uỷ quyền 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 phím 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ố nhân bản của không gian phím 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 3 nút Cassandra trong cụm. Bạn có thể 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 phím nào.

    11. Gỡ bỏ các nút Cassandra trên dc-1 từng nút một.

      Để gỡ bỏ 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ụ sẽ chạy trên nút đã ngừng sử dụ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-cassandraapigee-zookeeper trong dc-1:
      apigee-service apigee-cassandra stop
      apigee-service apigee-zookeeper stop
    15. Gỡ cài đặt apigee-cassandraapigee-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 máy chủ liên kết với các 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ề mã nhận dạng duy nhất (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á mọi liên kết máy chủ đối với các mã nhận dạng duy nhất (UUID) thu được ở bước trước:
        curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
      4. Hủy 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á nhóm:
      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ề một 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 lớp đó 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.

    Tại thời điểm này, bạn đã hoàn tất quá trình 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ột số nhóm vẫn còn máy chủ, hãy làm theo các bước để huỷ đăng ký và xoá máy chủ đó. Lưu ý: Thay đổi loại và nhóm 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. Huỷ đăng ký loại máy chủ:
      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 nhận kết quả

    Bạn có thể xác thực quá trình gỡ bỏ 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 các 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, 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 đang hoạt động trong trung tâm dữ liệu.

    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 đó, nhập:

    echo stat | nc <host> 2181 | grep Mode

    Giá trị của Mode được lệnh trên trả về sẽ là một trong các 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 đó là nút chính.

    Trên nút chế độ chờ:

    /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 đó ở chế độ chờ.

    Đă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' dưới dạng 'postgres'. Chọn max(client_received_start_timestamp) trong số liệu phân tích.

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

    Nhật ký

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