MariaDB Cluster là một hệ thống sao chép Multi Master được xây dựng từ Máy chủ MariaDB, bản vá MySQL wsrep và nhà cung cấp Galera wsrep.
Galera dựa trên phương pháp sao chép đồng bộ (hoặc 'hầu như đồng bộ'), đảm bảo dữ liệu được áp dụng cho các nút khác trước khi nó được cam kết. Có cùng dữ liệu trên tất cả các nút có nghĩa là các lỗi của nút có thể dễ dàng được dung nạp và không có dữ liệu nào bị mất. Việc chuyển đổi dự phòng sang một nút khác cũng dễ dàng hơn, vì tất cả các nút đều được cập nhật với cùng một dữ liệu. Công bằng mà nói, MariaDB Cluster là một giải pháp có tính khả dụng cao có thể đạt được thời gian hoạt động cao cho các tổ chức có các Thỏa thuận mức độ dịch vụ cơ sở dữ liệu nghiêm ngặt.
Bên cạnh việc quản lý tính sẵn sàng cao, nó cũng có thể được sử dụng để mở rộng dịch vụ cơ sở dữ liệu và mở rộng dịch vụ ra nhiều vùng.
Triển khai Cụm MariaDB
MariaDB Cluster trong ClusterControl thực sự đơn giản và có sẵn trong Community Edition miễn phí để sử dụng. Bạn có thể đi qua “Triển khai”, chọn MySQL Galera như hình dưới đây:
Điền thông tin đăng nhập và người dùng SSH, Tên cụm mà bạn muốn sử dụng và sau đó Tiếp tục.
Chọn MariaDB làm Nhà cung cấp cơ sở dữ liệu bạn muốn cài đặt. Thư mục Dữ liệu Máy chủ, Cổng Máy chủ có thể sử dụng cấu hình mặc định, trừ khi bạn xác định cấu hình cụ thể. Điền mật khẩu cơ sở dữ liệu Quản trị / gốc và cuối cùng Thêm nút để thêm Địa chỉ IP đích của các nút cơ sở dữ liệu.
Các nút Galera yêu cầu ít nhất 3 nút hoặc bạn có thể sử dụng 2 nút cơ sở dữ liệu và bộ phân xử galera được định cấu hình trên một máy chủ riêng biệt.
Sau khi điền tất cả các trường, chỉ cần Triển khai cụm. Nó sẽ kích hoạt một công việc mới để Tạo cụm như được hiển thị bên dưới:
Triển khai ở cấp độ tối đa
Maxscale là trình cân bằng tải cơ sở dữ liệu, proxy cơ sở dữ liệu và tường lửa nằm giữa ứng dụng của bạn và các nút MariaDB. Một số tính năng của Maxscale là:
- Tự động chuyển đổi dự phòng để có tính khả dụng cao
- Cân bằng tải lưu lượng truy cập (phân chia đọc và ghi)
- Kiểm soát lưu lượng truy cập cho các truy vấn và kết nối.
Có hai cách để triển khai Load Balancer, bạn có thể "Thêm Load Balancer" trong Cluster Menu như được hiển thị bên dưới:
Hoặc bạn có thể vào Quản lý -> Bộ cân bằng tải. Nó sẽ chuyển đến cùng một trang, đó là trang Load Balancer. Chọn “tab Tỷ lệ tối đa” để triển khai bộ cân bằng tải Tỷ lệ tối đa:
Chọn Địa chỉ Máy chủ, xác định tên người dùng và mật khẩu maxscale, bạn có thể để lại cấu hình mặc định cho luồng và cổng đọc / ghi. Cũng bao gồm (các) nút MariaDB sẽ được thêm vào bộ cân bằng tải. Bạn có thể “Triển khai MaxScale” để triển khai proxy cơ sở dữ liệu MaxScale và cân bằng tải.
Phương pháp hay nhất để làm cho bộ cân bằng tải có tính khả dụng cao là thiết lập ít nhất 2 phiên bản MaxScale trên các máy chủ khác nhau.
Triển khai đủ điều kiện
Keepalived là một dịch vụ daemon trong linux được sử dụng để kiểm tra sức khỏe và cũng được sử dụng để chuyển đổi dự phòng nếu một trong các máy chủ gặp sự cố. Cơ chế này sử dụng VIP (Địa chỉ IP ảo) để đạt được tính khả dụng cao, bao gồm một máy chủ hoạt động như Master và máy chủ kia hoạt động như Backup.
Việc triển khai Keepalived là dịch vụ có thể được thực hiện tại Manage -> Load Balancer.
Vui lòng chọn loại Cân bằng tải của bạn, là MaxScale. Hiện tại, ClusterControl hỗ trợ HAProxy, ProxySQL và MaxScale làm bộ cân bằng tải có thể được tích hợp với Keepalived. Xác định IP ảo (VIP) và Giao diện mạng cho Địa chỉ IP ảo của bạn.
Sau đó, chỉ cần nhấp vào Triển khai Keepalived. Nó sẽ kích hoạt một công việc mới để triển khai Keepalived trên cả hai máy chủ MaxScale.
Kiến trúc cuối cùng cho Cụm MariaDB cho Tính khả dụng cao bao gồm 3 nút cơ sở dữ liệu, 2 nút cân bằng tải và một dịch vụ được lưu giữ trên đầu mỗi bộ cân bằng tải như được hiển thị trên Cấu trúc liên kết bên dưới:
Kết luận
Chúng tôi đã chỉ ra cách chúng tôi có thể nhanh chóng triển khai Cụm MariaDB Khả dụng cao với MaxScale và Keepalived thông qua ClusterControl. Chúng tôi đã xem xét các thiết lập cho các nút cơ sở dữ liệu và các nút proxy. Để đọc thêm về Galera Cluster, hãy xem hướng dẫn trực tuyến của chúng tôi. Lưu ý rằng ClusterControl cũng hỗ trợ các trình cân bằng tải khác như ProxySQL và HAProxy. Hãy thử những thứ này và cho chúng tôi biết nếu bạn có bất kỳ câu hỏi nào.