Bộ cân bằng tải là một thành phần thiết yếu trong tính khả dụng cao của cơ sở dữ liệu; đặc biệt là khi thực hiện các thay đổi cấu trúc liên kết trong suốt đối với các ứng dụng và thực hiện chức năng phân chia đọc-ghi. ClusterControl cung cấp một loạt các tính năng để triển khai, giám sát và định cấu hình một cách an toàn các công nghệ cân bằng tải nguồn mở hàng đầu trong ngành.
Trong năm qua, chúng tôi đã thêm hỗ trợ cho ProxySQL và thêm nhiều cải tiến cho HAProxy và MariaDB’s Maxscale. Chúng tôi tiếp tục truyền thống này với bản phát hành mới nhất của ClusterControl 1.5.
Dựa trên phản hồi nhận được từ người dùng, chúng tôi đã cải thiện cách quản lý ProxySQL. Chúng tôi cũng đã thêm hỗ trợ cho HAProxy và Keepalived để chạy trên các cụm PostgreSQL.
Trong bài đăng trên blog này, chúng ta sẽ xem xét những cải tiến này ...
ProxySQL - Cải tiến quản lý người dùng
Trước đây, giao diện người dùng sẽ chỉ cho phép bạn tạo người dùng mới hoặc thêm người dùng hiện có, từng người một. Một phản hồi mà chúng tôi nhận được từ người dùng của chúng tôi là khá khó để quản lý một số lượng lớn người dùng. Chúng tôi đã lắng nghe và trong ClusterControl 1.5, giờ đây có thể nhập hàng loạt người dùng lớn. Hãy xem cách bạn có thể làm điều đó. Trước hết, bạn cần phải triển khai ProxySQL của mình. Sau đó, chuyển đến nút ProxySQL và trong tab Người dùng, bạn sẽ thấy nút “Nhập người dùng”.
Sau khi bạn nhấp vào nó, một hộp thoại mới sẽ mở ra:
Tại đây, bạn có thể thấy tất cả người dùng mà ClusterControl đã phát hiện trên cụm của bạn. Bạn có thể cuộn qua chúng và chọn những cái bạn muốn nhập. Bạn cũng có thể chọn hoặc bỏ chọn tất cả người dùng từ chế độ xem hiện tại.
Khi bạn bắt đầu nhập vào hộp Tìm kiếm, ClusterControl sẽ lọc ra các kết quả không phù hợp, chỉ thu hẹp danh sách cho những người dùng có liên quan đến tìm kiếm của bạn.
Bạn có thể sử dụng nút “Chọn tất cả” để chọn tất cả người dùng phù hợp với tìm kiếm của bạn. Tất nhiên, sau khi bạn đã chọn những người dùng mà bạn muốn nhập, bạn có thể xóa hộp tìm kiếm và bắt đầu một tìm kiếm khác:
Xin lưu ý “(7 được chọn)” - nó cho bạn biết tổng cộng có bao nhiêu người dùng (không chỉ từ tìm kiếm này), bạn đã chọn để nhập. Bạn cũng có thể nhấp vào nó để chỉ xem những người dùng bạn đã chọn để nhập.
Khi bạn hài lòng với lựa chọn của mình, bạn có thể nhấp vào “Tiếp theo” để chuyển sang màn hình tiếp theo.
Ở đây bạn cần quyết định nhóm máy chủ mặc định cho mỗi người dùng. Bạn có thể làm điều đó trên cơ sở từng người dùng hoặc trên toàn cầu, cho toàn bộ hoặc một nhóm nhỏ người dùng do tìm kiếm.
Khi bạn nhấp vào nút “Nhập người dùng”, người dùng sẽ được nhập và họ sẽ hiển thị trong tab Người dùng.
ProxySQL - Quản lý bộ lập lịch
Trình lập lịch của ProxySQL là một mô-đun giống như cron cho phép ProxySQL bắt đầu các tập lệnh bên ngoài theo chu kỳ. Lịch trình có thể khá chi tiết - tối đa một lần thực hiện mỗi mili giây. Thông thường, bộ lập lịch được sử dụng để thực thi các tập lệnh của trình kiểm tra Galera (như proxysql_galera_checker.sh), nhưng nó cũng có thể được sử dụng để thực thi bất kỳ tập lệnh nào khác mà bạn thích. Trước đây, ClusterControl đã sử dụng bộ lập lịch để triển khai tập lệnh trình kiểm tra Galera nhưng điều này không được hiển thị trong giao diện người dùng. Khởi động ClusterControl 1.5, bây giờ bạn có toàn quyền kiểm soát.
Như bạn có thể thấy, một tập lệnh đã được lên lịch chạy cứ sau 2 giây (2000 mili giây) - đây là cấu hình mặc định cho cụm Galera.
Ảnh chụp màn hình ở trên cho chúng ta thấy các tùy chọn để chỉnh sửa các mục nhập hiện có. Xin lưu ý rằng ProxySQL hỗ trợ tối đa 5 đối số cho các tập lệnh mà nó sẽ thực thi thông qua bộ lập lịch.
Nếu bạn muốn thêm một tập lệnh mới vào bộ lập lịch, bạn có thể nhấp vào nút “Thêm Tập lệnh Mới” và bạn sẽ thấy một màn hình như trên. Bạn cũng có thể xem trước kịch bản đầy đủ sẽ trông như thế nào khi được thực thi. Sau khi bạn đã điền tất cả các trường "Đối số" và xác định khoảng thời gian, bạn có thể nhấp vào nút "Thêm tập lệnh mới".
Do đó, một tập lệnh sẽ được thêm vào bộ lập lịch và nó sẽ hiển thị trên danh sách các tập lệnh đã lập lịch.
Tải xuống Báo cáo chính thức hôm nay Quản lý &Tự động hóa PostgreSQL với ClusterControlTìm hiểu về những điều bạn cần biết để triển khai, giám sát, quản lý và mở rộng PostgreSQLTải xuống Báo cáo chính thứcPostgreSQL - Xây dựng ngăn xếp tính khả dụng cao
Thiết lập sao chép với tự động chuyển đổi dự phòng là tốt, nhưng các ứng dụng cần một cách đơn giản để theo dõi bản chính có thể ghi. Vì vậy, chúng tôi đã thêm hỗ trợ cho HAProxy và Keepalived trên đầu các cụm PostgreSQL. Điều này cho phép người dùng PostgreSQL của chúng tôi triển khai một ngăn xếp có tính khả dụng cao đầy đủ bằng cách sử dụng ClusterControl.
Từ tab phụ Load Balancer, bây giờ bạn có thể triển khai HAProxy - nếu bạn đã quen với cách ClusterControl triển khai bản sao MySQL, thì đó là một thiết lập rất giống nhau. Chúng tôi cài đặt HAProxy trên một máy chủ nhất định, hai phụ trợ, đọc trên cổng 3308 và ghi trên cổng 3307. Nó sử dụng tcp-check, mong đợi một chuỗi cụ thể trả về. Để tạo chuỗi đó, các bước sau được thực hiện trên tất cả các nút cơ sở dữ liệu. Trước hết, xinet.d được định cấu hình để chạy một dịch vụ trên cổng 9201 (để tránh nhầm lẫn với thiết lập MySQL, sử dụng cổng 9200).
# default: on
# description: postgreschk
service postgreschk
{
flags = REUSE
socket_type = stream
port = 9201
wait = no
user = root
server = /usr/local/sbin/postgreschk
log_on_failure += USERID
disable = no
#only_from = 0.0.0.0/0
only_from = 0.0.0.0/0
per_source = UNLIMITED
Dịch vụ thực thi tập lệnh / usr / local / sbin / postgreschk, xác thực trạng thái của PostgreSQL và cho biết liệu một máy chủ nhất định có sẵn hay không và loại máy chủ đó là gì (chủ hay máy chủ). Nếu mọi thứ đều ổn, nó sẽ trả về chuỗi mà HAProxy mong đợi.
Cũng giống như với MySQL, các nút HAProxy trong các cụm PostgreSQL được nhìn thấy trong giao diện người dùng và trang trạng thái có thể được truy cập:
Tại đây bạn có thể thấy cả hai phần phụ trợ và xác minh rằng chỉ cái chính mới sử dụng phần phụ trợ r / w và tất cả các nút có thể được truy cập thông qua phần phụ trợ chỉ đọc. Bạn cũng có thể nhận được một số thống kê về lưu lượng truy cập và kết nối.
HAProxy giúp cải thiện tính khả dụng cao, nhưng nó có thể trở thành một điểm thất bại duy nhất. Chúng tôi cần phải đi xa hơn và định cấu hình dự phòng với sự trợ giúp của Keepalived.
Trong Quản lý -> Bộ cân bằng tải -> Keepalived, bạn chọn các máy chủ HAProxy bạn muốn sử dụng và Keepalived sẽ được triển khai trên các máy chủ đó với IP ảo được gắn vào giao diện bạn chọn.
Từ bây giờ, tất cả kết nối sẽ chuyển sang VIP, sẽ được gắn vào một trong các nút HAProxy. Nếu nút đó bị hỏng, Keepalived sẽ đưa VIP xuống trên nút đó và đưa nó lên trên một nút HAProxy khác.
Đó là các tính năng cân bằng tải được giới thiệu trong ClusterControl 1.5. Hãy thử chúng và cho chúng tôi biết bạn như thế nào