Trong loạt bài blog ba phần này, chúng tôi sẽ giải thích chi tiết và chức năng của khung Tính sẵn sàng cao (HA) dành cho lưu trữ MySQL sử dụng sao chép bán đồng bộ MySQL và ngăn xếp Corosync cộng với Pacemaker. Trong Phần I, chúng tôi sẽ hướng dẫn bạn những kiến thức cơ bản về Tính sẵn sàng cao, các thành phần của khung HA, sau đó giới thiệu với bạn về khung HA cho MySQL.
Tính khả dụng cao là gì?
Tính khả dụng của hệ thống máy tính là phần trăm thời gian các dịch vụ của hệ thống đó hoạt động trong một khoảng thời gian. Nó thường được thể hiện dưới dạng một chuỗi 9 cái. Ví dụ:bảng bên dưới hiển thị tính khả dụng và thời gian ngừng hoạt động tương ứng được đo trong một năm.
Tính khả dụng% | Thời gian ngừng hoạt động mỗi năm |
90% (“ một 9 “) | 36,53 ngày |
99% (“ hai số 9 “) | 3,65 ngày |
99,9% (“ ba số 9 “) | 8,77 giờ |
99,99% (“ bốn số 9 “) | 52,60 phút |
99,999% (“ năm số 9 “) | 5,26 phút |
99,9999% (“ sáu số 9 “) | 31,56 giây |
Ý nghĩa của Tính sẵn sàng cao thay đổi tùy thuộc vào yêu cầu của ứng dụng và doanh nghiệp của bạn. Ví dụ:nếu bạn không thể có thời gian ngừng hoạt động hơn vài phút mỗi năm trong dịch vụ của mình, chúng tôi cho rằng dịch vụ cần có Tính sẵn sàng cao 99,999%.
Các thành phần của Khung HA
Bản chất của tính khả dụng cao là khả năng khôi phục tức thì sau những lỗi có thể xảy ra trong bất kỳ phần nào của hệ thống. Có bốn thành phần rất cần thiết trong bất kỳ khung HA nào cần phải làm việc cùng nhau theo cách tự động để cho phép khả năng phục hồi này. Hãy xem xét chi tiết các thành phần này:
1. Dự phòng trong Cơ sở hạ tầng &Dữ liệu
Để dịch vụ có tính khả dụng cao, chúng tôi cần đảm bảo rằng cơ sở hạ tầng lưu trữ dự phòng cũng như cập nhật dự phòng bản sao dữ liệu mà dịch vụ sử dụng hoặc cung cấp. Điều này hoạt động như một dịch vụ dự phòng sẵn sàng tiếp quản trong trường hợp thiết bị chính bị ảnh hưởng bởi sự cố.
2. Cơ chế phát hiện &sửa lỗi hỏng hóc
Điều cực kỳ quan trọng là phát hiện ngay bất kỳ lỗi nào trong bất kỳ phần nào của hệ thống chính có thể ảnh hưởng đến tính khả dụng của hệ thống. Điều này sẽ cho phép khung thực hiện các hành động sửa chữa trên cùng một hệ thống chính hoặc chuyển đổi dự phòng các dịch vụ sang hệ thống dự phòng.
3. Cơ chế chuyển đổi dự phòng
Thành phần này xử lý trách nhiệm chuyển đổi dự phòng các dịch vụ sang cơ sở hạ tầng dự phòng của bạn. Xin lưu ý rằng trong trường hợp có sẵn nhiều hệ thống dự phòng, thành phần cơ chế chuyển đổi dự phòng này phải xác định hệ thống phù hợp nhất trong số các hệ thống đó và quảng bá nó như là dịch vụ chính.
4. Cơ chế chuyển hướng ứng dụng / người dùng
Sau khi hệ thống chờ được tiếp quản làm hệ thống chính, thành phần này đảm bảo rằng tất cả các kết nối của ứng dụng và người dùng bắt đầu xảy ra với hệ thống chính mới.
Giải thích về khung tính khả dụng cao của MySQL - Phần IClick To Tweet
HA Framework cho MySQL
Dựa trên mô hình trên, chúng tôi sử dụng khung HA sau cho máy chủ MySQL của chúng tôi tại ScaleGrid:
- Thiết lập 3-Node Master-Slave sử dụng sao chép bán đồng bộ MySQL để cung cấp cơ sở hạ tầng và dự phòng dữ liệu.
- Ngăn xếp Corosync cộng với Máy tạo nhịp tim để cung cấp cơ chế phát hiện, sửa lỗi và chuyển đổi dự phòng.
- Ánh xạ DNS hoặc thành phần IP ảo để cung cấp cơ chế chuyển hướng người dùng và ứng dụng.
Hãy xem sơ đồ bên dưới để hình dung về ngăn xếp phần mềm của kiến trúc này:
Hãy xem lại chức năng của một số thành phần chính trong khung này.
-
Đồng bộ hóa
Corosync cung cấp một khung giao tiếp cho các nút với khả năng truyền thông điệp đáng tin cậy giữa chúng. Nó tạo thành một vòng cụm các nút và theo dõi các nút tham gia và rời khỏi cụm thông qua tư cách thành viên cụm. Corosync hợp tác chặt chẽ với Pacemaker để thông báo về tính khả dụng của nút để Pacemaker có thể đưa ra quyết định phù hợp.
-
Máy tạo nhịp tim
Còn được gọi là Trình quản lý tài nguyên cụm (CRM), Pacemaker đảm bảo tính khả dụng cao cho MySQL chạy trên cụm và phát hiện và xử lý các lỗi cấp nút bằng cách giao tiếp với Corosync. Nó cũng phát hiện và xử lý các lỗi của MySQL bằng cách giao tiếp với Tác nhân tài nguyên (RA). Pacemaker định cấu hình và quản lý tài nguyên MySQL thông qua các hoạt động bắt đầu, dừng, giám sát, thăng cấp và hạ cấp.
-
Tác nhân tài nguyên
Tác nhân Tài nguyên hoạt động như một giao diện giữa MySQL và Pacemaker. Nó thực hiện bắt đầu, dừng, thăng chức, hạ cấp và giám sát các hoạt động được sử dụng bởi Máy tạo nhịp tim. Có một Tác nhân tài nguyên đầy đủ chức năng được gọi là Percona Replication Manager (PRM) cho MySQL do Percona triển khai. Điều này đã được cải tiến bởi ScaleGrid và có sẵn trên trang GitHub của chúng tôi.
-
Thành phần ánh xạ DNS
Tác nhân Tài nguyên, khi hoàn thành chuyển đổi dự phòng thành công, sẽ gọi thành phần này cập nhật các bản ghi DNS của máy chủ MySQL chính với địa chỉ IP của máy chủ mới. Lưu ý rằng máy khách luôn sử dụng tên DNS chính để kết nối với máy chủ MySQL và bằng cách quản lý ánh xạ của tên DNS này với địa chỉ IP của máy chủ hiện tại, chúng tôi có thể đảm bảo rằng máy khách không phải thay đổi chuỗi kết nối hoặc thuộc tính của họ khi có một chuyển đổi dự phòng.
Trong Phần II của loạt bài blog này, bạn sẽ tìm hiểu về thành phần dự phòng dữ liệu quan trọng đạt được bằng cách sử dụng sao chép bán đồng bộ MySQL. Chúng tôi cũng sẽ đi sâu vào chi tiết và cấu hình sao chép bán đồng bộ mà chúng tôi sử dụng để đạt được hỗ trợ tính sẵn sàng cao của chúng tôi và cuối cùng, xem xét các tình huống lỗi khác nhau trong Phần III và cách khung phản hồi và phục hồi từ những điều kiện này.