在使用Samba CTDB搭建群集时,推荐使用如下图所示的结构,在Samba CTDB的节点后面使用GPFSGFS2GlusterFSLustre之类的集群存储系统。在本文中假设后端的集群存储系统已搭建完成,现在开始配置Samba CTDB(参考:http://wiki.samba.org/index.php/CTDB_Setup#Clustering_Model)。
 
Debian下搭建Samba CTDB集群。_第1张图片
一、配置环境。
1、Srv5.example.zqin
²  OS:Debian 5.07
²  FQDN:srv5.exampel.zqin
²  IP:192.168.0.205
²  GW:192.168.0.1
²  DNS:202.103.24.68
2、Srv8.example.zqin
²  OS:Debian 5.07
²  FQDN:srv5.exampel.zqin
²  IP:192.168.0.208
²  GW:192.168.0.1
²  DNS:202.103.24.68
3、Srv9.example.zqin
²  OS:Debian 5.07
²  FQDN:srv5.exampel.zqin
²  IP:192.168.0.209
²  GW:192.168.0.1
²  DNS:202.103.24.68
二、配置Samba CTDB
1、在三个节点上使用如下命令安装Samba CTDB
Srv5:~# apt-get upgrade
Srv5:~# apt-get install samba ctdb
2、在三个节点的/etc/services文件中增加如下内容。
ctdb  9999/tcp
3、在三个节点在修改/etc/samba/smb.conf文件为如下内容,其中/smbcluster是后端集群存储系统的挂载点,/smbcluster/public为用户最后通过Samba访问到的目录。
[global]
clustering = yes
idmap backend = tdb2
private dir=/smbcluster/ctdb
fileid:mapping = fsname
use mmap = no
nt acl support = yes
ea support = yes
[public]
comment = public share
path = /smbcluster/public
public = yes
writeable = yes
4、在三个节点在修改/etc/default/ctdb文件的如下内容。
CTDB_RECOVERY_LOCK="/smbcluster/ctdb/lock"
CTDB_PUBLIC_INTERFACE=eth0
CTDB_PUBLIC_ADDRESSES=/etc/ctdb/public_addresses
CTDB_MANAGES_SAMBA=yes
ulimit -n 10000
CTDB_NODES=/etc/ctdb/nodes
CTDB_LOGFILE=/var/log/ctdb.log
CTDB_DEBUGLEVEL=2
CTDB_PUBLIC_NETWORK="192.168.0.0/24"
CTDB_PUBLIC_GATEWAY="192.168.0.1"
5、在三个节点在修改/etc/ctdb/public_addresses文件中增加如下内容,该文件记录Samba CTDB集群提供给客户访问的虚拟IP地址。
192.168.0.10/24
192.168.0.11/24
192.168.0.12/24
6、在三个节点上修改/etc/ctdb/nodes文件中增加如下内容,该文件记录Samba CTDB集群节点的IP地址。
192.168.0.205
192.168.0.208
192.168.0.209
7、在三个节点上修改/etc/ctdb/events.d/11.route文件中增加如下内容。
#!/bin/sh
. /etc/ctdb/functions
loadconfig ctdb
cmd="$1"
shift
case $cmd in
takeip)
# we ignore errors from this, as the route might be up already when we're grabbing
# a 2nd IP on this interface
/sbin/ip route add $CTDB_PUBLIC_NETWORK via $CTDB_PUBLIC_GATEWAY dev $1 2> /dev/null
;;
esac
exit 0
8、在三个节点上执行如下命令。
Srv5:~# chmod +x /etc/ctdb/events.d/11.route
Srv5:~# /etc/init.d/ctdb restart
Srv5:~# /etc/init.d/samba restart
9、可以通过以下命令查看Samba CTDB集群的情况。
Srv5:~# ctdb status
Number of nodes:3
pnn:0 192.168.0.205    OK
pnn:1 192.168.0.208    OK (THIS NODE)
pnn:2 192.168.0.209    OK
Generation:1228536155
Size:3
hash:0 lmaster:0
hash:1 lmaster:1
hash:2 lmaster:2
Recovery mode:NORMAL (0)
Recovery master:1
 
Srv5:~# ctdb ip
Public IPs on node 1
192.168.0.10 0
192.168.0.11 0
192.168.0.12 2
完成上述步骤后,Samba CTDB集群就搭建完成了,客户端可以通过在/etc/ctdb/public_addresses文件中记录的IP地址进行访问。