I've been recently looking at Zimbra as a full electronic messaging solution, and I would like to figure out a way to deploy it in a highly available, load balanced scenary with shared storage, as I've previously done with separate FOSS products (Postfix, Dovecot, Red Hat's Global File System)

a) LB/HA for Zimbra MTAs seems quite easy (using appliances, DNS round robin, LVS-based solutions et al)

b) Zimbra LDAPs can, at least, be deployed in a master-slave architecture, or use external LDAPs (say, AD or FDS) which can do multi-master

c) However, load balancing Zimbra Mailboxes (store and apache servers) seem a little bit trickier. Particularly if you're planning on having more than two mailbox servers.

d) I don't know if it's really necessary to have more than two mailbox servers, but I calculate that Zimbra can host 5 to 8 thousand mailboxes per server, so 20 thousand users could need 4 servers. What are your experiences hosting several thousand users?

e) Even if I can share the store and index (can Zimbra hold per-server indexes and cope with roaming users?) volumes (for test purposes, using high end NFS-based NAS, but maybe iSCSI or GFS later) between several mailboxes, and change the LDAP attributes for each user pointing to a virtual hostname for all the mailboxes, the MySQL database which hosts information about the mailboxes and messages is not easily shareable between more than two servers.

f) Generally, it seems that Zimbra matches an account with a mailbox server, and this makes it quite difficult to achieve a scenario where all accounts can be accessed by any mailbox server, so if any of them fails the service can still be reached by any of the other mailbox servers.

I'd really like to have your feedback with these ideas, ad I'd like to know if any of these points are addressed by Zimbra's HA/Clustering solution available in some paid versions of the product.

Thanks for your time,