Configuring clustered Samba

From SambaWiki
Revision as of 08:17, 27 April 2007 by AndrewTridgell (talk | contribs)

Setting up a simple CTDB Samba cluster

As of April 2007 you can setup a simple Samba3 or Samba4 CTDB cluster, running either on loopback (with simulated nodes) or on a real cluster with TCP. This page will tell you how to get started.

Getting the code

You need two source trees, one is a copy of Samba3 with clustering patches, and the other is the ctdb code itself. Both source trees are stored in bzr repositories. See http://bazaar-vcs.org/ for more information on bzr.

The fastest way to checkout an initial copy of the Samba3 tree with clustering patches is:

  rsync -avz samba.org::ftp/unpacked/samba_3_0_ctdb .

To update this tree when improvements are made in the upstream code do this:

   cd samba_3_0_ctdb
   bzr merge http://samba.org/~tridge/samba_3_0_ctdb

To get an initial checkout of the ctdb code do this:

  rsync -avz samba.org::ftp/unpacked/ctdb .

To update this tree when improvements are made in the upstream code do this:

   cd ctdb
   bzr merge http://samba.org/~tridge/ctdb

Building the Samba3 tree

To build a copy of Samba3 with clustering and ctdb support you should do this:

   cd samba_3_0_ctdb/source
   ./autogen.sh
   ./configure --prefix=/gpfs0/samba/prefix --with-ctdb=/usr/src/ctdb --with-cluster-support --enable-pie=no
   make proto
   make

You should replace the /gpfs0/samba/prefix path with the cluster shared storage path you will use to install Samba. The path should to be a directory that is the same on all nodes of the cluster. If you are setting up a virtual cluster on loopback then this can be any local directory.

The /usr/src/ctdb path should be replaced with the path to the ctdb sources that you downloaded above

Building the CTDB tree

To build a copy of the CTDB code you should do this:

  cd ctdb
  ./autogen.sh
  ./configure
  make

Installing Samba3

To install Samba3 you should do this:

 cd samba_3_0_ctdb/source
 make install

Then you need to configure an appropriate smb.conf. There is a very simple example in samba_3_0_ctdb/examples/ctdb. You need to put this smb.conf in the lib/ subdirectory of the prefix you chose above.

Next you need to initialise the Samba password database. Something like

 smbpasswd -a root

will do that. Samba with clustering must use the tdbsam or ldap SAM passdb backends (it must not use the default smbpasswd backend). The rest of the configuration of Samba is exactly as it is done on a normal system. See the docs on http://samba.org/ for details.