在使用Samba CTDB搭建羣集時,推薦使用如下圖所示的結構,在Samba CTDB的節點後面使用GPFS、GFS2、GlusterFS、Lustre之類的集羣存儲系統。在本文中假設後端的集羣存儲系統已搭建完成,現在開始配置Samba CTDB(參考:http://wiki.samba.org/index.php/CTDB_Setup#Clustering_Model)。
一、配置環境。
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。
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地址進行訪問。