Thứ Sáu, 11 tháng 11, 2022

High Availability - Phần 2: Tổng quan về Pacemaker Corosync

Tổng quan#

Pacemaker là trình quản lý tài nguyên trong cluster được phát triển bởi ClusterLabs. Pacemaker tương thích với rất nhiều dịch vụ phổ biến hiện có và hoàn toàn có thể tự phát triển module để quản lý các tài nguyên mà pacemaker chưa hỗ trợ.

Kiến trúc triển khai bới Pacemaker cho phép tùy biến, hỗ trợ tối đa để các tài nguyên (resource) thuộc cluster luôn sẵn sàng. Đồng thời pacemaker có khả năng phát hiện phục hồi các tài nguyên, các node đang xảy ra sự cố thông qua các engine hỗ trợ (Corosync, Heartbeat), cho phép tùy biến tùy theo các kiến trúc khác nhau.

Các tính năng chính của Pacemaker:

  • Tự động phát hiện, khôi phục các node, các tài nguyên dịch vụ trên node
  • Không yêu cầu chia sẻ không gian lưu trữ (shared storage)
  • Tất cả tài nguyên có thể quản lý bằng script đều có thể quản lý bằng Pacemaker
  • Hỗ trợ kỹ thuật fencing, kỹ thuật cô lập tài nguyên trên mỗi node
  • Hỗ trợ các cluster từ nhỏ tới lớn
  • Hỗ trợ kỹ thuật Resource-driven cluster - Kỹ thuật phân cấp, nhóm tài nguyên để quản lý độc lập
  • Hỗ trợ kỹ thuật Quorate Clusters - Kỹ thuật tính điểm trên các node thuộc cluster, ý tưởng của kỹ thuật là khi cụm lớn bị phân mảnh thành 2 phần, cluster sẽ đánh giá so sánh số điểm của 2 cụm để quyết định cụm nào sẽ tiếp tục chạy, cụm nào sẽ bị đóng băng hoặc tắt hẳn.
  • Hỗ trợ các thiết lập dự phòng
  • Tự động nhân bản cấu hình tới các node thuộc cluster.
  • Có khả nhân thức sự thay đổi trên tài nguyên
  • Hỗ trợ các kiểu dịch vụ nâng cao
    • Nhân bản (Clone): Dịch vụ được nhân bản tới nhiều node dể tăng tinhs sẵn sàng
    • Đa trạng thái (Multi-state): Các dịch vụ có nhiều trạng thái (Master/Slave, Primary/ Secondary).
  • Thông thất quản trị cluster qua các công cụ hỗ trợ.

Corosync hay Corosync Cluster Engine là dự án mã nguồn mở bắt nguồn từ dự án OpenAIS. Mục đích phát triển của Corosync là tạo ra hệ thống có tính liên kết, cung cấp tính sẵn sàng cao cho các ứng dụng chạy trên.

Corosync cung cấp 4 API viết bằng ngôn ngữ C:

  • Nhóm các tiến trình thành mô hình khép kín, bảo đảm trạng thái tiến trình nhân rộng trong nhóm
  • Cung cấp trình quản trị đơn giản cho phép khởi động lại tiến trình ứng dụng khi chúng xảy ra sự cố
  • Cung cấp cơ sở dữ liệu bộ nhớ (in-memory database) lưu trữ các cấu hình, thông kế trạng thái (in-memory database). Cho phép truy vấn, thiết lập, nhận thông báo khi thay đổi.
  • Cung cấp hệ thống quorum, cảnh bảo khi có hoặc mất quorm

Kiến trúc Pacemaker#

Theo kiến trúc Pacemaker, Cluster được tạo từ 3 thành phần:

  • Các thành phần cluster không thể nhận biết (Non-cluster-aware components): Các thành phần được script hóa để có thể tắt, bật, giám sát.
  • Quản lý tài nguyên (Resource management): Pacemaker cung cấp trung tâm giám sát, phản ứng với các sự kiện xảy ra trong cluser. Các event có thể là các node bị loại bỏ, tham gia vào cụm, các hoạt động bảo trì, các thao tác quản trị cơ bản. Pacemaker sẽ nhận thức, tự động đánh giá trạng thái lý tưởng cho cụm ra chỉ thị cho cụm trở lại trạng thái lý tưởng (tự động di chuyển tài nguyên, loại bỏ thành phần lỗi bằng các tắt dịch vụ hoặc tắt hẳn node)
  • Low-level infrastructure: Các project như Corosync, CMAN, Heartbeat cung cấp các tin nhắn tin cậy về thông tin về tài nguyên, node, quorum của cụm.

Kết hợp Corosync + Pacemaker cho phép cluster quản trị các Cluster Filesystem tiêu chuẩn. Tính năng này được phát triển từ tiêu chuẩn distributed lock manager trên các hệ thống Cluster Filesystem mã nguồn mở, từ đó cho phép corosync thu thập sự kiện về tính trạng các node thuộc cluster filesystem và cho phép Pacemaker ra lệnh cô lập dịch vụ tại các node.

Các thành phần nội tại#

Pacemaker chia thành 5 thành phần chính

  • Cluster Information Base (CIB): CIB sử dụng XML để thể hiện cấu hình cluster cũng như trạng thái hiện thái của các tài nguyên bên trong cluster. Nội dung của CIB tự động đồng bộ tới tất cả các node trên toàn cluster, đồng thời sử dụng PEngine để đánh gía trạng thái lý tưởng của Cluster và cách để đạt trạng thái lý tưởng
  • Cluster Resource Management Daemon (CRMd): Các thao tác tới tài nguyên thuộc Cluster được định tuyến thông qua tiến trình này. Tiến trình cho phép truy vấn thông tin, di chuyển, khởi tạo, thay đổi trạng thái khi cần.
  • Local Resource Management daemon (LRMd): Mỗi node thuộc cluster chạy tiến trình local resource manager daemon (LRMd), tiến trình này như giao diện giữa CRMd với các tài nguyên nội tại của node. Tiến trình LRMd sẽ chuyển chỉ thị từ CRMd tới các thành phần tài nguyên nó quản lý.
  • Policy Engine (PEngine): Chịu tránh nhiệm tính toán trạng thái lý tưởng của cụm, ra chỉ thị, kịch bản cho CRMd để hiện thực hóa trạng thái mong muốn.
  • Shoot the Other Node in the Head (STONITH): Giải pháp cho các node cứng đầu không phản hồi, không nhận chỉ thị mềm, CRMd sẽ chỉ thị cho STONITH tắt nóng, hoặc khởi động lại trực tiếp thông qua phần cứng (IPMI, IDRAC, ILO, ..)

Các kiểu Cluster hỗ trợ#

Pacemaker hỗ trợ bất kể các thiết Cluster đáp ứng theo thiết kế đề ra, bao gồm:

  • Active / Active
  • Active / Passive
  • N + 1
  • N + M
  • N to 1
  • N to M

VD:

Mô hình Active / Passive

Mô hình Shared Failover

Mô hình Active/ Active ( N to N)

Nguồn

https://github.com/hocchudong/ghichep-pacemaker-corosync/blob/master/docs/pcmk-pacemaker-overview.md

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/high_availability_add-on_overview/s1-pacemakerarchitecture-haao

https://www.usenix.org/legacy/publications/library/proceedings/usenix04/tech/sigs/full_papers/bottomley/bottomley_html/node5.html

https://www.usenix.org/legacy/publications/library/proceedings/usenix04/tech/sigs/full_papers/bottomley/bottomley_html/node6.html

=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
High Availability - Phần 2: Tổng quan về Pacemaker Corosync, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,khóa học pl/sql, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, middleware, hoc solaris, hoc linux, hoc aix, unix, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master