Page MenuHomePhorge

redundant-server.rst
No OneTemporary

Authored By
Unknown
Size
5 KB
Referenced Files
None
Subscribers
None

redundant-server.rst

.. _deployment-redundant-servers:
=====================================
Kolab Deployment on Redundant Servers
=====================================
This deployment provides high-availability to a Kolab Groupware
deployment through redundancy of its underlying storage.
Please see either of the following sections for details on their
semantics:
* :ref:`deployment-redundant-drbd`
* :ref:`deployment-redundant-shared-storage`
* :ref:`deployment-redundant-glusterfs`
.. _deployment-redundant-drbd:
Using DRBD
==========
When used solely for redundancy, `DRBD`_ replicates the disk of a single
node to another node, implying the replica master is the active server,
while the slave remains passive. That is to say, that the replica master
**can**, while the replica slave **can not** access the data on the
replicated volume.
.. graphviz::
digraph drbd {
rankdir=LR;
subgraph cluster_master {
rankdir=TB;
style=filled;
color=lightgrey;
node [style=filled];
"OS Disk 0" [label="OS Disk",color=green];
"Data Disk 0" [label="Data Disk",color=green];
label = "Master";
}
subgraph cluster_slave {
rankdir=TB;
node [style=filled];
"OS Disk 1" [label="OS Disk",color=green];
"Data Disk 1" [label="Data Disk",color=red];
label = "Slave";
}
"Data Disk 0" -> "Data Disk 1" [label="One-Way Replication"];
}
In this scenario, the master is the active server running all Kolab
servers, while the slave is completely passive (it cannot write to the
disk being replicated). A failover would ensure the master is not
running any longer, and start the services on the slave -- which
therefore becomes the master.
In a more complex scenario, two separate volumes could be replicated in
an cross-link scenario, allowing the resources of both nodes to be used
in parallel, establishing a limited form of load-balancing.
.. graphviz::
digraph drbd {
rankdir=LR;
subgraph cluster_master {
rankdir=TB;
style=filled;
color=lightgrey;
node [style=filled];
"OS Disk 0" [label="OS Disk",color=green];
"Data Disk 0" [label="Data Disk",color=green];
"Data Disk 1" [label="Data Disk",color=red];
label = "Master";
}
subgraph cluster_slave {
rankdir=TB;
style=filled;
color=lightgrey;
node [style=filled];
"OS Disk 1" [label="OS Disk",color=green];
"Data Disk 2" [label="Data Disk",color=red];
"Data Disk 3" [label="Data Disk",color=green];
label = "Slave";
}
"Data Disk 0" -> "Data Disk 2" [label="One-Way Replication"];
"Data Disk 3" -> "Data Disk 1" [label="One-Way Replication"];
"LDAP?" -> "Data Disk 0";
"Data Disk 3" -> "IMAP?" [dir=back];
}
Using DRBD in a so-called *dual-primary* mode requires the use of a
*shared filesystem* such as *Global File System* (GFS, not to be
confused with GlusterFS).
Designing, installing, configuring and maintaining a DRBD cluster is
beyond the scope of this document, and not commonly a solution the Kolab
community supports.
For more assistence, please consider contacting a local IT solutions
provider, `Kolab Systems AG`_ or any its `Certified Partners`_.
.. _deployment-redundant-shared-storage:
Using Shared Storage
====================
Shared storage is usually external to node(s),
SAN
---
NAS
---
.. _deployment-redundant-glusterfs:
Using GlusterFS
===============
.. graphviz::
digraph glusterfs {
compound=true;
rankdir=TB;
subgraph cluster_gfs0 {
label = "GlusterFS";
rankdir=LR;
subgraph cluster_gfs1 {
label = "GlusterFS Node 1";
rankdir=TB;
"OS Disk 2" [label="OS Disk"];
"Data Disk 2" [label="Data Disk"];
"OS Disk 2" -> "Data Disk 2" [style=invis];
}
subgraph cluster_gfs2 {
label = "GlusterFS Node 2";
rankdir=TB;
"OS Disk 3" [label="OS Disk"]
"Data Disk 3" [label="Data Disk"];
"OS Disk 3" -> "Data Disk 3" [style=invis];
"Data Disk 3" -> "Data Disk 2" [dir=both];
}
{ rank=same; "OS Disk 2", "OS Disk 3" }
{ rank=same; "Data Disk 2", "Data Disk 3" }
}
subgraph cluster_kolab0 {
label = "Kolab";
rankdir=LR;
subgraph cluster_kolab1 {
label = "Kolab Server 1";
rankdir=TB;
"OS Disk 0" [label="OS Disk"];
"GFS Mount 0" [label="GFS Mount"];
"OS Disk 0" -> "GFS Mount 0" [style=invis];
}
subgraph cluster_kolab2 {
label = "Kolab Server 2";
rankdir=TB;
"OS Disk 1" [label="OS Disk"]
"GFS Mount 1" [label="GFS Mount"];
"OS Disk 1" -> "GFS Mount 1" [style=invis];
}
{ rank=same; "OS Disk 0", "OS Disk 1", "OS Disk 2", "OS Disk 3" }
{ rank=same; "GFS Mount 0", "GFS Mount 1", "Data Disk 2", "Data Disk 3" }
}
"GFS Mount 0" -> "Data Disk 3" [lhead=cluster_gfs0];
"GFS Mount 1" -> "Data Disk 2" [lhead=cluster_gfs0];
}
.. _DRBD: http://www.drbd.org/
.. _Kolab Systems AG: https://kolabsys.com
.. _Certified Partners: https://kolabsys.com/company/partners

File Metadata

Mime Type
text/plain
Expires
Fri, Apr 24, 11:01 AM (1 w, 4 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18823680
Default Alt Text
redundant-server.rst (5 KB)

Event Timeline