Hi,
I have a customer for whom I am doing an email
migration for. We are migrating to Messaging Server
6.3 as part of the Sun Java Communications Suite 5.
I understand that ZFS is supported in this version
for the mail store but my customer has a number of
questions that I would like to post here for
comments.
You understand incorrectly. ZFS has not been officially certified for use with messaging server 6.3 - work is being carried out to 'certify' ZFS and SAM-FS for the next release. Other customers are using ZFS and haven't reported significant issues but that's not to say they don't exist (issues that is).
The advice I can offer is if you plan on running ZFS, make sure your system is patched to at least Solaris 10u3 which includes a number of ZFS performance improvements.
Given that messaging server relies so highly on the behavior and speed of an underlying file-system we need to run any number of tests to make sure that messaging server not only works but doesn't hit significant bottlenecks.
They are:
1) Filesystem - What filesystem will be used to store
the data? Currently we are using a RAID 5 Direct
Attached 3.0 TB array. What is the best way to set
this up?
That is up to the customer as to what filesystem they run. We support UFS and VxFS on Solaris.
Make sure that you systems have fast write times - this is essential. Also you wouldn't want to have a single 3TB partition (file-system) as any filesystem corruption would cause the entire store to be unavailable.
a) If ZFS is ready for prime-time we would prefer
the use of it given UFS's limitations with 1.0 TB
partition - 1 million files per 1.0 TB. If not what
is best way to set up UFS given that we have about
1500 student accounts and 500 staff/faculty
accounts?
Create multiple partitions of a few hundred GB each until ZFS is 'ready-for-prime-time'.
b) Should data be on one partition with 2.5TB of
space for data and .5TB space for logs? We also have
a second 146GB disk on the v490 that could be used
for logs if that is large enough and if i/o to the
Direct-Attached array is an issue
If you can put your logs and mailbox database directory on fast direct-attached that can improve performance. But it would depend on what the load of the system is. One v490 to cater for that number of students/staff shouldn't be a problem. I personally ran a single v480 for ~10,000 staff accounts and another for ~40,000 student accounts without them breaking a sweat.
c) tempfs appears useful for some files with JCS.
Adding more to this in a bit.
Set store.dbtmpdir to point to /tmp/mail-store/
That will store the database temporary files on a tmpfs filesystem which improves performance.
2) Quotas - Related to question 1 for how filesystem
is broken up if necessary. If using ZFS ignore
section on benefits of single-copy email downside if
broken into multiple partitions.
a) We would like the largest quota possible while
first maintaining critical aspects - system
performance, reliability and backups.
Ok, but the most critical aspect is growth and how you intend to deal with growth. The biggest issue with direct-attach is running out of spare slots etc. and expanding file-systems to cater for store growth.
Remember also that filesystems start to perform badly (fragmentation issues) as they reach high utilisation (95%+) so you don't want to get near this value.
b) The average user with a 75MB quota is using
approximately 44MB of disk space, for about 2050
users totaling 90GB of data.
c) Is is safe to assume that the same number of
users using 500MB quota (assuming 100% usage) will
be using 1.026TB of space?
This is very much site dependant. In my case for a University staff population we were massively oversubscribed (amount of possible usage vs. actual usage) simply because a number of accounts got very little use.
One thing I would implement is some kind of default spam filtering so that 'spam' emails are put into a 'Spam' folder which is cleaned up every 30 days etc. That stopped growth tremendously in our student accounts which we had over 80,000 and for which a large number of students never checked (or used as spam-catches :( )
d) Assuming c) is correct, is it safe to assume that
giving a 1GB quota will be using 2.052TB?
Already addressed above.
e) Is 80% of quota a fair estimate of a typical
user? Any stats (Gartner, other implementations) to
back up a typical use case?
My personal experience at a University is that usage was much less then that. We tended to work on the add-more-space-as-required philosophy. So perhaps start with less space but have documented procedures in place on how to increase should the need eventuate.
f) If e) is correct, is it safe to give quotas in
the typical form
2007-2008 - 1GB
2008-2009 - 1.25 GB
2009-2010 - 1.50 GB
Note: Every Year approximately 400 accounts are
deleted on December 31st.
g) Are there any performance issues with assumptions
a)-f)?
Yes. Larger quotas result in larger inboxes which results in larger imap processes which requires more imap processes (until 64bit version is released) and potentially more I/O for backup/imexpire operations etc.
h) Are there any backup issues with assumptions
a_-f)?
They will be larger and take longer? I'm not sure what else you mean? Also consider how you are going to restore in the case of a DR scenario, I know with legato we found it would take 2 weeks to restore the systems from scratch on a per-file level.
Consider also taking block-level backups if your backup software can handle it.
i) Are there any other considerations to consider?
j) How hard is it to move a batch of users (say 100)
to a new partition on a NAS, SAN, or additional
direct-attached users when the filesystem gets full?
You can use the mboxutil command to shift between messaging partitions which can be mounted to different file-systems/san partitions. Make sure you use the 'relinker' command to restore the hard-links broken during the process.
This procedure should of course be tested BEFORE using on real accounts.
How long would it take to move 100 1GB accounts?
Would it affect system performance in any way? Is
this moot with ZFS?
Do it and find out - thats a 'how long is a piece of string' question.
k) Since single-copy efficiency is only used per
partition (as stated in Sun's docs) ,is there a way
to determine current single-copy efficiency
statistics that can be used if multiple less than 1
Terabyte UFS partitions are necessary?
refer to relinker utility documentation. single-copy efficiency also works on the behaviour of your organisation (do you send out bulk-emails to 1 recipient/email or many recipients/email).
l) If using about 4 million files with 90GB
accounts, it it safe to assume 100 million files for
2TB of data? If using ZFS, is cloning or similar
ZFS/JCS backup method viable? If using UFS, is
imsbackup, volcopy, or other Solaris imaging viable?
Any pitfalls to this approach?
No idea.
Hope this helps.
Shane.