hmLoadTopic({
hmKeywords:"Cluster Nodes,Cluster Service,Load Balancing,Nodes,Setting up an MDaemon Cluster",
hmTitle:"Cluster Service",
hmDescription:"MDaemon\'s Cluster Service is designed to share your configuration between two or more MDaemon servers on your network. This makes it possible for you to use load balancing...",
hmPrevLink:"outlook_connector_client_add-ins.html",
hmNextLink:"cluster_options.html",
hmParentLink:"index.html",
hmBreadCrumbs:"Setup Menu",
hmTitlePath:"Setup Menu > Cluster Service",
hmHeader:"<h1 class=\"p_Heading1\" style=\"page-break-after: avoid;\"><span class=\"f_Heading1\">Cluster Service<\/span><\/h1>\n\r",
hmBody:"<p class=\"p_BodyText\"><span class=\"f_BodyText\">MDaemon\'s Cluster Service is designed to share your configuration between two or more MDaemon servers on your network. This makes it possible for you to use load balancing hardware or software to distribute your email load across multiple MDaemon servers, which can improve speed and efficiency by reducing network congestion and overload and by maximizing your email resources. It also helps to ensure redundancy in your email systems should one of your servers suffer a hardware or software failure.<\/span><\/p>\n\r<p class=\"p_BodyText\"><span class=\"f_BodyText\">Here are a number of things to consider when deciding whether or not to set up an MDaemon cluster on your network:<\/span><\/p>\n\r<p class=\"p_DialogSectionHeading\" style=\"page-break-after: avoid;\"><span class=\"f_DialogSectionHeading\">Nodes<\/span><\/p>\n\r<p class=\"p_BodyText\"><span class=\"f_BodyText\">An MDaemon cluster will have a primary node and secondary nodes. One MDaemon server will be designated as Primary and all the others will be Secondary.<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1\">The MDaemon server acting as the primary node has its configuration replicated on all other nodes. Thus the primary node is the only node that can be used to make configuration changes; if you access a secondary node and make configuration changes, those changes will be overwritten. Consequently, most configuration options aren\'t accessible in the user interface on secondary nodes.<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1\">The cluster service does not replicate mailbox folders or public folders across nodes; all nodes share the same set of message folders. User mail folders and public folders must be at a location on your network that is accessible to all nodes.<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1\">Any changes to email that happen on a secondary node are sent to the primary node and then all other nodes are notified of the change.<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1_LastItem\">The XML-API on secondary nodes is read only.<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1\">Each node in the cluster should be on the same network. We do not recommend using the cluster service to cluster servers that are in different locations.<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1\">Each node in the cluster needs to be running the same version of MDaemon.<\/span><\/p>\n\r<p class=\"p_List1_LastItem\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1_LastItem\">Each node in the cluster requires its own MDaemon key.<\/span><\/p>\n\r<p class=\"p_DialogSectionHeading\" style=\"page-break-after: avoid;\"><span class=\"f_DialogSectionHeading\">Routing<\/span><\/p>\n\r<p class=\"p_BodyText\"><span class=\"f_BodyText\">MDaemon does not handle the routing of any traffic to or from specific nodes. We recommend that you use a third-party load balancer to handle the routing of traffic.<\/span><\/p>\n\r<p class=\"p_BodyText\"><span class=\"f_BodyText\">Sticky sessions in your load balancer is required so that all traffic from the same IP is routed to the same host. Sticky sessions is most important for MDRA, Webmail, and XMPP traffic as they are not yet cluster aware, which means session information is not passed between the nodes. To deal with this limitation:<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1\">All MDRA connections must be routed to the primary node.<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1\">When someone logs in to Webmail on a specific server, all traffic for that session must be routed to that same server.<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1\">Webmail and XMPP traffic needs to be routed to the same server in order for Webmail\'s built-in chat features to work.<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1\">All XMPP traffic must be routed to the same node, otherwise users connecting to different servers would not be able to chat with each other.<\/span><\/p>\n\r<p class=\"p_List1_LastItem\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1_LastItem\">Considering the above points, we recommend that all HTTP and XMPP traffic be routed to the primary node, as that is the easiest configuration and least likely to cause any problems. If you are not using some of these features, however, you could alter your configuration (although sticky sessions are still required).<\/span><\/p>\n\r<p class=\"p_DialogSectionHeading\" style=\"page-break-after: avoid;\"><span class=\"f_DialogSectionHeading\">Mailboxes and Folders<\/span><\/p>\n\r<p class=\"p_BodyText\"><span class=\"f_BodyText\">Mailboxes, Public folders, and some other folders must be stored in a shared path that is accessible by each node in the cluster. Remember if you are using a UNC path you will need to run the MDaemon service as a user that has access to the network location.<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1\">You must manually update your mailbox and folder paths and move the contents of the folders to the cluster accessible location. This is not an automated function that MDaemon can perform for you when setting up clustering. The cluster service will update the MDaemon.ini file with the network folder paths for Mailboxes and Public Folders that you provide in your cluster service configuration.<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1\">The Lockfiles directory must to be moved to a shared location. You can allow the Clustering Service to do this automatically, or you can do it manually by editing the <\/span><span class=\"f_PlainText\">LockFiles<\/span><span class=\"f_List1\"> key in the <\/span><span class=\"f_PlainText\">[Directories]<\/span><span class=\"f_List1\"> section of the <\/span><span class=\"f_PlainText\">MDaemon.ini<\/span><span class=\"f_List1\"> file. If you allow the clustering service to do it for you, the LockFiles directory will be located under the Network Mailbox path.<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1\">The PEM directory also must be moved to a shared location. To do this, copy the <\/span><span class=\"f_PlainText\">MDaemon\\PEM\\<\/span><span class=\"f_List1\"> folder to the new shared location, edit the <\/span><span class=\"f_PlainText\">PEM<\/span><span class=\"f_List1\"> key in the <\/span><span class=\"f_PlainText\">[Directories]<\/span><span class=\"f_List1\"> section of the <\/span><span class=\"f_PlainText\">MDaemon.ini<\/span><span class=\"f_List1\"> file and restart MDaemon..<\/span><\/p>\n\r<p class=\"p_List1_LastItem\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1_LastItem\">The new account template will be updated with the mailbox path provided in the cluster service configuration.<\/span><\/p>\n\r<p class=\"p_DialogSectionHeading\" style=\"page-break-after: avoid;\"><span class=\"f_DialogSectionHeading\">Dynamic Screening<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1\"><a href=\"dynamic-screening_options.html\" class=\"topiclink\">Dynamic screening<\/a> sends all requests to the primary server node, and the data from the primary node is replicated to secondary nodes.<\/span><\/p>\n\r<p class=\"p_List1_LastItem\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1_LastItem\">If the primary node is offline, secondary nodes use their own dynamic screening configuration, which should be identical to the configuration on the primary node at the time it went offline. When the primary comes online, any changes to Dynamic screening made by the secondary servers will be overwritten.<\/span><\/p>\n\r<p class=\"p_DialogSectionHeading\" style=\"page-break-after: avoid;\"><span class=\"f_DialogSectionHeading\">Certificates<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1\">SSL Certificates are automatically replicated from the Primary to Secondary nodes.<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1\">MDaemon also replicates its <a href=\"ssl_mdaemon.html\" class=\"topiclink\">certificate settings<\/a>, so each<\/span><span class=\"f_Comment\"> <\/span><span class=\"f_List1\">node\/server in the cluster will attempt to use the same certificate. If a node does not have the correct certificate all SSL\/TLS\/HTTPS traffic will fail on that node.<\/span><\/p>\n\r<p class=\"p_List1_LastItem\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1_LastItem\">MDaemon\'s LetsEncrypt options do not support secondary nodes at this time.<\/span><\/p>\n\r<p class=\"p_DialogSectionHeading\" style=\"page-break-after: avoid;\"><span class=\"f_DialogSectionHeading\">Other<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1\"><a href=\"attachment_linking_dialog.html\" class=\"topiclink\">Attachment Linking<\/a> cannot be used in a cluster and is therefore disabled when you enable clustering.<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1\"><a href=\"preferences_updates.html\" class=\"topiclink\">Automatic Update Installation<\/a> must be disabled.<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1\"><a href=\"domain-manager_host_name_ip.html\" class=\"topiclink\">Domain name to IP address binding<\/a> must be disabled.<\/span><\/p>\n\r<p class=\"p_List1_LastItem\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"font-family: Arial,\'Lucida Sans Unicode\',\'Lucida Grande\',\'Lucida Sans\';display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">&#8226;<\/span><span class=\"f_List1_LastItem\">All nodes in a cluster should be set to the same time zone, and set to the exact same time. If the time zone is not the same, or if the times are off by more than 1 second, a warning will be logged in the Cluster log.<\/span><\/p>\n\r<h2 class=\"p_Heading2\" style=\"page-break-after: avoid;\"><span class=\"f_Heading2\">Configuring the Cluster Service<\/span><\/h2>\n\r<p class=\"p_NoFormat\"><span class=\"f_NoFormat\">&nbsp;<\/span><\/p>\n\r<p class=\"p_BodyText\"><span class=\"f_BodyText\">Follow these steps to set up your cluster service:<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">1.<\/span><span class=\"f_List1\">Make sure that you have updated all mailbox paths and adjusted the public folder paths. The primary server should be using a network storage location for this data and should be able to access the data without any issues prior to proceeding.<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">2.<\/span><span class=\"f_List1\">All the appropriate certificates should be installed on each node.<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">3.<\/span><span class=\"f_List1\">Install MDaemon on a secondary node using a unique key. <\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">4.<\/span><span class=\"f_List1\">On the primary node, go to <\/span><span class=\"f_List1\" style=\"font-weight: bold;\">Setup » Cluster Service<\/span><span class=\"f_List1\">.<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">5.<\/span><span class=\"f_List1\">Right-click the list of Registered Servers, and click <\/span><span class=\"f_List1\" style=\"font-weight: bold;\">Add new MDaemon server to cluster<\/span><span class=\"f_List1\"> (this may be slow because it is searching the network for available servers).<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">6.<\/span><span class=\"f_List1\">In <\/span><span class=\"f_List1\" style=\"font-style: italic;\">Server Name<\/span><span class=\"f_List1\">, enter the NETBIOS name, IP address, or DNS name of the secondary node MDaemon is installed on, or select the server from the drop-down list—t<\/span><span class=\"f_ControlIndent\">here may be a delay as it is searches the network for available servers.<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">7.<\/span><span class=\"f_List1\">Click <\/span><span class=\"f_List1\" style=\"font-weight: bold;\">Ok<\/span><span class=\"f_List1\">.<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">8.<\/span><span class=\"f_List1\">Check the Plugins \/ Cluster log to ensure the two servers were connected and that replication is occurring.<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">9.<\/span><span class=\"f_List1\">Go to <\/span><span class=\"f_List1\" style=\"font-weight: bold;\">Setup » Cluster Service<\/span><span class=\"f_List1\"> on the secondary node to confirm that it now also lists the primary and secondary nodes under Registered Servers.<\/span><\/p>\n\r<p class=\"p_List1\" style=\"text-indent: 0; padding-left: 1.6875rem; margin-left: 2.0625rem;\"><span class=\"f_List1\" style=\"display:inline-block;width:1.6875rem;margin-left:-1.6875rem\">10.<\/span><span class=\"f_List1\">Configure your load balancing hardware or software to route traffic to the cluster as discussed above.<\/span><\/p>\n\r<p class=\"p_BodyText\"><\/p>\n\r<p class=\"p_SeeAlso\" style=\"page-break-after: avoid; border-right: none; border-bottom: none; border-left: none;\"><span class=\"f_SeeAlso\">See:<\/span><\/p>\n\r<p class=\"p_SeeAlsoLinks\" style=\"page-break-after: avoid;\"><span class=\"f_SeeAlsoLinks\"><a href=\"cluster_options.html\" class=\"topiclink\">Cluster Service | Options\/Customize<\/a><\/span><\/p>\n\r<p class=\"p_SeeAlsoLinks\" style=\"page-break-after: avoid;\"><span class=\"f_SeeAlsoLinks\"><a href=\"cluster_service_network_paths.html\" class=\"topiclink\">Cluster Service | Shared Network Paths<\/a><\/span><\/p>\n\r<p class=\"p_SeeAlsoLinks\" style=\"page-break-after: avoid;\"><span class=\"f_SeeAlsoLinks\"><a href=\"cluster_service_diagnostics.html\" class=\"topiclink\">Cluster Service | Diagnostics<\/a><\/span><\/p>\n\r<p class=\"p_ControlIndent\"><span class=\"f_ControlIndent\">&nbsp;<\/span><\/p>\n\r"
})
