Moodle là một hệ thống quản lý học tập mã nguồn mở, được các trường phổ thông và đại học trên thế giới sử dụng rộng rãi. Dự án bắt đầu vào năm 2002 bởi Martin Dougiamas, với mục đích cung cấp cho người học, giáo viên, nhà giáo dục một nền tảng an toàn, mạnh mẽ, cởi mở và miễn phí cho môi trường học tập.
Bản thân phần mềm này được viết bằng PHP và hỗ trợ các RDBMS khác nhau, chẳng hạn như:Oracle, MySQL, PostgreSQL, MariaDB, v.v.
Trong blog này, chúng ta sẽ thảo luận về cách làm cho cơ sở dữ liệu Moodle có khả năng phục hồi bằng cách sử dụng MySQL Replication, cần thiết để hỗ trợ triển khai Moodle có tính khả dụng cao. Chúng tôi sẽ triển khai thông qua ClusterControl một thiết lập cơ sở dữ liệu bao gồm Bản sao MySQL chính / phụ được hỗ trợ bởi các bộ cân bằng tải cơ sở dữ liệu dự phòng.
Kiến trúc
MySQL replication là một cách phổ biến để đạt được khả năng dự phòng cho cơ sở dữ liệu. Điều quan trọng là đảm bảo rằng tất cả các lần ghi đều được gửi đến cái chính, trong khi các lần đọc có thể được cân bằng tải giữa các nô lệ. Để làm được điều đó, chúng tôi sẽ sử dụng ProxySQL, là một bộ cân bằng tải nhận biết cơ sở dữ liệu đảm nhiệm việc phân tách lưu lượng ghi và gửi nó đến máy chủ. Vì vai trò chủ có thể di chuyển sang máy chủ khác, chẳng hạn như trong trường hợp cơ sở dữ liệu gặp sự cố, ProxySQL có thể theo dõi chế độ chính mới và đảm bảo lưu lượng ghi được định tuyến tương ứng. Một VirtualIP được quản lý bởi Keepalived để đảm bảo một điểm cuối cơ sở dữ liệu linh hoạt cho tất cả các máy chủ ứng dụng Moodle.
Quản lý Giám sát và Chuyển đổi Dự phòng
Trong sơ đồ trên, chúng tôi đề xuất hai bản sao tách khỏi cơ sở dữ liệu chính. Trong trường hợp bản chính gặp sự cố, một trong các bản sao sẽ được thăng cấp thành bản chính mới. Sẽ vẫn còn một bản sao để xử lý những thứ như đọc, sao lưu, báo cáo, v.v.
Kết nối ứng dụng sử dụng VIP (Địa chỉ IP ảo) trong chuỗi kết nối cơ sở dữ liệu, vì vậy nếu có điều gì đó xảy ra ở phía cơ sở dữ liệu, nó sẽ giảm thiểu tác động từ ứng dụng của bạn và bạn không cần phải cấu hình lại bất cứ điều gì. ClusterControl là thành phần theo dõi cơ sở dữ liệu và tự động chuyển đổi dự phòng, ví dụ:thúc đẩy một trong các bản sao sang bản chính mới và khôi phục máy chủ cơ sở dữ liệu bị lỗi.
Thiết lập Cơ sở dữ liệu
Chúng tôi sẽ sử dụng ClusterControl để triển khai thiết lập cơ sở dữ liệu của chúng tôi.
Trước tiên, bạn cần có một máy chủ chuyên dụng để thiết lập ClusterControl. Việc cài đặt rất dễ dàng, bạn chỉ cần tải xuống install-cc từ kho lưu trữ vàinines, cấp quyền thực thi trên tệp và chạy nó. Như hình dưới đây:
$ wget http://www.severalnines.com/downloads/cmon/install-cc
$ chmod +x install-cc
$ sudo ./install-cc # omit sudo if you run as root
Bạn có thể chạy tập lệnh trên trong bất kỳ loại biến thể Linux nào. Nó sẽ triển khai bất kỳ thứ gì được ClusterControl yêu cầu.
Khi bạn đã thiết lập và chạy ClusterControl, hãy chọn nút Triển khai từ Bảng điều khiển ClusterControl.
Nó sẽ hiển thị một trang mới hiển thị một số tùy chọn. Chúng tôi sẽ chọn tùy chọn Triển khai đầu tiên cho thiết lập Bản sao MySQL của chúng tôi.
Bạn cần có quyền truy cập vào máy chủ cơ sở dữ liệu đích thông qua SSH. Đừng quên bật SSH không cần mật khẩu và cấp quyền truy cập sudo cho người dùng. Xác định tên cụm và nhấp vào Tiếp tục như được hiển thị bên dưới:
Trên trang tiếp theo, bạn phải chọn nhà cung cấp cơ sở dữ liệu, phiên bản cơ sở dữ liệu bạn muốn cài đặt, mật khẩu gốc, cổng máy chủ nếu bạn muốn có cổng tùy chỉnh hoặc cổng cụ thể và thư mục dữ liệu MySQL.
Sau khi điền tất cả thông tin, bạn có thể chuyển sang bước tiếp theo, đó là Xác định trang Topo. Vui lòng điền địa chỉ ip của máy chủ cơ sở dữ liệu, trong trường hợp này là khi chúng tôi thiết lập Bản sao MyQL với 1 Bản chính và 2 Bản sao.
Triển khai bây giờ sẽ kích hoạt một công việc sẽ "Tạo cụm", bạn chỉ cần cần đợi cho đến khi công việc kết thúc.
Thiết lập ProxySQL
Sau khi triển khai cơ sở dữ liệu, bạn có thể chuyển qua Load Balancer từ menu cụm của mình. Vui lòng vào Quản lý -> Cân bằng tải. Nó sẽ được hiển thị như dưới đây:
Việc triển khai ProxySQL yêu cầu bạn điền một số thông tin như địa chỉ IP ở đâu bạn muốn cài đặt ProxySQL, mật khẩu để quản trị và giám sát người dùng, đồng thời kích hoạt phiên bản để cân bằng tải. Sau đó, chỉ cần nhấp vào Triển khai. Để có tính khả dụng cao, bạn cần cài đặt ít nhất 2 bộ cân bằng tải trước cơ sở dữ liệu.
Thiết lập Keepalived
Dịch vụ Keepalived được sử dụng để làm cho bộ cân bằng tải của bạn luôn khả dụng. Việc thiết lập thực sự rất đơn giản, vẫn trên trang Load Balancer, có một tab cho Keepalived như hình dưới đây:
Chọn loại triển khai cân bằng tải, trong trường hợp này, chúng tôi sử dụng ProxySQL, chọn dịch vụ ProxySQL cho keepalived. Điền vào địa chỉ IP ảo và Giao diện mạng. Sau đó, chỉ cần nhấp vào Triển khai Keepalived, nó sẽ tự động kích hoạt một công việc mới để thiết lập dịch vụ.
Thiết lập Ứng dụng
Trước khi thiết lập ứng dụng moodle, bạn cần chuẩn bị thông tin đăng nhập người dùng và chính cơ sở dữ liệu. Để biết thông tin đăng nhập, bạn có thể đi tới:Quản lý -> Lược đồ và Người dùng.
Bạn cần điền một số thông tin, ví dụ:tên người dùng, mật khẩu, tên máy chủ và đặc ân. Sau đó, chỉ cần nhấp vào Tạo người dùng. Điều này cho phép bạn tạo người dùng cho ứng dụng moodle:
Để tạo cơ sở dữ liệu, bạn có thể chọn tab Tạo cơ sở dữ liệu trên cùng trang với tư cách là Người dùng.
Bước tiếp theo là định cấu hình thông tin đăng nhập ở phía ProxySQL, bạn có thể nhập thông tin đăng nhập mà bạn đã tạo trong ProxySQL. Bạn có thể đi đến nút ProxySQL, chọn tab Người dùng, có nút Nhập người dùng ở phía bên phải.
Tìm kiếm người dùng moodle_application, rồi chọn người dùng. Trên trang tiếp theo, bạn cần xác định Nhóm máy chủ mặc định cho người dùng và sau đó Nhập người dùng.
Vui lòng lặp lại các bước để nhập Người dùng trên nút ProxySQL khác, hoặc bạn có thể sử dụng Phiên bản đồng bộ hóa trong Trình đơn ProxySQL.
Bạn cần tải xuống ứng dụng moodle từ trang web chính thức của moodle (lại. https ://download.moodle.org/), phiên bản mới nhất khi blog này được viết là 3.9.1. Họ cung cấp hai loại tệp nén, zip nén và tar zip. Tải xuống tệp zip và đặt tệp vào máy chủ ứng dụng của bạn. Kiểm tra các yêu cầu đối với phần mềm moodle, tức là:Máy chủ Web, thư viện PHP.
Giải nén các tập tin zip vào thư mục tạm thời, tạo thư mục / var / www / html / moodle, sao chép thư mục đã giải nén vào thư mục. Đừng quên cấp quyền 0755 cho thư mục. Sau đó, bạn có thể truy cập trình duyệt web để thiết lập tiếp theo. Chọn ngôn ngữ như hình dưới đây:
Chọn trình điều khiển cơ sở dữ liệu cho thiết lập MySQL của bạn như sau:
Bạn cần điền một số thông tin xác thực cơ sở dữ liệu mà bạn đã tạo trước đó, để ví dụ:tên người dùng, mật khẩu, máy chủ lưu trữ, cơ sở dữ liệu, cổng. Tên máy chủ phải là Địa chỉ IP ảo của bạn và cổng là cổng ProxySQL, là 6032.
Máy chủ cơ sở dữ liệu sẽ là Địa chỉ IP ảo của bạn. Khi bạn đã điền vào các trường, hãy nhấp vào Tiếp theo và sau đó bạn đã hoàn tất.
Việc xây dựng cơ sở dữ liệu có tính khả dụng cao cho Moodle bằng cách sử dụng ClusterControl rất dễ dàng và đơn giản, bạn có thể xây dựng cơ sở dữ liệu của riêng mình để hỗ trợ 99,99% thời gian hoạt động dịch vụ của bạn.