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

Đôi khi, bạn có thể cần ngừng hoạt động một trung tâm dữ liệu. Ví dụ: nếu 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 lượt cài đặt cụm 12 nút:

  • dc-1 là trung tâm dữ liệu sắp 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 bắt buộc phải cài đặt hệ điều hành mới để ngừng hoạt động một 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

Hãy lưu ý những điều sau khi bạn ngừng sử dụ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 sắp ngừng hoạt động, đồng thời chuyển hướng lưu lượng truy cập đó đế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 được dung lượng trong cụm Apigee. Để bù đắp cho sự thiếu hụt này, hãy cân nhắc việ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ó khả năng dữ liệu phân tích sẽ bị mất, tuỳ thuộc vào các thành phần phân tích được cài đặt trong trung tâm dữ liệu đang ngừng hoạt độ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 ngừng hoạt động một 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ả cá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 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ác với dc-1 trước khi ngừng sử dụ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 sử dụng Bộ định tuyến, hãy tắt khả năng tiếp cận 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 thời gian chạy nào được chuyển hướng đến các Bộ định tuyến sắp 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 2 trung tâm dữ liệu, hãy nhớ xoá tất cả các tệp tham chiếu đến nút sắp ngừng hoạt động (trong trường hợp này là dc-1) khỏi tất cả tệp cấu hình im lặng trên tất cả các 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 phải giữ nguyên thứ tự ban đầu của CASS_HOSTS.

  • Postgres: Nếu bạn ngừng sử dụng máy chủ chính Postgres, hãy nhớ quảng bá bất kỳ nút dự phòng nào có sẵn làm máy chủ chính postgres 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 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 ngừng sử dụng bất kỳ thành phần nào, bạn nên sao lưu toàn bộ các nút. Sử dụng quy trình cho phiên bản Edge hiện tại để thực hiện việc 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.

  • Đảm bảo 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 không có lưu lượng truy cập thời gian chạy nào đang đến trung tâm dữ liệu mà bạn đang ngừng hoạt động.

Trình tự ngừng sử dụng các thành phần

Nếu cài đặt Edge cho đám mây riêng trên nhiều nút, bạn nên ngừng sử dụng 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 Edge (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. Bộ xử lý thông báo (edge-message-processor)
  6. Máy chủ Qpid và Qpidd (edge-qpid-server và apigee-qpidd)
  7. Postgres và cơ sở dữ liệu 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 sử dụ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 sử dụ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. 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á 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 ngừng sử dụng OpenLDAP trên dc-1.

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

Để ngừng sử dụ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. Hãy 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 thi 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 nhập trong LDAP dc-2 và đảm bảo mục nhập đó không xuất hiện trong LDAP của dc-1.

    Bạn có thể làm theo các bước bên dưới để tạo một người dùng chỉ có thể đọ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 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 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á Trình định tuyến.

Các bước sau đây sẽ ngừng sử dụng 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 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à 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 sử dụng một 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. Xác minh rằng bạn có thể truy cập vào 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 pod 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ề Pod.

  6. Huỷ đăng ký loại máy chủ:
    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. 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 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

Trình xử lý thông báo

Phần này mô tả cách ngừng sử dụng Trình xử lý thông báo từ 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á Trình xử lý thông báo.

Vì chúng ta giả định rằng dc-1 có cấu hình cài đặt cụm 12 nút, nên có hai nút Trình 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 Trình xử lý thông báo, như mô tả trong phần Lấy UUID.
  2. Dừng Trình 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&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
  4. Huỷ liên kết một môi trường khỏi Trình xử lý thông báo.
    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. 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ô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 sử dụng 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. Nhận UUID cho Qpidd, như mô tả trong phần Nhận 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 các nhóm người tiêu dùng và 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 quá trình 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 quá trình 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áy chủ chính Postgres hoặc 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 ứng dụng đó:

Ngừng sử dụng máy chủ chính Postgres

Lưu ý: Nếu bạn ngừng sử dụng máy chủ chính Postgres, hãy nhớ quảng bá bất kỳ nút dự phòng nào có sẵn làm máy chủ chính postgres mới. Mặc dù QPID xếp hàng dữ liệu vùng đệm, nhưng nếu máy chủ Postgres 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 sử dụng máy chủ chính Postgres:

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

    Để thêm mục nhập máy chủ lưu trữ vào máy chủ 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 máy chủ chính hiện có và nâng cấp một trong các nút dự phòng postgres còn lại lên máy chủ 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 tệp gốc 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 máy chủ 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 trong /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 rằng tệp /opt/apigee/customer/application/postgresql.properties thuộc quyền 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 máy chủ 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 máy chủ chính Postgres được thiết lập chính xác bằng cách nhập lệnh sau trong 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 bài viết Xoá máy chủ Postgres khỏi nhóm phân tích.
      2. Thêm máy chủ postgres mới vào nhóm phân tích theo hướng dẫn trong bài viết 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®ion=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. Bạn có thể ngừng sử dụng máy chủ Postgres cũ một cách an toàn. 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

    Ngừng sử dụng chế độ chờ Postgres

    Lưu ý: Tài liệu về cách cài đặt 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, chúng tôi giả định rằng nút postgresql dc-1 là nút dự phòng và nút postgresql dc-2 là nút chính.

    Để ngừng sử dụng chế độ chờ Postgres, hãy làm theo các bước sau:

    1. Lấy UUID của máy chủ Postgres, làm 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 bài viết Xoá máy chủ Postgres khỏi nhóm phân tích.
      2. Thêm máy chủ postgres mới vào nhóm phân tích theo hướng dẫn trong bài viết 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. Bạn có thể ngừng sử dụng máy chủ Postgres cũ một cách an toàn. 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 ngừng hoạt động các 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 2 trung tâm dữ liệu, hãy nhớ xoá tất cả các tệp tham chiếu đến nút sắp ngừng hoạt động (trong trường hợp này là dc-1) khỏi tất cả tệp cấu hình im lặng trên tất cả các 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 phải giữ nguyên thứ tự ban đầu của CASS_HOSTS.

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

    Cách ngừng sử dụng máy chủ ZooKeeper và Cassandra:

    1. Hãy 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 các 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 các địa chỉ IP của các nút đã ngừng hoạt động đã bị xoá khỏi ZK_HOSTSCASS_HOSTS.

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

      • Các mục nhập tệp cấu hình hiện có:
        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 tệp cấu hình mới:
        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 (đã sửa đổi ở bước e) bằng IP của các nút đã xoá và ngừng hoạt động, đồng thời 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 đã xoá và chạy hồ sơ MP/RMP trên tất cả các nút Trình xử lý thông báo và Trình định tuyến:
      • 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ù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ạn định cấu hình Trình xử lý tin nhắn và Bộ định tuyến cạnh trên các nút riêng biệt, hãy nhập như sau:

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

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

        Đối với Trình 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 đó các IP của các nút đã ngừng hoạt động đã 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 đó xoá IP của các nút đã ngừng hoạt động 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 Cassandra sẽ không có dc-1 trong bất kỳ không gian khoá nào.

    11. Hãy lần lượt ngừng hoạt động các nút Cassandra trên dc-1.

      Để ngừng sử dụ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ụ sẽ 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-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 đã bị xoá hay chưa, hãy lấy UUID của các 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ề 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ả liên kết máy chủ cho các 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 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

    Tại thời điểm này, bạn đã hoàn tất việc ngừng hoạt động của 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, 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à 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 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ý

    1. 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
    2. 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
    3. 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
    4. Nút Cassandra/ZooKeeper

      1. 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ể đó.

      2. 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 về trung tâm dữ liệu đang hoạt động.

      3. Trên các nút ZooKeeper, trước tiên, hãy nhập:
        echo ruok | nc <host> 2181
        

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

        Tiếp theo, 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 các giá trị sau: observer, leader hoặc follower.

      4. Trong một nút ZooKeeper, hãy chạy:
        /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh >> /tmp/zk-tree.out.txt
      5. 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.

      6. Trên nút chờ, hãy chạy:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

        Đảm bảo rằng phản hồi xác nhận nút đang ở chế độ chờ.

      7. Đăng nhập vào cơ sở dữ liệu PostgreSQL bằng lệnh sau:
        psql -h localhost -d apigee -U postgres

        Khi được nhắc, hãy nhập mật khẩu cho người dùng postgres (mặc định: postgres).

        Sau đó, hãy thực thi truy vấn sau để kiểm tra client_received_start_timestamp tối đa:

        SELECT max(client_received_start_timestamp) FROM "analytics"."$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.