Đô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 đ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 rồi ngừng hoạt độ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ó 2 trung tâm dữ liệu là dc-1 và dc-2 trên một cụm gồ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 bắt buộc phải cài đặt mộ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 một trung tâm dữ liệu
Khi ngừng hoạt động một trung tâm dữ liệu, hãy lưu ý những điều sau:
- Chặn tất cả lưu lượng truy cập thời gian chạy và lưu lượng truy cập quản lý đến trung tâm dữ liệu đang ngừng hoạt động và 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ông suất trong cụm Apigee. Để bù đắp cho việc này, hãy cân nhắc tăng công suất ở 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 những 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á các 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ủ SymasLDAP, 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 rất 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 ngoà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 Bộ định tuyến, hãy vô hiệu hoá khả năng truy cập 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 đang ngừng hoạt động.
- Cassandra và ZooKeeper:
Các phần bên dưới 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 thông tin tham chiếu đến nút sẽ ngừng hoạt động (dc-1 trong trường hợp này) khỏi tất cả cá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ẽ ngừng hoạt động, hãy xoá những 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ủaCASS_HOSTS
. - Postgres: Nếu bạn ngừng hoạt động máy chủ chính Postgres, hãy nhớ nâng cấp một trong các nút dự phòng hiện có thành 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 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 đầy đủ tất cả các nút. Hãy dùng quy trình dành cho phiên bản Edge hiện tại của bạn để 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 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 trên nhiều nút, bạn nên ngừng hoạt động các thành phần Edge trên những nút đó theo thứ tự sau:
- Giao diện người dùng Edge (edge-ui)
- Máy chủ quản lý (edge-management-server)
- Symas LDAP (apigee-openldap)
- Bộ định tuyến (bộ định tuyến biên)
- Bộ xử lý thông báo (edge-message-processor)
- Máy chủ Qpid và Qpidd (edge-qpid-server và apigee-qpidd)
- Cơ sở dữ liệu Postgres và PostgreSQL (edge-postgres-server và apigee-postgresql)
- ZooKeeper (apigee-zookeeper)
- 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 Management Server trên dc-1, hãy thực hiện các bước sau:
- Dừng Máy chủ quản lý trên dc-1:
apigee-service edge-management-server stop
- 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®ion=dc-1&type=management-server”
- Loại máy chủ cần huỷ đăng ký:
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=management-server®ion=dc-1&pod=central&uuid=UUID&action=remove"
- 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}
- Gỡ cài đặt thành phần Management Server trên dc-1:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server uninstall
Symas LDAP
Phần này giải thích cách ngừng sử dụng SymasLDAP 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 hoạt động SymasLDAP trên dc-1, hãy làm theo các bước sau:
- Sao lưu nút dc-1 SymasLDAP bằng cách làm theo các bước trong phần Cách sao lưu.
Phá vỡ 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 ở cả hai trung tâm dữ liệu.
- Kiểm tra trạng thái hiện tại:
/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
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
- Tạo một tệp
break_repl.ldif
chứa các lệnh sau:dn: olcDatabase={2}mdb,cn=config changetype: modify delete: olcSyncRepl dn: olcDatabase={2}mdb,cn=config changetype: modify delete: olcMirrorMode
- Chạy lệnh
ldapmodify
:/opt/symas/bin/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}mdb,cn=config" modifying entry "olcDatabase={2}mdb,cn=config"
- Kiểm tra trạng thái hiện tại:
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 dc-2 và đảm bảo mục đó 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 (không bắt buộc) để tạo một người dùng chỉ có quyền đọc trong nút dc-2 SymasLDAP, 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á.
- 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}
- Thêm người dùng bằng lệnh "ldapadd" trong 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
Kết quả sẽ tương tự như sau:
adding new entry "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"
- 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:
/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
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
- Xoá người dùng chỉ có quyền đọc mà bạn đã thêm trước đó:
/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"
- Tạo tệp
- Dừng SymasLDAP trong dc-1:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
- Gỡ cài đặt thành phần SymasLDAP 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 hoạt động một Bộ định tuyến. Hãy xem phần Xoá một 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 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 cùng một lúc
Lưu ý: Ở đây, giả định rằng cổng kiểm tra tình trạng hoạt động 15999 của bộ định tuyến được định cấu hình trong bộ 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. Bạn có thể cần quyền truy cập vào thư mục gốc để chặn cổng.
Để ngừng hoạt động một Bộ định tuyến, hãy thực hiện các bước sau:
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 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
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
- Lấy UUID của Bộ định tuyến, như mô tả trong phần Lấy UUID.
- Tắt bộ định tuyến:
/opt/apigee/apigee-service/bin/apigee-service edge-router stop
- 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ề Pod.
- Huỷ đăng ký loại máy chủ:
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=router®ion=dc-1&pod=gateway-1&uuid=UUID&action=remove"
- Huỷ đăng ký máy chủ:
curl -u <AdminEmailID>:'<AdminPassword>’ -X DELETE http://{MS_IP}:8080/v1/servers/UUID
- Gỡ cài đặt
edge-router
: Xem phần Xoá máy chủ./opt/apigee/apigee-service/bin/apigee-service edge-router uninstall
- Xoá
iptables
quy tắc để 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 hoạt động Message Processor (Trình xử lý thông báo) từ dc-1. Hãy xem phần Xoá một 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ó một cụm gồm 12 nút, nên có 2 nút Message Processor được định cấu hình trong dc-1. Thực hiện các lệnh sau ở cả hai nút.
- Lấy UUID của Trình xử lý tin nhắn, như mô tả trong phần Lấy UUID.
- Dừng Trình xử lý tin nhắn:
apigee-service edge-message-processor stop
- Huỷ đăng ký loại máy chủ:
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=message-processor®ion=dc-1&pod=gateway-1&uuid=UUID&action=remove"
- Huỷ liên kết một môi trường vớ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"
- Huỷ đăng ký loại máy chủ:
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=message-processor®ion=dc-1&pod=gateway-1&uuid=UUID&action=remove"
- Gỡ cài đặt Trình xử lý tin nhắn:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor uninstall
- 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 Qpid Server (edge-qpid-server
) và Qpidd (apigee-qpidd
). Có 2 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:
- Lấy UUID cho Qpidd, như mô tả trong phần Lấy UUID.
- 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
- Lấy danh sách các nhóm Analytics và nhóm người tiêu dùng:
curl -u <AdminEmailID>:'<AdminPassword>' -X GET http://{MS_IP}:8080/v1/analytics/groups/ax
- 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}"
- 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"
- 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®ion=dc-1&pod=central&uuid={QPID_UUID}&action=remove"
- 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
- 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 rằng những 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
- 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 hoạt động các thiết bị này:
Ngừng hoạt động bản chính Postgres
Lưu ý: Nếu bạn ngừng hoạt động máy chủ chính Postgres, hãy nhớ nâng cấp một trong các nút dự phòng hiện có thành máy chủ chính Postgres mới. Mặc dù hàng đợi QPID đệm dữ liệu, nhưng nếu máy chủ 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 Postgres master:
- 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:
- Lấy UUID của các máy chủ Postgres, như mô tả trong phần Lấy UUID.
- Trên dc-1, hãy dừng
edge-postgres-server
vàapigee-postgresql
trên máy chủ 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
- Trên nút dự phòng của dc-2, hãy nhập lệnh sau để biến nút này thành 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 các mục nhập máy chủ lưu trữ vào máy chủ 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 máy chủ chính hiện có và chuyển một trong các nút dự phòng postgres còn lại thành 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:
- Trên máy chủ 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
- 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 lại nhiều nút dự phòng
- 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
- Đả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
- Khởi động lại
apigee-postgresql
:apigee-service apigee-postgresql restart
- Sửa đổi tệp cấu hình
/opt/silent.conf
và cập nhật trườngPG_MASTER
bằng địa chỉ IP của máy chủ chính Postgres mới. - Xoá mọi dữ liệu Postgres cũ bằng lệnh sau:
rm -rf /opt/apigee/data/apigee-postgresql/
- Thiết lập quy trình 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
- Xác minh rằng bạn đã thiết lập Postgres 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
- Xoá và thêm máy chủ Postgresql vào nhóm phân tích và nhóm người dùng.
- 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.
- 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ột máy chủ Postgres hiện có vào một nhóm phân tích.
- 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"
- Xoá máy chủ postgres cũ khỏi dc-1:
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
- Giờ đây, bạn có thể ngừng hoạt động Postgres chính 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
Cách cập nhật chế độ cài đặt sao chép trên một nút dự phòng:
Ngừng hoạt động Postgres dự phòng
Lưu ý: Tài liệu về cụm gồm 12 nút cho thấy nút dc-1 postgresql là nút chính, nhưng để thuận tiện, trong phần này, giả định rằng nút dc-1 postgresql là nút dự phòng và nút dc-2 postgresql là nút chính.
Để ngừng hoạt động Postgres dự phòng, hãy thực hiện các bước sau:
- Lấy UUID của các máy chủ Postgres, làm theo hướng dẫn trong phần Lấy UUID.
- 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
- Xoá và thêm máy chủ Postgresql vào nhóm phân tích và nhóm người dùng.
- 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.
- 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ột máy chủ Postgres hiện có vào một nhóm phân tích.
- 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"
- Xoá máy chủ postgres cũ khỏi dc-1:
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
- Giờ đây, bạn có thể ngừng hoạt động Postgres chính 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á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 thông tin tham chiếu đến nút sẽ ngừng hoạt động (dc-1 trong trường hợp này) khỏi tất cả cá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ẽ ngừng hoạt động, hãy xoá những 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ủaCASS_HOSTS
.Lưu ý về ZooKeeper: Bạn phải duy trì một nhóm nút biểu quyết trong khi sửa đổi thuộc tính
ZK_HOST
trong tệp cấu hình để đảm bảo nhóm ZooKeeper vẫn hoạt động. Bạn phải có số lượng nút biểu quyết là số lẻ 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 hoạt động các máy chủ ZooKeeper và Cassandra:
- 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:
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
- 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®ion=dc-1&pod=central&uuid=UUID&action=remove"
- Huỷ đăng ký máy chủ:
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
- Cập nhật tệp cấu hình bằng các IP của những nút ngừng hoạt động đã bị xoá khỏi
ZK_HOSTS
vàCASS_HOSTS
.Ví dụ: Giả sử bạn có cá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 IP$IP1 $IP2 $IP3
khỏi tệp cấu hình.- Các mục trong 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”
- Các mục nhập 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"
- Các mục trong tệp cấu hình hiện có:
- 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 đã bị xoá/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
- 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à Trình xử lý thông báo:
- Nếu bạn định cấu hình Bộ định tuyến biên và Trình xử lý thông báo 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 Bộ định tuyến biên và Trình xử lý thông báo 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
- Nếu bạn định cấu hình Bộ định tuyến biên và Trình xử lý thông báo trên cùng một nút, hãy nhập:
- Định cấu hình lại tất cả các nút Qpid, 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 qs -f updated_config_file
- Định cấu hình lại tất cả các nút Postgres, 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
- Sửa đổ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 có 3 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 sẽ không có
dc-1
trong bất kỳ không gian khoá nào. - Ngừng hoạt động các nút Cassandra trên dc-1, từng nút một.
Để 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
- 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
- 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
- Dừng
apigee-cassandra
vàapigee-zookeeper
trong dc-1:apigee-service apigee-cassandra stop
apigee-service apigee-zookeeper stop
- 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:
- Xoá các liên kết khỏi dc-1.
- Liệt kê tất cả các nhóm có sẵn trong tổ chức:
curl -v -u <AdminEmailID>:'<AdminPassword>' -X GET "http://MS_IP:8080/v1/o/ORG/pods"
- Để kiểm tra xem tất cả các mối liên kết đã được xoá hay chưa, hãy lấy UUID của các máy chủ được 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ề 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.
- 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
- Huỷ liên kết Tổ chức với nhóm:
curl -v -u <AdminEmailID>:'<AdminPassword>' "http://MS_IP:8080/v1/o/ORG/pods" -d "action=remove®ion=dc-1&pod=gateway-1" -H "Content-Type: application/x-www-form-urlencoded" -X POST
- Liệt kê tất cả các nhóm có sẵn trong tổ chức:
- Xoá các pod:
curl -v -u <AdminEmailID>:'<AdminPassword>' "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1" -X DELETE
- Xoá khu vực.
curl -v -u <AdminEmailID>:'<AdminPassword>' "http://MS_IP:8080/v1/regions/dc-1" -X DELETE
Đế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 đó, vẫn còn máy chủ trong một số nhóm, hãy thực hiện các bước sau để huỷ đăng ký và xoá các máy chủ. Lưu ý: Thay đổi các loại và nhóm nếu cần.
- 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
- Loại máy chủ cần 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"
- 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®ion=dc-1
curl -v -u <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=gateway®ion=dc-1
curl -v -u <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=analytics®ion=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
-
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ặcnot 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 về 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 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ặcfollower
. -
Trong một nút ZooKeeper, hãy chạy:
/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, 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 là nút dự phòng.
-
Đă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;
Nút Cassandra/ZooKeeper
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.
- Trên máy chủ chính mới, hãy chỉnh sửa tệp cấu hình để đặt: