I'm planning on reinstalling our company server as virtual machines on a physical machine. I want to do this to better manage the different services such as web and mail on separate (virtual) machines. I had a look at OpenStack compute and Eucalyptus and hey looked quite interesting.
The problem that I have is how to make these different services access the same file system where the user's files will be stores (e.g. the user will have her home directory in /home/ and will contain subfolders, e.g. mail for email and www for her webroot) I need to make sure that the user can access these files on the storage server and that they will be accessible from the respective servers (e.g. apache should access the www and Postfix / Dovecot the mailbox).
Does anyone have experience setting this up and can outline the setup?
You have to rethink your requirements. There is no need to access the home directories from every server. The users log in onto one server and have there files there.
The mailserver keeps track of the mailboxes and stores them on its storage (not in user directories). The mail is then deployed via IMAP.
The webserver stores its files on its storage. No need to be accessible from somewhere else.
So do other servers, too. This is what you intended by separating the services. Otherwise when you combine them via one filesystem what's your gain then?
If you intend to have only one storage server (caution: single point of failure) then you have to use a network file system like NFS and have separate(!) volumes for each purpose that you mount only on one server. One for mailboxes for the mailserver, one for home directories for the user machine, one for webpages for the webserver and so on.