- Timestamp:
- Jun 17, 2009, 2:19:52 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/samba-3.3.x/docs/htmldocs/Samba3-HOWTO/SambaHA.html
r218 r274 1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 32. High Availability</title><link rel="stylesheet" href="../samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.74.0"><link rel="home" href="index.html" title="The Official Samba 3. 2.x HOWTO and Reference Guide"><link rel="up" href="optional.html" title="Part III. Advanced Configuration"><link rel="prev" href="Backup.html" title="Chapter 31. Backup Techniques"><link rel="next" href="largefile.html" title="Chapter 33. 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 32. 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 32. High Availability</h2></div><div><div class="author"><h3 class="author"><span class="firstname">John</span> <span class="othername">H.</span> <span class="orgname">Samba Team</span> <span class="surname">Terpstra</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><code class="email"><<a class="email" href="mailto:jht@samba.org">jht@samba.org</a>></code></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Jeremy</span> <span class="orgname">Samba Team</span> <span class="surname">Allison</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><code class="email"><<a class="email" href="mailto:jra@samba.org">jra@samba.org</a>></code></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#id2671994">Features and Benefits</a></span></dt><dt><span class="sect1"><a href="SambaHA.html#id2672115">Technical Discussion</a></span></dt><dd><dl><dt><span class="sect2"><a href="SambaHA.html#id2672149">The Ultimate Goal</a></span></dt><dt><span class="sect2"><a href="SambaHA.html#id2672279">Why Is This So Hard?</a></span></dt><dt><span class="sect2"><a href="SambaHA.html#id2672992">A Simple Solution</a></span></dt><dt><span class="sect2"><a href="SambaHA.html#id2673073">High-Availability Server Products</a></span></dt><dt><span class="sect2"><a href="SambaHA.html#id2673213">MS-DFS: The Poor Man's Cluster</a></span></dt><dt><span class="sect2"><a href="SambaHA.html#id2673250">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="id2671994"></a>Features and Benefits</h2></div></div></div><p>2 <a class="indexterm" name="id26720 02"></a>3 <a class="indexterm" name="id26720 09"></a>4 <a class="indexterm" name="id26720 16"></a>1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 32. High Availability</title><link rel="stylesheet" href="../samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.74.0"><link rel="home" href="index.html" title="The Official Samba 3.3.x HOWTO and Reference Guide"><link rel="up" href="optional.html" title="Part III. Advanced Configuration"><link rel="prev" href="Backup.html" title="Chapter 31. Backup Techniques"><link rel="next" href="largefile.html" title="Chapter 33. 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 32. 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 32. High Availability</h2></div><div><div class="author"><h3 class="author"><span class="firstname">John</span> <span class="othername">H.</span> <span class="orgname">Samba Team</span> <span class="surname">Terpstra</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><code class="email"><<a class="email" href="mailto:jht@samba.org">jht@samba.org</a>></code></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Jeremy</span> <span class="orgname">Samba Team</span> <span class="surname">Allison</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><code class="email"><<a class="email" href="mailto:jra@samba.org">jra@samba.org</a>></code></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#id2672032">Features and Benefits</a></span></dt><dt><span class="sect1"><a href="SambaHA.html#id2672152">Technical Discussion</a></span></dt><dd><dl><dt><span class="sect2"><a href="SambaHA.html#id2672186">The Ultimate Goal</a></span></dt><dt><span class="sect2"><a href="SambaHA.html#id2672316">Why Is This So Hard?</a></span></dt><dt><span class="sect2"><a href="SambaHA.html#id2673029">A Simple Solution</a></span></dt><dt><span class="sect2"><a href="SambaHA.html#id2673110">High-Availability Server Products</a></span></dt><dt><span class="sect2"><a href="SambaHA.html#id2673250">MS-DFS: The Poor Man's Cluster</a></span></dt><dt><span class="sect2"><a href="SambaHA.html#id2673287">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="id2672032"></a>Features and Benefits</h2></div></div></div><p> 2 <a class="indexterm" name="id2672040"></a> 3 <a class="indexterm" name="id2672047"></a> 4 <a class="indexterm" name="id2672053"></a> 5 5 Network administrators are often concerned about the availability of file and print 6 6 services. Network users are inclined toward intolerance of the services they depend … … 9 9 A sign in a computer room served to remind staff of their responsibilities. It read: 10 10 </p><div class="blockquote"><blockquote class="blockquote"><p> 11 <a class="indexterm" name="id26720 37"></a>12 <a class="indexterm" name="id26720 44"></a>13 <a class="indexterm" name="id26720 51"></a>14 <a class="indexterm" name="id26720 58"></a>11 <a class="indexterm" name="id2672074"></a> 12 <a class="indexterm" name="id2672081"></a> 13 <a class="indexterm" name="id2672088"></a> 14 <a class="indexterm" name="id2672095"></a> 15 15 All humans fail, in both great and small ways we fail continually. Machines fail too. 16 16 Computers are machines that are managed by humans, the fallout from failure … … 22 22 understand the problem. That is the purpose of this chapter. 23 23 </p><p> 24 <a class="indexterm" name="id2672 081"></a>25 <a class="indexterm" name="id2672 088"></a>26 <a class="indexterm" name="id2672 095"></a>24 <a class="indexterm" name="id2672118"></a> 25 <a class="indexterm" name="id2672125"></a> 26 <a class="indexterm" name="id2672132"></a> 27 27 Parenthetically, in the following discussion there are seeds of information on how to 28 28 provision a network infrastructure against failure. Our purpose here is not to provide … … 33 33 presentation of the current state of knowledge and practice in high availability as it 34 34 applies to the deployment of Samba and other CIFS/SMB technologies. 35 </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id26721 15"></a>Technical Discussion</h2></div></div></div><p>36 <a class="indexterm" name="id26721 23"></a>37 <a class="indexterm" name="id26721 30"></a>38 <a class="indexterm" name="id26721 37"></a>35 </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2672152"></a>Technical Discussion</h2></div></div></div><p> 36 <a class="indexterm" name="id2672160"></a> 37 <a class="indexterm" name="id2672167"></a> 38 <a class="indexterm" name="id2672174"></a> 39 39 The following summary was part of a presentation by Jeremy Allison at the SambaXP 2003 40 40 conference that was held at Goettingen, Germany, in April 2003. Material has been added 41 41 from other sources, but it was Jeremy who inspired the structure that follows. 42 </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id26721 49"></a>The Ultimate Goal</h3></div></div></div><p>43 <a class="indexterm" name="id26721 57"></a>44 <a class="indexterm" name="id2672 164"></a>45 <a class="indexterm" name="id2672 171"></a>42 </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2672186"></a>The Ultimate Goal</h3></div></div></div><p> 43 <a class="indexterm" name="id2672194"></a> 44 <a class="indexterm" name="id2672201"></a> 45 <a class="indexterm" name="id2672208"></a> 46 46 All clustering technologies aim to achieve one or more of the following: 47 47 </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> 48 48 A clustered file server ideally has the following properties: 49 <a class="indexterm" name="id26722 12"></a>50 <a class="indexterm" name="id26722 19"></a>51 <a class="indexterm" name="id26722 26"></a>52 <a class="indexterm" name="id26722 34"></a>53 </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 serve 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="id2672 279"></a>Why Is This So Hard?</h3></div></div></div><p>49 <a class="indexterm" name="id2672250"></a> 50 <a class="indexterm" name="id2672257"></a> 51 <a class="indexterm" name="id2672264"></a> 52 <a class="indexterm" name="id2672271"></a> 53 </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 serve 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="id2672316"></a>Why Is This So Hard?</h3></div></div></div><p> 54 54 In short, the problem is one of <span class="emphasis"><em>state</em></span>. 55 55 </p><div class="itemizedlist"><ul type="disc"><li><p> 56 <a class="indexterm" name="id2672 298"></a>56 <a class="indexterm" name="id2672336"></a> 57 57 All TCP/IP connections are dependent on state information. 58 58 </p><p> 59 <a class="indexterm" name="id26723 10"></a>59 <a class="indexterm" name="id2672347"></a> 60 60 The TCP connection involves a packet sequence number. This 61 61 sequence number would need to be dynamically updated on all 62 62 machines in the cluster to effect seamless TCP failover. 63 63 </p></li><li><p> 64 <a class="indexterm" name="id26723 26"></a>65 <a class="indexterm" name="id26723 33"></a>64 <a class="indexterm" name="id2672364"></a> 65 <a class="indexterm" name="id2672370"></a> 66 66 CIFS/SMB (the Windows networking protocols) uses TCP connections. 67 67 </p><p> … … 72 72 they rely on the clients to reconnect. They provide server 73 73 failover, but clients can lose information due to a server failure. 74 <a class="indexterm" name="id26723 58"></a>74 <a class="indexterm" name="id2672395"></a> 75 75 </p></li></ul></div><p> 76 76 </p></li><li><p> 77 77 Servers keep state information about client connections. 78 </p><div class="itemizedlist"><a class="indexterm" name="id2672 376"></a><ul type="circle"><li><p>CIFS/SMB involves a lot of state.</p></li><li><p>Every file open must be compared with other open files78 </p><div class="itemizedlist"><a class="indexterm" name="id2672413"></a><ul type="circle"><li><p>CIFS/SMB involves a lot of state.</p></li><li><p>Every file open must be compared with other open files 79 79 to check share modes.</p></li></ul></div><p> 80 </p></li></ul></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2672 398"></a>The Front-End Challenge</h4></div></div></div><p>81 <a class="indexterm" name="id26724 06"></a>82 <a class="indexterm" name="id26724 13"></a>83 <a class="indexterm" name="id26724 20"></a>84 <a class="indexterm" name="id26724 27"></a>85 <a class="indexterm" name="id26724 34"></a>86 <a class="indexterm" name="id26724 41"></a>87 <a class="indexterm" name="id26724 48"></a>80 </p></li></ul></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2672435"></a>The Front-End Challenge</h4></div></div></div><p> 81 <a class="indexterm" name="id2672443"></a> 82 <a class="indexterm" name="id2672450"></a> 83 <a class="indexterm" name="id2672457"></a> 84 <a class="indexterm" name="id2672464"></a> 85 <a class="indexterm" name="id2672471"></a> 86 <a class="indexterm" name="id2672478"></a> 87 <a class="indexterm" name="id2672485"></a> 88 88 To make it possible for a cluster of file servers to appear as a single server that has one 89 89 name and one IP address, the incoming TCP data streams from clients must be processed by the … … 91 91 layer level and then feed the SMB packet to different servers in the cluster. 92 92 </p><p> 93 <a class="indexterm" name="id2672 464"></a>94 <a class="indexterm" name="id2672 470"></a>93 <a class="indexterm" name="id2672501"></a> 94 <a class="indexterm" name="id2672508"></a> 95 95 One could split all IPC$ connections and RPC calls to one server to handle printing and user 96 96 lookup requirements. RPC printing handles are shared between different IPC4 sessions it is … … 99 99 Conceptually speaking, all other servers would then provide only file services. This is a simpler 100 100 problem to concentrate on. 101 </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2672 492"></a>Demultiplexing SMB Requests</h4></div></div></div><p>102 <a class="indexterm" name="id26725 00"></a>103 <a class="indexterm" name="id26725 07"></a>104 <a class="indexterm" name="id26725 14"></a>105 <a class="indexterm" name="id26725 21"></a>101 </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2672530"></a>Demultiplexing SMB Requests</h4></div></div></div><p> 102 <a class="indexterm" name="id2672537"></a> 103 <a class="indexterm" name="id2672544"></a> 104 <a class="indexterm" name="id2672551"></a> 105 <a class="indexterm" name="id2672558"></a> 106 106 De-multiplexing of SMB requests requires knowledge of SMB state information, 107 107 all of which must be held by the front-end <span class="emphasis"><em>virtual</em></span> server. 108 108 This is a perplexing and complicated problem to solve. 109 109 </p><p> 110 <a class="indexterm" name="id26725 38"></a>111 <a class="indexterm" name="id26725 45"></a>112 <a class="indexterm" name="id26725 51"></a>110 <a class="indexterm" name="id2672575"></a> 111 <a class="indexterm" name="id2672582"></a> 112 <a class="indexterm" name="id2672589"></a> 113 113 Windows XP and later have changed semantics so state information (vuid, tid, fid) 114 114 must match for a successful operation. This makes things simpler than before and is a 115 115 positive step forward. 116 116 </p><p> 117 <a class="indexterm" name="id2672 565"></a>118 <a class="indexterm" name="id2672 572"></a>117 <a class="indexterm" name="id2672602"></a> 118 <a class="indexterm" name="id2672609"></a> 119 119 SMB requests are sent by vuid to their associated server. No code exists today to 120 120 effect this solution. This problem is conceptually similar to the problem of … … 122 122 Terminal Server in Samba. 123 123 </p><p> 124 <a class="indexterm" name="id2672 587"></a>124 <a class="indexterm" name="id2672624"></a> 125 125 One possibility is to start by exposing the server pool to clients directly. 126 126 This could eliminate the de-multiplexing step. 127 </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2672 598"></a>The Distributed File System Challenge</h4></div></div></div><p>128 <a class="indexterm" name="id26726 06"></a>127 </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2672635"></a>The Distributed File System Challenge</h4></div></div></div><p> 128 <a class="indexterm" name="id2672643"></a> 129 129 There exists many distributed file systems for UNIX and Linux. 130 130 </p><p> 131 <a class="indexterm" name="id26726 18"></a>132 <a class="indexterm" name="id26726 25"></a>133 <a class="indexterm" name="id26726 32"></a>134 <a class="indexterm" name="id26726 38"></a>135 <a class="indexterm" name="id26726 45"></a>136 <a class="indexterm" name="id26726 52"></a>131 <a class="indexterm" name="id2672655"></a> 132 <a class="indexterm" name="id2672662"></a> 133 <a class="indexterm" name="id2672669"></a> 134 <a class="indexterm" name="id2672676"></a> 135 <a class="indexterm" name="id2672682"></a> 136 <a class="indexterm" name="id2672689"></a> 137 137 Many could be adopted to backend our cluster, so long as awareness of SMB 138 138 semantics is kept in mind (share modes, locking, and oplock issues in particular). 139 139 Common free distributed file systems include: 140 <a class="indexterm" name="id2672 663"></a>141 <a class="indexterm" name="id2672 669"></a>142 <a class="indexterm" name="id2672 676"></a>143 <a class="indexterm" name="id2672 683"></a>140 <a class="indexterm" name="id2672700"></a> 141 <a class="indexterm" name="id2672706"></a> 142 <a class="indexterm" name="id2672713"></a> 143 <a class="indexterm" name="id2672720"></a> 144 144 </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> 145 <a class="indexterm" name="id26727 14"></a>145 <a class="indexterm" name="id2672751"></a> 146 146 The server pool (cluster) can use any distributed file system backend if all SMB 147 147 semantics are performed within this pool. 148 </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id26727 25"></a>Restrictive Constraints on Distributed File Systems</h4></div></div></div><p>149 <a class="indexterm" name="id26727 33"></a>150 <a class="indexterm" name="id26727 40"></a>151 <a class="indexterm" name="id26727 47"></a>152 <a class="indexterm" name="id26727 54"></a>148 </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2672762"></a>Restrictive Constraints on Distributed File Systems</h4></div></div></div><p> 149 <a class="indexterm" name="id2672770"></a> 150 <a class="indexterm" name="id2672777"></a> 151 <a class="indexterm" name="id2672784"></a> 152 <a class="indexterm" name="id2672791"></a> 153 153 Where a clustered server provides purely SMB services, oplock handling 154 154 may be done within the server pool without imposing a need for this to 155 155 be passed to the backend file system pool. 156 156 </p><p> 157 <a class="indexterm" name="id2672 768"></a>158 <a class="indexterm" name="id2672 774"></a>157 <a class="indexterm" name="id2672805"></a> 158 <a class="indexterm" name="id2672811"></a> 159 159 On the other hand, where the server pool also provides NFS or other file services, 160 160 it will be essential that the implementation be oplock-aware so it can … … 164 164 </p><p> 165 165 Last, all state information must be shared across the server pool. 166 </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2672 794"></a>Server Pool Communications</h4></div></div></div><p>167 <a class="indexterm" name="id26728 02"></a>168 <a class="indexterm" name="id26728 09"></a>169 <a class="indexterm" name="id26728 16"></a>170 <a class="indexterm" name="id26728 23"></a>166 </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2672832"></a>Server Pool Communications</h4></div></div></div><p> 167 <a class="indexterm" name="id2672840"></a> 168 <a class="indexterm" name="id2672846"></a> 169 <a class="indexterm" name="id2672853"></a> 170 <a class="indexterm" name="id2672860"></a> 171 171 Most backend file systems support POSIX file semantics. This makes it difficult 172 172 to push SMB semantics back into the file system. POSIX locks have different properties 173 173 and semantics from SMB locks. 174 174 </p><p> 175 <a class="indexterm" name="id26728 36"></a>176 <a class="indexterm" name="id26728 43"></a>177 <a class="indexterm" name="id26728 50"></a>175 <a class="indexterm" name="id2672873"></a> 176 <a class="indexterm" name="id2672880"></a> 177 <a class="indexterm" name="id2672887"></a> 178 178 All <code class="literal">smbd</code> processes in the server pool must of necessity communicate 179 179 very quickly. For this, the current <em class="parameter"><code>tdb</code></em> file structure that Samba 180 180 uses is not suitable for use across a network. Clustered <code class="literal">smbd</code>s must use something else. 181 </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2672 880"></a>Server Pool Communications Demands</h4></div></div></div><p>181 </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2672917"></a>Server Pool Communications Demands</h4></div></div></div><p> 182 182 High-speed interserver communications in the server pool is a design prerequisite 183 183 for a fully functional system. Possibilities for this include: 184 </p><div class="itemizedlist"><a class="indexterm" name="id2672 894"></a><a class="indexterm" name="id2672901"></a><ul type="disc"><li><p>184 </p><div class="itemizedlist"><a class="indexterm" name="id2672931"></a><a class="indexterm" name="id2672938"></a><ul type="disc"><li><p> 185 185 Proprietary shared memory bus (example: Myrinet or SCI [scalable coherent interface]). 186 186 These are high-cost items. … … 192 192 We have yet to identify metrics for performance demands to enable this to happen 193 193 effectively. 194 </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id26729 35"></a>Required Modifications to Samba</h4></div></div></div><p>194 </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2672972"></a>Required Modifications to Samba</h4></div></div></div><p> 195 195 Samba needs to be significantly modified to work with a high-speed server interconnect 196 196 system to permit transparent failover clustering. … … 201 201 and the share mode database. 202 202 </p></li><li><p> 203 <a class="indexterm" name="id26729 62"></a>204 <a class="indexterm" name="id267 2969"></a>203 <a class="indexterm" name="id2672999"></a> 204 <a class="indexterm" name="id2673006"></a> 205 205 Failure semantics need to be defined. Samba behaves the same way as Windows. 206 206 When oplock messages fail, a file open request is allowed, but this is … … 210 210 Should this be implemented using a point-to-point lock manager, or can this 211 211 be done using multicast techniques? 212 </p></li></ul></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id267 2992"></a>A Simple Solution</h3></div></div></div><p>213 <a class="indexterm" name="id26730 00"></a>214 <a class="indexterm" name="id26730 07"></a>215 <a class="indexterm" name="id26730 14"></a>212 </p></li></ul></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2673029"></a>A Simple Solution</h3></div></div></div><p> 213 <a class="indexterm" name="id2673037"></a> 214 <a class="indexterm" name="id2673044"></a> 215 <a class="indexterm" name="id2673051"></a> 216 216 Allowing failover servers to handle different functions within the exported file system 217 217 removes the problem of requiring a distributed locking protocol. 218 218 </p><p> 219 <a class="indexterm" name="id26730 27"></a>220 <a class="indexterm" name="id26730 34"></a>219 <a class="indexterm" name="id2673064"></a> 220 <a class="indexterm" name="id2673072"></a> 221 221 If only one server is active in a pair, the need for high-speed server interconnect is avoided. 222 222 This allows the use of existing high-availability solutions, instead of inventing a new one. … … 225 225 must remember where all services are located a complexity not easily dealt with. 226 226 </p><p> 227 <a class="indexterm" name="id26730 58"></a>227 <a class="indexterm" name="id2673096"></a> 228 228 The <span class="emphasis"><em>virtual server</em></span> is still needed to redirect requests to backend 229 229 servers. Backend file space integrity is the responsibility of the administrator. 230 </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2673 073"></a>High-Availability Server Products</h3></div></div></div><p>231 <a class="indexterm" name="id2673 081"></a>232 <a class="indexterm" name="id2673 088"></a>233 <a class="indexterm" name="id2673 095"></a>234 <a class="indexterm" name="id26731 02"></a>235 <a class="indexterm" name="id26731 08"></a>230 </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2673110"></a>High-Availability Server Products</h3></div></div></div><p> 231 <a class="indexterm" name="id2673118"></a> 232 <a class="indexterm" name="id2673125"></a> 233 <a class="indexterm" name="id2673132"></a> 234 <a class="indexterm" name="id2673139"></a> 235 <a class="indexterm" name="id2673146"></a> 236 236 Failover servers must communicate in order to handle resource failover. This is essential 237 237 for high-availability services. The use of a dedicated heartbeat is a common technique to … … 239 239 link (LAN or serial). 240 240 </p><p> 241 <a class="indexterm" name="id26731 24"></a>242 <a class="indexterm" name="id26731 30"></a>243 <a class="indexterm" name="id26731 38"></a>244 <a class="indexterm" name="id26731 44"></a>245 <a class="indexterm" name="id26731 51"></a>241 <a class="indexterm" name="id2673161"></a> 242 <a class="indexterm" name="id2673168"></a> 243 <a class="indexterm" name="id2673175"></a> 244 <a class="indexterm" name="id2673182"></a> 245 <a class="indexterm" name="id2673189"></a> 246 246 Many failover solutions (like Red Hat Cluster Manager and Microsoft Wolfpack) 247 247 can use a shared SCSI of Fiber Channel disk storage array for failover communication. … … 249 249 <a class="ulink" href="http://www.redhat.com/docs/manuals/enterprise/RHEL-AS-2.1-Manual/cluster-manager/s1-service-samba.html" target="_top">www.redhat.com</a>. 250 250 </p><p> 251 <a class="indexterm" name="id2673 174"></a>251 <a class="indexterm" name="id2673211"></a> 252 252 The Linux High Availability project is a resource worthy of consultation if your desire is 253 253 to build a highly available Samba file server solution. Please consult the home page at 254 254 <a class="ulink" href="http://www.linux-ha.org/" target="_top">www.linux-ha.org/</a>. 255 255 </p><p> 256 <a class="indexterm" name="id2673 193"></a>257 <a class="indexterm" name="id26732 00"></a>256 <a class="indexterm" name="id2673230"></a> 257 <a class="indexterm" name="id2673237"></a> 258 258 Front-end server complexity remains a challenge for high availability because it must deal 259 259 gracefully with backend failures, while at the same time providing continuity of service 260 260 to all network clients. 261 </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id26732 13"></a>MS-DFS: The Poor Man's Cluster</h3></div></div></div><p>262 <a class="indexterm" name="id26732 21"></a>263 <a class="indexterm" name="id26732 28"></a>261 </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2673250"></a>MS-DFS: The Poor Man's Cluster</h3></div></div></div><p> 262 <a class="indexterm" name="id2673258"></a> 263 <a class="indexterm" name="id2673265"></a> 264 264 MS-DFS links can be used to redirect clients to disparate backend servers. This pushes 265 265 complexity back to the network client, something already included by Microsoft. … … 269 269 Above all, at the cost of complexity of management, a distributed system (pseudo-cluster) can 270 270 be created using existing Samba functionality. 271 </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id26732 50"></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 failover is the best we can do today.</p></li><li><p>Much more work is needed before a practical and manageable high-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 31. 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 33. Handling Large Directories</td></tr></table></div></body></html>271 </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2673287"></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 failover is the best we can do today.</p></li><li><p>Much more work is needed before a practical and manageable high-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 31. 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 33. Handling Large Directories</td></tr></table></div></body></html>
Note:
See TracChangeset
for help on using the changeset viewer.