~ubuntu-branches/ubuntu/lucid/samba/lucid-proposed

« back to all changes in this revision

Viewing changes to docs/htmldocs/Samba-HOWTO-Collection/SambaHA.html

  • Committer: Bazaar Package Importer
  • Author(s): Adam Conrad
  • Date: 2005-07-21 17:53:23 UTC
  • mfrom: (0.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20050721175323-m3oh6aoigywohfnq
Tags: 3.0.14a-6ubuntu1
Resynchronise with Debian, resolving merge conflicts (#12360)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter�29.�High Availability</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.64.1"><link rel="home" href="index.html" title="The Official Samba-3 HOWTO and Reference Guide"><link rel="up" href="optional.html" title="Part�III.�Advanced Configuration"><link rel="previous" href="Backup.html" title="Chapter�28.�Backup Techniques"><link rel="next" href="migration.html" title="Part�IV.�Migration and Updating"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter�29.�High Availability</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="Backup.html">Prev</a>�</td><th width="60%" align="center">Part�III.�Advanced Configuration</th><td width="20%" align="right">�<a accesskey="n" href="migration.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="SambaHA"></a>Chapter�29.�High Availability</h2></div><div><div class="author"><h3 class="author"><span class="firstname">John</span> <span class="othername">H.</span> <span class="surname">Terpstra</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><tt class="email">&lt;<a href="mailto:jht@samba.org">jht@samba.org</a>&gt;</tt></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Jeremy</span> <span class="surname">Allison</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><tt class="email">&lt;<a href="mailto:jra@samba.org">jra@samba.org</a>&gt;</tt></p></div></div></div></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="SambaHA.html#id2588793">Features and Benefits</a></span></dt><dt><span class="sect1"><a href="SambaHA.html#id2588851">Technical Discussion</a></span></dt><dd><dl><dt><span class="sect2"><a href="SambaHA.html#id2588865">The Ultimate Goal</a></span></dt><dt><span class="sect2"><a href="SambaHA.html#id2588945">Why Is This So Hard?</a></span></dt><dt><span class="sect2"><a href="SambaHA.html#id2589320">A Simple Solution</a></span></dt><dt><span class="sect2"><a href="SambaHA.html#id2589359">High Availability Server Products</a></span></dt><dt><span class="sect2"><a href="SambaHA.html#id2589416">MS-DFS: The Poor Man's Cluster</a></span></dt><dt><span class="sect2"><a href="SambaHA.html#id2589453">Conclusions</a></span></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2588793"></a>Features and Benefits</h2></div></div><div></div></div><p>
 
1
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter�30.�High Availability</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.66.1"><link rel="start" href="index.html" title="The Official Samba-3 HOWTO and Reference Guide"><link rel="up" href="optional.html" title="Part�III.�Advanced Configuration"><link rel="prev" href="Backup.html" title="Chapter�29.�Backup Techniques"><link rel="next" href="largefile.html" title="Chapter�31.�Handling Large Directories"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter�30.�High Availability</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="Backup.html">Prev</a>�</td><th width="60%" align="center">Part�III.�Advanced Configuration</th><td width="20%" align="right">�<a accesskey="n" href="largefile.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="SambaHA"></a>Chapter�30.�High Availability</h2></div><div><div class="author"><h3 class="author"><span class="firstname">John</span> <span class="othername">H.</span> <span class="surname">Terpstra</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><tt class="email">&lt;<a href="mailto:jht@samba.org">jht@samba.org</a>&gt;</tt></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Jeremy</span> <span class="surname">Allison</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><tt class="email">&lt;<a href="mailto:jra@samba.org">jra@samba.org</a>&gt;</tt></p></div></div></div></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="SambaHA.html#id2609910">Features and Benefits</a></span></dt><dt><span class="sect1"><a href="SambaHA.html#id2609962">Technical Discussion</a></span></dt><dd><dl><dt><span class="sect2"><a href="SambaHA.html#id2609976">The Ultimate Goal</a></span></dt><dt><span class="sect2"><a href="SambaHA.html#id2610056">Why Is This So Hard?</a></span></dt><dt><span class="sect2"><a href="SambaHA.html#id2610430">A Simple Solution</a></span></dt><dt><span class="sect2"><a href="SambaHA.html#id2610469">High Availability Server Products</a></span></dt><dt><span class="sect2"><a href="SambaHA.html#id2610526">MS-DFS: The Poor Man's Cluster</a></span></dt><dt><span class="sect2"><a href="SambaHA.html#id2610563">Conclusions</a></span></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2609910"></a>Features and Benefits</h2></div></div></div><p>
2
2
Network administrators are often concerned about the availability of file and print
3
3
services. Network users are inclined toward intolerance of the services they depend
4
4
on to perform vital task responsibilities.
22
22
rise to the challenge of providing a detailed document that is focused purely on
23
23
presentation of the current state of knowledge and practice in high availability as it
24
24
applies to the deployment of Samba and other CIFS/SMB technologies.
25
 
</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2588851"></a>Technical Discussion</h2></div></div><div></div></div><p>
 
25
</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2609962"></a>Technical Discussion</h2></div></div></div><p>
26
26
The following summary was part of a presentation by Jeremy Allison at the SambaXP 2003
27
27
conference that was held at Goettingen, Germany, in April 2003. Material has been added
28
28
from other sources, but it was Jeremy who inspired the structure that follows.
29
 
</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2588865"></a>The Ultimate Goal</h3></div></div><div></div></div><p>
 
29
</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2609976"></a>The Ultimate Goal</h3></div></div></div><p>
30
30
        All clustering technologies aim to achieve one or more of the following:
31
31
        </p><div class="itemizedlist"><ul type="disc"><li><p>Obtain the maximum affordable computational power.</p></li><li><p>Obtain faster program execution.</p></li><li><p>Deliver unstoppable services.</p></li><li><p>Avert points of failure.</p></li><li><p>Exact most effective utilization of resources.</p></li></ul></div><p>
32
32
        A clustered file server ideally has the following properties:
33
 
        </p><div class="itemizedlist"><ul type="disc"><li><p>All clients can connect transparently to any server.</p></li><li><p>A server can fail and clients are transparently reconnected to another server.</p></li><li><p>All servers server out the same set of files.</p></li><li><p>All file changes are immediately seen on all servers.</p><div class="itemizedlist"><ul type="circle"><li><p>Requires a distributed file system.</p></li></ul></div></li><li><p>Infinite ability to scale by adding more servers or disks.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2588945"></a>Why Is This So Hard?</h3></div></div><div></div></div><p>
 
33
        </p><div class="itemizedlist"><ul type="disc"><li><p>All clients can connect transparently to any server.</p></li><li><p>A server can fail and clients are transparently reconnected to another server.</p></li><li><p>All servers server out the same set of files.</p></li><li><p>All file changes are immediately seen on all servers.</p><div class="itemizedlist"><ul type="circle"><li><p>Requires a distributed file system.</p></li></ul></div></li><li><p>Infinite ability to scale by adding more servers or disks.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2610056"></a>Why Is This So Hard?</h3></div></div></div><p>
34
34
        In short, the problem is one of <span class="emphasis"><em>state</em></span>.
35
35
        </p><div class="itemizedlist"><ul type="disc"><li><p>
36
36
                        All TCP/IP connections are dependent on state information.
52
52
                        Servers keep state information about client connections.
53
53
                        </p><div class="itemizedlist"><ul type="circle"><li><p>CIFS/SMB involves a lot of state.</p></li><li><p>Every file open must be compared with other file opens
54
54
                                                to check share modes.</p></li></ul></div><p>
55
 
                        </p></li></ul></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2589023"></a>The Front-End Challenge</h4></div></div><div></div></div><p>
 
55
                        </p></li></ul></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2610134"></a>The Front-End Challenge</h4></div></div></div><p>
56
56
                To make it possible for a cluster of file servers to appear as a single server that has one
57
57
                name and one IP address, the incoming TCP data streams from clients must be processed by the
58
58
                front end virtual server. This server must de-multiplex the incoming packets at the SMB protocol
64
64
                </p><p>
65
65
                Conceptually speaking, all other servers would then provide only file services. This is a simpler
66
66
                problem to concentrate on.
67
 
                </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2589056"></a>De-multiplexing SMB Requests</h4></div></div><div></div></div><p>
 
67
                </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2610167"></a>De-multiplexing SMB Requests</h4></div></div></div><p>
68
68
                De-multiplexing of SMB requests requires knowledge of SMB state information,
69
69
                all of which must be held by the front-end <span class="emphasis"><em>virtual</em></span> server.
70
70
                This is a perplexing and complicated problem to solve.
80
80
                </p><p>
81
81
                One possibility is to start by exposing the server pool to clients directly.
82
82
                This could eliminate the de-multiplexing step.
83
 
                </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2589093"></a>The Distributed File System Challenge</h4></div></div><div></div></div><p>
84
 
<a class="indexterm" name="id2589101"></a>
 
83
                </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2610203"></a>The Distributed File System Challenge</h4></div></div></div><p>
 
84
<a class="indexterm" name="id2610211"></a>
85
85
                There exists many distributed file systems for UNIX and Linux.
86
86
                </p><p>
87
87
                Many could be adopted to backend our cluster, so long as awareness of SMB
88
88
                semantics is kept in mind (share modes, locking and oplock issues in particular).
89
89
                Common free distributed file systems include:
90
 
<a class="indexterm" name="id2589116"></a>
91
 
<a class="indexterm" name="id2589123"></a>
92
 
<a class="indexterm" name="id2589130"></a>
93
 
<a class="indexterm" name="id2589136"></a>
 
90
<a class="indexterm" name="id2610227"></a>
 
91
<a class="indexterm" name="id2610234"></a>
 
92
<a class="indexterm" name="id2610240"></a>
 
93
<a class="indexterm" name="id2610247"></a>
94
94
                </p><div class="itemizedlist"><ul type="disc"><li><p>NFS</p></li><li><p>AFS</p></li><li><p>OpenGFS</p></li><li><p>Lustre</p></li></ul></div><p>
95
95
                The server pool (cluster) can use any distributed file system backend if all SMB
96
96
                semantics are performed within this pool.
97
 
                </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2589172"></a>Restrictive Constraints on Distributed File Systems</h4></div></div><div></div></div><p>
 
97
                </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2610282"></a>Restrictive Constraints on Distributed File Systems</h4></div></div></div><p>
98
98
                Where a clustered server provides purely SMB services, oplock handling
99
99
                may be done within the server pool without imposing a need for this to
100
100
                be passed to the backend file system pool.
106
106
                sorely noted by users of Microsoft Windows clients.
107
107
                </p><p>
108
108
                Last, all state information must be shared across the server pool.
109
 
                </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2589200"></a>Server Pool Communications</h4></div></div><div></div></div><p>
 
109
                </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2610310"></a>Server Pool Communications</h4></div></div></div><p>
110
110
                Most backend file systems support POSIX file semantics. This makes it difficult
111
111
                to push SMB semantics back into the file system. POSIX locks have different properties
112
112
                and semantics from SMB locks.
114
114
                All <span><b class="command">smbd</b></span> processes in the server pool must of necessity communicate
115
115
                very quickly. For this, the current <i class="parameter"><tt>tdb</tt></i> file structure that Samba
116
116
                uses is not suitable for use across a network. Clustered <span><b class="command">smbd</b></span>'s must use something else.
117
 
                </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2589238"></a>Server Pool Communications Demands</h4></div></div><div></div></div><p>
 
117
                </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2610349"></a>Server Pool Communications Demands</h4></div></div></div><p>
118
118
                High speed inter-server communications in the server pool is a design prerequisite
119
119
                for a fully functional system. Possibilities for this include:
120
120
                </p><div class="itemizedlist"><ul type="disc"><li><p>
127
127
                        </p></li></ul></div><p>
128
128
                We have yet to identify metrics for  performance demands to enable this to happen
129
129
                effectively.
130
 
                </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2589277"></a>Required Modifications to Samba</h4></div></div><div></div></div><p>
 
130
                </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2610387"></a>Required Modifications to Samba</h4></div></div></div><p>
131
131
                Samba needs to be significantly modified to work with a high-speed server inter-connect
132
132
                system to permit transparent fail-over clustering.
133
133
                </p><p>
143
143
                        </p></li><li><p>
144
144
                        Should this be implemented using a point-to-point lock manager, or can this
145
145
                        be done using multicast techniques?
146
 
                        </p></li></ul></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2589320"></a>A Simple Solution</h3></div></div><div></div></div><p>
 
146
                        </p></li></ul></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2610430"></a>A Simple Solution</h3></div></div></div><p>
147
147
        Allowing fail-over servers to handle different functions within the exported file system
148
148
        removes the problem of requiring a distributed locking protocol.
149
149
        </p><p>
155
155
        </p><p>
156
156
        The <span class="emphasis"><em>virtual server</em></span> is still needed to redirect requests to backend
157
157
        servers. Backend file space integrity is the responsibility of the administrator.
158
 
        </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2589359"></a>High Availability Server Products</h3></div></div><div></div></div><p>
 
158
        </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2610469"></a>High Availability Server Products</h3></div></div></div><p>
159
159
        Fail-over servers must communicate in order to handle resource fail-over. This is essential
160
160
        for high availability services. The use of a dedicated heartbeat is a common technique to
161
161
        introduce some intelligence into the fail-over process. This is often done over a dedicated
162
162
        link (LAN or serial).
163
163
        </p><p>
164
 
<a class="indexterm" name="id2589375"></a>
 
164
<a class="indexterm" name="id2610486"></a>
165
165
        Many fail-over solutions (like Red Hat Cluster Manager, as well as Microsoft Wolfpack)
166
166
        can use a shared SCSI of Fiber Channel disk storage array for fail-over communication.
167
167
        Information regarding Red Hat high availability solutions for Samba may be obtained from:
174
174
        Front-end server complexity remains a challenge for high availability as it needs to deal
175
175
        gracefully with backend failures, while at the same time it needs to provide continuity of service
176
176
        to all network clients.
177
 
        </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2589416"></a>MS-DFS: The Poor Man's Cluster</h3></div></div><div></div></div><p>
178
 
<a class="indexterm" name="id2589424"></a>
179
 
<a class="indexterm" name="id2589431"></a>
 
177
        </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2610526"></a>MS-DFS: The Poor Man's Cluster</h3></div></div></div><p>
 
178
<a class="indexterm" name="id2610534"></a>
 
179
<a class="indexterm" name="id2610541"></a>
180
180
        MS-DFS links can be used to redirect clients to disparate backend servers. This pushes
181
181
        complexity back to the network client, something already included by Microsoft.
182
182
        MS-DFS creates the illusion of a simple, continuous file system name space, that even
184
184
        </p><p>
185
185
        Above all, at the cost of complexity of management, a distributed (pseudo-cluster) can
186
186
        be created using existing Samba functionality.
187
 
        </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2589453"></a>Conclusions</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Transparent SMB clustering is hard to do!</p></li><li><p>Client fail-over is the best we can do today.</p></li><li><p>Much more work is needed before a practical and manageable high
188
 
                                availability transparent cluster solution will be possible.</p></li><li><p>MS-DFS can be used to create the illusion of a single transparent cluster.</p></li></ul></div></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="Backup.html">Prev</a>�</td><td width="20%" align="center"><a accesskey="u" href="optional.html">Up</a></td><td width="40%" align="right">�<a accesskey="n" href="migration.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter�28.�Backup Techniques�</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">�Part�IV.�Migration and Updating</td></tr></table></div></body></html>
 
187
        </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2610563"></a>Conclusions</h3></div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Transparent SMB clustering is hard to do!</p></li><li><p>Client fail-over is the best we can do today.</p></li><li><p>Much more work is needed before a practical and manageable high
 
188
                                availability transparent cluster solution will be possible.</p></li><li><p>MS-DFS can be used to create the illusion of a single transparent cluster.</p></li></ul></div></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="Backup.html">Prev</a>�</td><td width="20%" align="center"><a accesskey="u" href="optional.html">Up</a></td><td width="40%" align="right">�<a accesskey="n" href="largefile.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter�29.�Backup Techniques�</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">�Chapter�31.�Handling Large Directories</td></tr></table></div></body></html>