2. Zarafa MSR Mail store relocator Used to move store from one system to another Also does real-time sync after the initial copy Sync is bi-directional Server1 Server2
3. MSR copy only possible between two separate Zarafa instances Can be in the same cluster, but not required Destination user should not have a store You can remove it with zarafa-admin –unhook-store Zarafa MSR: how to use
4. [Connection] # Local server serverpath: file:///var/run/zarafa # Path to the ssl certificate to get admin access on remote server sslkey_file: ssl.cert sslkey_pass: pass [Servers] server_alias1: https://server1:237/zarafa [Mapping] user1: https://server2:237/zarafa user2: %(server_alias1)s Zarafa MSR: configuration file
5. MSR will keep stores in sync after the initial copy Allows user to keep working Administrator can switch user to other node At next login, the user will have been migrated No profile re-creating needed Zarafa MSR: sync after copy
6. MSR also does bidirectional sync This allows general replication of two stores Can be used within a cluster or outside a cluster Uses Create a shared, replicated store across different zarafa instances Replicate the public store to other Zarafa nodes Create replicated stores for geographic separation Zarafa MSR: a totally different use
7. Separate package for windows Fixes opening other calendars Fixes private items Still to come Addressbook fixes Conversation view Outlook 2010
8. Zarafa python tools Zarafa-rrd Creates and updates statistics Uses standard ‘rrdtools’ package Makes nice graphs
9. Zarafa python tools Zarafa-cachestat Shows cache statistics No longer available from SIGUSR1 (by the way SIGUSR2 was already removed in Zarafa 7.0, please use zarafa-admin –clear-cache) uquota ( 0/ 0) (N/A) index1 ( 3/ 3) (100%) obj ( 8/ 27) (29%) abinfo ( 0/ 0) (N/A) userid ( 0/ 0) (N/A) quota ( 0/ 0) (N/A) server ( 0/ 0) (N/A) cell ( 0/ 0) (N/A) index2 ( 2/ 6) (33%) extern ( 0/ 0) (N/A) acl ( 0/ 0) (N/A) store ( 9/ 22) (40%)
11. Main problem: N concurrent users Each user has one ‘push’ connection The push connection is an always-on TCP connection The connection is handled by Apache (PHP) Apache runs a process for each connection N = 1 million 1 million Apache processes needed Z-Push: a large-scale implementation
12. Solution: use Apache only for control data Apache handles normal z-push connections Specialized native c++ component handles push connections Tested with up to 300000 concurrent TCP connections on a single host HTTP request Proxy PHP/ Apache C++ Push App
13. Some things to think about Only about 60000 available TCP ports If you want more, you need to have multiple IP’s Useful to do with load balancer HTTP request Proxy PHP/ Apache C++ Push App
14. Project status Not currently released If you want to use it, please contact us