環境:兩臺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