[CentOS] Re: New Server Recommendation -- disk label strategy, quotas, etc...

Wed Jun 15 15:41:29 UTC 2005
Bryan J. Smith <b.j.smith@ieee.org> <thebs413 at earthlink.net>

From: Mike Kercher <mike at CamaroSS.net>
> I'm about to deploy a new server for hosting sites and email for a
> number of small individuals using a CentOS 4 box.  I've been looking
> for a recommended installation guide for RHEL4/CentOS4 giving
> recommended disk partitioning

I have personal recommendations I follow.  One thing I really try to
do is make 2-3 "classes" of filesystem sizes, with 1 "spare" for each.
That way I can flop around filesystems, accomodate additions, etc...
LVM/LVM2 helps reduce this, but I still like to use the approach
(except I just don't make spares, I just reserve 15-30% of disk
space for LVM/LVM2).

E.g., the "essential" class is typically 2-8GB each.
The "support" class is typically 8-64GB each.
The "discretionary" class is typically 64+GB each.

For all systems, I typically do these "essential" classes:  
  / /tmp /var

I also typically create the following "support" classes:
  /usr
  /usr/local (and a symlink from /opt -> /usr/local)

And more "support" class filesystems for servers:  
  /var (instead of an "essential" size)
  /srv (newer FHS 2.3+ compliant systems)
  /var/log
  /var/lib (application, database, etc... servers)
  /var/mail (mail servers)
  /var/spool (mail, print, etc... servers)
  /var/www (web servers)
  /var/ftp (FTP servers)
In some cases -- FHS 2.3+ compliant -- these are under /srv
instead of /var.

If I want local data/temporary storage, I typically create of
the "discretionary" size:  
  /export|home/(systemname)

I like to make at least _3_ "discretionary" size, 2 mounted
with 1 spare, so 1/3rd each.  Again, in the day of LVM/LVM2,
I typically just reserve 15-30% of the disk allocation instead
of making pre-made spares of each class -- but I would at
least make _2_ "discretionary" size (instead of one big one).

I also use "/export" when I know I'm going to be exporting them
via NFS (and setting up my NIS/LDAP autmounter maps accordingly).
Otherwise I use /home.  Even if I'm not sure I'm going to export
via NFS, if I'm sharing via SMB, then I put them under /export.  In
a nutshell, if they are network mountable (for whatever protocol),
they are under /export.

> as well as quotas.  I've not used quotas with LVM yet.

Don't quote me, but quotas are a filesystem issue and shouldn't matter
with LVM/LVM2 disk labels.

I'd personally like to see a performance evaluation of Ext3 v. XFS
_with_ quota operations.  Most comparisons these days seem to be
"raw" block operations -- whether big or small -- instead of disk
operations sysadmins would normally do day-to-day.

> This box is going to have an 80 IDE system drive, an 80G SATA and a
> 250G SATA for everything else.  One thing I want to be sure of is that
> I don't run out of space for the mail spools in /var/spool/mail.

If you are building a new system with such storage requirements, I would
really push you towards a 3Ware Escalade 8006-2 or 8506-4.

Have you already purchased the hard drives? 
If so, then merely buy a 2nd 80GB SATA and 2nd 250GB SATA with a
8506-4 and use RAID-1 for each.
If not, then just buy a cheaper 8006-2 and use RAID-1 with (2) 300GB
disks (you might consider this even if you already have some drives).

> Does anyone know of a guide for this online?

I think sysadmins differ so widly that there is no uniform approach.

Even my 2-3 class approach is rather dated in the age of LVM/LVM2,
although I continue to use it out of habit.

> I wish Johnny had a guide like this on his site :)

Well, I'm sure most of my approaches come from SunOS/Solaris
even before Linux really caught on, much less the Linux FHS,
more recent updates, etc...


--
Bryan J. Smith   mailto:b.j.smith at ieee.org