Moodle High Availability needed

Moodle High Availability needed

by Web Developer -
Number of replies: 4

Dear all,

I am planning to deploy new environment(latest version of moodle) with 2 application server(active/ active) with load balance  and 2 database server(fail over cluster) regards to database server i am not sure to do it active/ passive or  to make a replication and what to do so could you help me to give me a clue with best scenario

i have many questions

  • what is the best scenario for around 20,000+ students
  • should i make Windows Server Fail over Clustering??
  • should i use MySQL Replication,Master/Slave?
  • how many db nodes i need
  • what about file system files (do i need shared SAN storage)?
  • for MySQL which version have to choose MySQL Cluster 7.3.2,MySQL Installer 5.6.12 or MySQL Community Server 5.6.12

note:i am using windows 2008 servers

attached file  has suggested  scenario

many thanks in advance

 

Attachment my-sugestion.png
Average of ratings: -
In reply to Web Developer

Re: Moodle High Availability needed

by M O Faruque Sarker -

Hi,

From the diagram what I can see missing is the file server that hosts the Moodle user data (aka Moodle dataroot). We run a large Moodle production site hosting several thousand courses for 70k+ users with 3 application servers, 1 NFS file server, 2 master/slave MySQL servers.

An outline of our setup is here:

http://www.moodledevops.com/index.php/people-systems-and-tools-around-moodle-application

I hope some other experts from this forum can tell you about the failover cluster part and that would be interesting to learn.

Faruque

Average of ratings: Useful (1)
In reply to Web Developer

Re: Moodle High Availability needed

by jason everling -
You can use a Windows Failover Clustering for MySQL and it would be fine, just make sure you have enough RAM and CPU power (for your size probably anywhere between 32GB to 128GB) in the host to support your user base and depending on what concurrent load you expect. You can use jMeter to gain these statistics. You must use InnoDB when using MySQL, Moodle does not support the MySQL Cluster NDB engine. You can also use a database cluster using Percona XtraDB Cluster or MariaDB Cluster, requires 3 Hosts at the least, all use the InnoDB engine using write-set replication, database load balancing. Se here: https://moodle.org/mod/forum/discuss.php?d=231797 For the application servers, yes you would need shared storage, either Fibre channel or SAS . Yes, You can use NFS but for the latest version of moodle you would need to use memcache for the moodle universal cache from this post or suffer poor performance: https://moodle.org/mod/forum/discuss.php?d=227745 Other than that you should be good, Jason
Average of ratings: Useful (1)
In reply to Web Developer

Re: Moodle High Availability needed

by Web Developer -

first thanks jason everling , and thanks M O Faruque Sarker.

So I need:

i saw this guide

http://www.mysql.com/why-mysql/white-papers/mysql_wp_windows_failover_clustering.php

 is it my Case???

 

 

In reply to Web Developer

Re: Moodle High Availability needed

by jason everling -

"MySQL Community Server 5.6.12(still o am not sure if this work fine or MySQL Cluster 7.3.2 or MySQL Installer 5.6.12 )& InnoDB must be used for the database."

You will need to use MySQL Community Server for Windows, the MySQL Installer 5.6.12 NOT MySQL Cluster 7.3.2, it is outlined in the guide you linked.

"Windows Server 2008 R, WSFC cluster validation must pass"

Follow that guide you linked from MySQL, Yes, MySQL for Failover Clustering has passed all Microsoft Validations for WSFC.

In order to fully pass validation results for Windows Failover Clustering you must have redundant network connections, it is not necessary but Microsoft will not support your setup unless all validation tests have passed.

"SAN should be used for the shared storage"

Yes, you need shared storage. A SAN (Fibre Channel, iSCSI, DAS)is perfect, especially for Windows Failover Clustering, Quorum disk is needed, MySQL Binaries and Data, moodledata will also be on a shared LUN. ( Just a tip if you do not have a SAN already, Server 2012 includes iSCSI target software to create shared storage using iSCSI )

Follow the guide you linked, that is the whitepaper from Oracle for a proper failover cluster setup, I myself have used that guide in the past and it is not very difficult.

Here is a summary of what the guide includes,

Steps to Configure MySQL for Windows Failover Clustering.................10

Step 1. Configure iSCSI in software (optional) .....................................10

Step 2. Ensure Windows Failover Clustering is enabled .....................12

Step 3. Install MySQL as a service on both servers ............................13

Step 4. Migrate MySQL binaries & data to shared storage ..................13

Step 5. Create Windows Failover Cluster ............................................15

Step 6. Create Cluster of MySQL Servers within Windows Cluster .....17

Step 7. (Optional) Add asynchronous replication to an external slave 19

Step 8. Test the
cluster.........................................................................19

Step 9. MySQL Upgrades.....................................................................22

 

Jason

Average of ratings: Useful (1)