Disk partitioning on Moodle server

Disk partitioning on Moodle server

by Teemu Koistinen -
Number of replies: 5
I'am planning new Moodle server installation. We have used shared server so far, but due performance and support issues we decided install Moodle on our own server.
I have a question about disk partitioning. Server comes with six 74 GB SCSI disks and integrated raid controller.
I'am planning to use one RAID 1 mirrored pair ( mounted /, swap ) and four disks on RAID 5 (mounted /var). Web-root and Mysql data will be on RAID 5 volume. Is this right way to go???


Teemu
Average of ratings: -
In reply to Teemu Koistinen

Re: Disk partitioning on Moodle server

by Andrea Bicciolo -
Teemu,

redundancy is always good smile. Probably I would also create a mount point for /home in the raid5 volume, especially if you are going to run Moodle from within a normal user folder rather than the default apache folder.
In reply to Andrea Bicciolo

Re: Disk partitioning on Moodle server

by Rory Allford -
The moodle data directory would benefit from being mirrored as well, especially as it contains frequently accessed items like the text cache and sessions.

I may get shot down for this, but I think the best way for you to go would be to use RAID 1 for the whole thing as performance rather than space is the usual limiting factor; it would be wise to do some initial monitoring of the disk work queue length when under load - you may even find it might benefit from triple mirroring for those extreme circumstances if the spikes are particularly high.

We recently switched over our server to some 10K RPM drives running Linux RAID 1 (the Intel on-board hw RAID it had is mostly software), noticing an immediate decrease in the time for page impressions. Unlike RAID 5 there is no tradeoff between the decreased read/seek times but increased writing (under certain circumstances), and you also have perfect redundancy.

Mirroring the whole of / transparently also makes life a lot easier, removing the need to worry what parts of the FS are volatile (/var ? the mysql cache? etc) and where they should go.

Finally, avoid putting swap on a RAID, especially RAID 1 - if you are using software, make the partitions primary, outside the multidisk -  You will actually reduce its performance by increasing write times, and the kernel makes efficient use of its swap anyway. See Here.
In reply to Teemu Koistinen

Re: Disk partitioning on Moodle server

by Iñaki Arenaza -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers
If you don't mind 'losing' half of your disk space, I would go with RAID 1+0 (also called RAID 10) if your card supports it, where you use three disks as a stripped disk (RAID 0) which are mirrored on the other three disks (RAID 1).

This way you get full redundancy on every disk, and performance is higher than RAID 5 (specially on writes). The only downside is the disk space you loose (only half the real disk space). But if 3x74 GB is enough for you, I would go this way.

Saludos. Iñaki.
In reply to Teemu Koistinen

Re: Disk partitioning on Moodle server

by Chris Ainsworth -

Teemu    I have been playing around with several configurations of Linux servers since the second Aussie Moodle conference where we ran a couple of workshops in installing Moodle in a standalone and clustered environments.

For starters, productions servers at the very least should have a RAID disk array - no questions asked on that one.  Based on the workshop experiences and feedback (which was a little heated at times - one knows how techo's get passionate about their own personal configurations) we also established what we believe to be a reasonable schema for a system install based on 120 Gb disk capacity.

Partition

Size

boot

100 Mb

/  (root)

15 Gb

/var

15 Gb

/tmp

2 Gb

/swap partition (s)

swap partitions 2 Gb maximum in size.  1st Swap 2 Gb irrespective of memory installed then in 2 Gb partitions based on memory installed (makes setting up swap file partitions easier each is 2 Gb on any given disk or multiple partitions). Overall

2 Gb swap for each Mb RAM up to 2 Gb then 1 Gb per MB over 2 Mb physical RAM

ie;

2 Mb RAM  2 x 2 Gb Swap partitions

4 Mb RAM  3 x 2 Gb Swap partitions

/home

Remainder - each moodle is installed in /home/domains/<domain name moodle site name>/moodle  etc

The size of your swap should be equal to twice your computer's physical RAM for up to 2 GB of physical RAM. For physical RAM above 2 GB, the size of your swap should be equal to the amount of physical RAM above 2 GB. The size of your swap should never less than 32 MB.

Red Hat Enterprise Systems Manual

http://www.centos.org/docs/4/html/rhel-sag-en-4/

The swap files issue I came across in a Red Hat Enterprise document.  (I copied it into my install notes but forgot to reference it)  Then only partitions that are not mirrored are the swap partitions and I have a tendency to put the 1st and 2nd  swap file on the mirror drive and the 3rd and 4th swaps partition on the primary drive. (I add 4 to keep the drive partitioning schema the same as I run 4 Mb RAM on servers)  In your case with 6 drives, you will get away with a 2 Gb swap file on each drive and then just order the sequence in which you want them accessed.

I have a lot more notes on installing and administering Moodle on servers.  I have been discussing with Johnathan who started an Administrators course that had some difficulties and was never completed, to start another one but a Dummies to Guide to System Administration and how to set up Moodle on different server configurations and administer their sites if anyone is interested. It will be focussed on newbies and while it will be structured, will not have a time line focus but a competency focus.  It is also my idea to run the course on a fee for service (a fee yet to be determined but not over the top), with the proceeds going back to Moodle.org.  This is yet to be finalised, but I think is it a fair way in both getting commitment from participants and contributing back to the development of Moodle. Freebie courses tend to have a high drop out rate.

I trust the partitioning idea assists you in your configuration  Teema   Mirroring is the way to go in any install.

 

In reply to Teemu Koistinen

Re: Disk partitioning on Moodle server

by Visvanath Ratnaweera -
Picture of Particularly helpful Moodlers Picture of Translators
Your question is not only a partitioning issue but RAID is also a part of it. Looking at the specs you seem to have plenty of elbow room wink

I guess, your line of logic was:

1. one RAID-1 volume 74 GB, more reliable, not necessarily faster

2. one RAID-5 volume 222 GB, fast, reliable too.

Since they are two volumes, there is a hard line between them. Now the question is how to partition and which partition goes to which mount point.

In a Moodle-Server there are two directories which will grow with the usage: $moodledata, $mysqlvar. Administrators have no control over them.

Then there is the $httpdlogdir, $syslogdir where the administrator can do regular cleaning.

Thirdly the $tmp which also shouldn't grow out of control.

$moodledata and $mysqlvar both require speed, and can grow indefinitely. So I would put one or both of them on the RAID-5 volume (222 GB) and everything else on the RAID-1 (74 GB).

Now comes how many partitions, where to mount them, what really are $moodledata, $mysqlvar, $httpdlogdir, ... For that Chris gave a quite a few pointers in a previous posting.

Hope it helps.