MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

Cách triển khai cơ sở dữ liệu Chamilo MariaDB để có tính khả dụng cao

Nền tảng Hệ thống Quản lý Học tập (LMS) cho phép bạn học / dạy từ xa, một điều thực sự quan trọng do tình hình hiện tại trên toàn thế giới.

Nói như vậy, chúng ta cũng có thể nói Tính khả dụng cao là yếu tố bắt buộc trong loại nền tảng này, nếu không, nó không thể truy cập được khi cần.

Trong blog này, chúng ta sẽ xem cách triển khai cơ sở dữ liệu MariaDB cho Tính sẵn sàng cao được sử dụng cho một trong những tùy chọn nền tảng LMS phổ biến nhất, Chamilo LMS.

Chamilo là gì?

Chamilo LMS là Hệ thống quản lý học tập (LMS) miễn phí được thiết kế cho giáo dục trực tuyến và được phát triển thông qua sự hợp tác của nhiều công ty và nhà phát triển cá nhân.

Là một giáo viên, sử dụng Chamilo, bạn có thể tiếp cận hàng loạt công cụ hữu ích để tạo ra một môi trường học tập hiệu quả. Một số công cụ này là:

  • Nhập hoặc tạo tài liệu (âm thanh, video, hình ảnh) và xuất bản chúng
  • Xây dựng các bài kiểm tra và bài kiểm tra với điểm số tự động và phản hồi theo yêu cầu
  • Đặt và nhận các bài tập ảo
  • Mô tả các thành phần của khóa học thông qua các phần mô tả
  • Giao tiếp qua các diễn đàn hoặc trò chuyện
  • Xuất bản thông báo
  • Thêm liên kết
  • Tạo nhóm làm việc hoặc nhóm phòng thí nghiệm
  • Thiết lập một lớp học ảo
  • Tạo khảo sát
  • Thêm wiki để cộng tác tạo tài liệu
  • Sử dụng bảng thuật ngữ và chương trình làm việc
  • Cho phép theo dõi người học trong các khóa học của bạn
  • Đăng ký tham dự
  • Lập nhật ký lớp học và hơn thế nữa

Nền tảng Chamilo cực kỳ linh hoạt. Tất cả các công cụ của nó có thể được tùy chỉnh theo nhu cầu của từng khóa học. Nó cung cấp giao diện người dùng thân thiện và trực quan, không yêu cầu kiến ​​thức hoặc kỹ năng kỹ thuật đặc biệt trước đó.

Vì vậy, câu hỏi đặt ra là làm cách nào bạn có thể triển khai cơ sở dữ liệu MariaDB cho Tính sẵn sàng cao được sử dụng cho hệ thống này?

Cơ sở dữ liệu MariaDB cho tính khả dụng cao

Có nhiều cách tiếp cận khác nhau để triển khai Cơ sở dữ liệu MariaDB cho Tính khả dụng cao. Hãy xem hai tùy chọn chính.

MariaDB Master-Slave Replication

Bạn có thể chạy thiết lập chủ-tớ bằng cách sử dụng sao chép không đồng bộ hoặc bán đồng bộ. Ưu điểm của tùy chọn đơn giản này là, khi không có chủ, bạn có thể thăng cấp một trong các nô lệ và tiếp tục làm việc như bình thường. Vấn đề chính với thiết lập này là quá trình chuyển đổi dự phòng phải được thực hiện theo cách thủ công, hoặc thậm chí sử dụng một công cụ bên ngoài như ClusterControl. Nó có nghĩa là bạn sẽ có một thời gian ngừng hoạt động (ngắn), có thể chấp nhận được hoặc không đối với doanh nghiệp của bạn.

Cụm MariaDB

Một cách tiếp cận khác là sử dụng Cụm Galera để lưu trữ dữ liệu từ Chamilo LMS. Bạn có thể bắt đầu sử dụng nó với ba nút và nó có thể tự động xử lý lỗi của một trong những nút này. Hai nút còn lại sẽ tiếp tục hoạt động khi nhận kết nối từ ứng dụng Chamilo. Điều đó có nghĩa là bạn sẽ không có thời gian chết trong trường hợp này, nhưng vì nó là một cấu trúc liên kết phức tạp hơn, bạn sẽ yêu cầu nhiều kiến ​​thức hơn về công nghệ này và tùy thuộc vào khối lượng công việc, nó không thể là lựa chọn tốt nhất.

Cân bằng tải

Để cải thiện Tính khả dụng cao, cả hai tùy chọn sẽ yêu cầu Bộ cân bằng tải ở phía trước, sẽ xử lý lưu lượng truy cập và chuyển hướng nó đến một nút có sẵn / khỏe mạnh.

ProxySQL là trình cân bằng tải dành riêng cho MySQL đi kèm với nhiều tính năng bao gồm chuyển hướng truy vấn, bộ nhớ đệm truy vấn và định hình lưu lượng. Nó có thể được sử dụng để dễ dàng thiết lập truy vấn phân chia đọc-ghi và chuyển hướng đến các nút phụ trợ riêng biệt.

HAProxy là bộ cân bằng tải phân phối lưu lượng truy cập từ một điểm gốc đến một hoặc nhiều điểm đến và có thể xác định các quy tắc và / hoặc giao thức cụ thể cho tác vụ này. Nếu bất kỳ điểm đến nào ngừng phản hồi, nó được đánh dấu là ngoại tuyến và lưu lượng truy cập được gửi đến phần còn lại của các điểm đến khả dụng.

Keepalived là một dịch vụ cho phép bạn định cấu hình Địa chỉ IP ảo trong một nhóm máy chủ hoạt động / thụ động. Địa chỉ IP ảo này được chỉ định cho một máy chủ đang hoạt động. Nếu máy chủ này bị lỗi, Địa chỉ IP sẽ tự động được di chuyển sang máy chủ thụ động "Phụ", cho phép nó tiếp tục hoạt động với cùng một Địa chỉ IP một cách minh bạch cho hệ thống.

Chỉ sử dụng một nút Load Balancer sẽ thêm một điểm lỗi duy nhất trong cấu trúc liên kết của bạn, do đó, bạn có thể sử dụng kết hợp ProxySQL + Keepalived hoặc HAProxy + Keepalived bằng cách sử dụng hai nút Load Balancer (ít nhất) và Giữ đủ điều kiện giữa chúng.

Bây giờ, hãy xem cách ClusterControl có thể giúp bạn triển khai thêm Cơ sở dữ liệu MariaDB Cân bằng tải và Địa chỉ IP ảo sẽ được sử dụng trong ứng dụng Chamilo của bạn.

Triển khai Cơ sở dữ liệu Chamilo MariaDB

Ví dụ, chúng ta sẽ triển khai MariaDB Master-Slave Replication, sẽ được ứng dụng Chamilo sử dụng. Đối với điều này, chúng tôi sẽ sử dụng ClusterControl để triển khai 2 nút Cơ sở dữ liệu MariaDB (master-slave) và 2 Bộ cân bằng tải HAProxy với Keepalived được định cấu hình giữa chúng.

Triển khai Cơ sở dữ liệu MariaDB

Để thực hiện triển khai từ ClusterControl, chỉ cần chọn tùy chọn “Triển khai” và làm theo hướng dẫn xuất hiện.

Khi chọn MySQL Replication, bạn phải chỉ định Người dùng, Khóa hoặc Mật khẩu và Cổng kết nối bằng SSH với máy chủ của bạn. Bạn cũng có thể thêm tên cho cụm mới của mình và nếu bạn muốn ClusterControl cài đặt phần mềm và cấu hình tương ứng cho bạn.

Sau khi thiết lập thông tin truy cập SSH, bạn cần chọn nhà cung cấp cơ sở dữ liệu / version và xác định thông tin xác thực cơ sở dữ liệu, cổng và thư mục dữ liệu. Bạn cũng có thể chỉ định kho lưu trữ nào sẽ sử dụng.

Trong bước tiếp theo, bạn cần thêm máy chủ của mình vào cụm mà bạn sẽ tạo bằng Địa chỉ IP hoặc Tên máy chủ.

Khi nhiệm vụ hoàn thành, bạn có thể thấy cụm MariaDB mới của mình trong màn hình ClusterControl chính.

Bây giờ bạn đã tạo cụm của mình, bạn có thể thực hiện một số tác vụ trên đó, như thêm Bộ cân bằng tải hoặc bản sao mới.

Triển khai Load Balancer

Để triển khai Load Balancer, hãy chọn tùy chọn "Thêm Load Balancer" trong các tác vụ cụm và điền đầy đủ thông tin được hỏi.

Bạn chỉ cần thêm IP hoặc Tên máy chủ, Cổng, Chính sách và bạn sẽ sử dụng để cân bằng tải. Bạn có thể triển khai nó bằng hai cổng khác nhau (đọc / ghi và chỉ đọc) hoặc bạn có thể chỉ sử dụng một cổng đọc / ghi để gửi tất cả lưu lượng đến đó.

Triển khai đủ điều kiện

Để thực hiện triển khai Keepalived, hãy chọn tùy chọn “Thêm bộ cân bằng tải” trong các tác vụ cụm và sau đó, chuyển đến tab Keepalived.

Tại đây, chọn các nút HAProxy và chỉ định Địa chỉ IP ảo sẽ được sử dụng để truy cập cơ sở dữ liệu.

Bây giờ, hãy kết nối môi trường này với ứng dụng Chamilo.

Cấu hình Cơ sở dữ liệu Chamilo

Trong quá trình triển khai Chamilo, ở bước 4, bạn sẽ cần thêm cấu hình cơ sở dữ liệu.

Tại đây, bạn nên sử dụng địa chỉ IP ảo để truy cập Cơ sở dữ liệu MariaDB của mình và thông tin đăng nhập cơ sở dữ liệu.

Để biết thêm chi tiết về cấu hình Chamilo, bạn có thể tham khảo Tài liệu chính thức.

Thế là xong! Bạn có Ứng dụng Chamilo của mình bằng Cơ sở dữ liệu MariaDB với Tính sẵn sàng cao.

Tính năng Tự động khôi phục ClusterControl

Trong trường hợp không thành công, ClusterControl sẽ thăng cấp nút phụ nâng cao nhất lên làm chủ cũng như thông báo cho bạn về sự cố. Nó cũng không thể sao chép phần còn lại của các nút phụ từ máy chủ chính mới.

Theo mặc định, HAProxy được cấu hình với hai cổng khác nhau:đọc-ghi và chỉ đọc. Trong cổng đọc-ghi, bạn có nút chính của mình trực tuyến và các nút còn lại là ngoại tuyến và trong cổng chỉ đọc, bạn có cả nút chính và nút phụ trực tuyến.

Khi HAProxy phát hiện thấy một trong các nút của bạn không thể truy cập được, nó sẽ tự động đánh dấu nó là ngoại tuyến và không tính đến việc gửi lưu lượng đến nó. Việc phát hiện được thực hiện bằng các tập lệnh kiểm tra tình trạng được cấu hình bởi ClusterControl tại thời điểm triển khai. Những điều này kiểm tra xem các phiên bản đã hoạt động chưa, chúng đang trong quá trình khôi phục hay ở chế độ chỉ đọc.

Khi ClusterControl quảng bá nút phụ, HAProxy đánh dấu nút chính cũ là ngoại tuyến cho cả hai cổng và đặt nút được quảng bá trực tuyến trong cổng đọc-ghi.

Nếu HAProxy đang hoạt động của bạn, được chỉ định Địa chỉ IP ảo mà hệ thống của bạn kết nối, không thành công, Keepalived sẽ tự động di chuyển Địa chỉ IP này sang HAProxy thụ động của bạn. Điều này có nghĩa là hệ thống của bạn sau đó có thể tiếp tục hoạt động bình thường.

Triển khai Cơ sở dữ liệu MariaDB bằng ClusterControl CLI

Nếu bạn muốn triển khai Cụm MariaDB bằng dòng lệnh, bạn có thể sử dụng công cụ máy khách dòng lệnh ClusterControl có tên "s9s". Công cụ này sẽ gửi một công việc triển khai đến máy chủ ClusterControl và nó sẽ thực hiện tất cả các bước cần thiết để triển khai cụm.

Ví dụ:bạn có thể chạy lệnh sau trên máy chủ ClusterControl để tạo bản sao MariaDB master-slave:

$ s9s cluster --create \

--cluster-type=mysqlreplication \

--nodes='10.10.10.136;10.10.10.137' \

--vendor=mariadb \

--provider-version='10.5' \

--db-admin-passwd='root123' \

--os-user=root \

--os-key-file=/root/.ssh/id_rsa \

--cluster-name='MariaDB1' \

--log

Bạn sẽ thấy nhật ký công việc trong bảng điều khiển để có thể theo dõi tiến độ triển khai ở đó hoặc bạn cũng có thể theo dõi tiến trình công việc từ ClusterControl UI -> Activity -> Jobs. Khi hoàn tất, bạn có thể thấy nó được liệt kê trong giao diện người dùng ClusterControl.

Kết luận

Trong blog này, chúng tôi đã đề cập đến một số tùy chọn để triển khai Cơ sở dữ liệu MariaDB cho Tính khả dụng cao bằng ClusterControl và cách sử dụng nó trên ứng dụng Chamilo LMS.

Chúng tôi đã sử dụng một triển khai master-slave đơn giản thêm các bộ cân bằng tải để cải thiện Tính khả dụng cao trên cấu trúc liên kết này, nhưng bạn có thể cải thiện môi trường này nhiều hơn nữa bằng cách sử dụng một phương thức phê duyệt khác như Galera + ProxySQL hoặc kết hợp chúng khác nhau .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL vs MariaDB vs Percona Server:So sánh các tính năng bảo mật

  2. DROP BẢNG NẾU TỒN TẠI trong MariaDB

  3. Bảo mật sao lưu MySQL:Hướng dẫn

  4. Thúc đẩy hiệu suất trong thiết lập đám mây kết hợp

  5. Người điều hành MariaDB UNION đã giải thích