summaryrefslogtreecommitdiffstats
path: root/ctdb/web/samba.html
blob: 4a0b32e989389bf048d0188a9061872c2eb2a0fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>Setting up clustered samba</TITLE>
</HEAD>
<!--#include virtual="header.html" -->

<h1>Setting up clustered samba</h1>

It is assumed tou have already installed the ctdb version of samba and also installed, configured and tested CTDB.

<h2>Create a user account</h2>

First you need to initialise the Samba password database so that you have some user that can authenticate to the samba service.<br>
Do this by running:
<pre>
  smbpasswd -a root
</pre>

Samba with clustering must use the tdbsam or ldap SAM passdb backends (it must not use the default smbpasswd backend), or must be configured to be a member of a domain.<br>
The rest of the configuration of Samba is exactly as it is done on a normal system.<br><br>
See the docs on http://samba.org/ for details.

<h2>Critical smb.conf parameters</h2>

A clustered Samba install must set some specific configuration parameters
<pre>
  clustering = yes
  idmap backend = tdb2
  private dir = /a/directory/on/your/cluster/filesystem
</pre>

It is vital that the private directory is on shared storage. 

<h2>Using smbcontrol</h2>

You can check for connectivity to the smbd daemons on each node using smbcontrol
<pre>
  smbcontrol smbd ping
</pre>

<h2>Using Samba4 smbtorture</h2>

The Samba4 version of smbtorture has several tests that can be used to benchmark a CIFS cluster.<br>
You can download Samba4 like this:
<pre>
  svn co svn://svnanon.samba.org/samba/branches/SAMBA_4_0
</pre>
Then configure and compile it as usual.<br>
The particular tests that are helpful for cluster benchmarking are the RAW-BENCH-OPEN, RAW-BENCH-LOCK and BENCH-NBENCH tests.<br>
These tests take a unclist that allows you to spread the workload out over more than one node. For example:

<pre>
  smbtorture //localhost/data -Uuser%password  RAW-BENCH-LOCK --unclist=unclist.txt --num-progs=32 -t60
</pre>

The file unclist.txt should contain a list of server names in your cluster prefixed by //. For example
<pre>
 //192.168.1.1
 //192.168.1.2
 //192.168.2.1
 //192.168.2.2
</pre>

For NBENCH testing you need a client.txt file.<br>
A suitable file can be found in the dbench distribution at http://samba.org/ftp/tridge/dbench/


<h3>CTDB_MANAGES_SAMBA</h3>
This is a parameter in /etc/sysconfig/ctdb<br><br>
When this parameter is set to "yes" CTDB will start/stop/restart the localo samba daemon as the cluster configuration changes.<br><br>
When this parameter is set you should also make sure that samba is NOT started by default by the linux system when it boots:
<pre>
  chkconfig samba off
</pre>

Example:
<pre>
  CTDB_MANAGES_SAMBA="yes"
</pre>

It is strongly recommended that you set this parameter to "yes" if you intend to use clustered samba.

<!--#include virtual="footer.html" -->