环境:两台ubuntu16.04主机或虚拟机,samba:4.3.11,ctdb:4.3.11,ceph客户端:10.2.9 ,ceph集群:10.2.3html
配置前准备:node
可用的ceph集群,配置了cephfs文件系统。ubuntu
ceph集群mon节点ip:10.33.0.51windows
ubuntu16.04节点1:10.33.0.37网络
ubuntu16.04节点2:10.33.0.48app
1、在两个ubuntu16.04节点安装samba,ctdbtcp
apt-get install sambathis
apt-get install ctdbspa
apt-get install ceph-common.net
2、在两个ubuntu16.04节点上挂载cephfs,执行:
mount -t ceph 10.33.0.51:6789:/ /mnt/cephfstest -o name=admin,secret=AQATSKdNjkliwlasUe==
配置开机自动挂载cephfs,参考:http://docs.ceph.com/docs/master/cephfs/fstab/
3、首先在两台节点上配置samba。
在两台节点上编辑/etc/samba/smb.conf
[root] #在windows中能够共享的目录名字
comment = share file root
browseable = yes
path = /mnt/cephfstest/public #要共享的目录,在/mnt/cephfstest/下建立public文件夹.
create mask = 0777
directory mask = 0777
public = yes
writable = yes
guest ok = yes
使能samba服务,在两台节点上执行:
systemctl enable smbd.service nmbd.service
chmod 777 /mnt/cephfstest
在windows系统上链接samba服务
参考:http://blog.csdn.net/zy_whatafuck/article/details/52242241
两台均可以链接成功,samba服务配置正确,若是samba服务不正常,能够查看/var/log下的samba日志。
4、配置samba集群模式和ctdb
samba若是要使用ctdb作高可用,就要把samba配置成集群模式,在两台节点上执行:
编辑/etc/samba/smb.conf
在global部分中加入
[global]
clustering = yes
idmap backend = tdb2
private dir=/mnt/cephfstest/ctdb
fileid:mapping = fsname
use mmap = no
nt acl support = yes
ea support = yes
在两台节点上,编辑/etc/default/ctdb文件,在文件最后加入
CTDB_RECOVERY_LOCK=/mnt/cephfstest/ctdb/lock #此文件ctdb会自动建立
CTDB_PUBLIC_INTERFACE=ens160 #网卡名字
CTDB_PUBLIC_ADDRESSES=/etc/ctdb/public_addresses
CTDB_MANAGES_SAMBA=yes
CTDB_NODES=/etc/ctdb/nodes
CTDB_LOGFILE=/var/log/ctdb.log
CTDB_DEBUGLEVEL=2
CTDB_PUBLIC_NETWORK=”10.33.0.0/24″ #网络段
CTDB_PUBLIC_GATEWAY=”10.33.0.254″ #网关
编辑/etc/services文件,添加
ctdb 9999/tcp
在两台节点上建立/etc/ctdb/nodes文件
添加两个节点的ip如:
10.33.0.148
10.33.0.37
在两台节点上建立/etc/ctdb/public_addresses 文件,添加对外虚拟的ip:
10.33.0.149/24
在两台节点上建立/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
在两个节点上执行
chmod +x /etc/ctdb/events.d/11.route
在两台节点使能ctdb:systemctl enable ctdb.service
启动ctdb:systemctl start ctdb.service
5、检查
ctdb status
Number of nodes:2
pnn:0 10.33.0.148 OK
pnn:1 10.33.0.37 OK (THIS NODE)
Generation:1694897827
Size:2
hash:0 lmaster:0
hash:1 lmaster:1
Recovery mode:NORMAL (0)
Recovery master:1
在windows系统中用虚拟ip10.33.0.149挂载,当samba一个节点宕机后,验证samba服务是否还能够挂载。
参考:http://www.178pt.com/111.html