ctdb+samba+cephfs高可用

环境:两台ubuntu16.04主机或虚拟机,samba:4.3.11,ctdb:4.3.11,ceph客户端:10.2.9 ,ceph集群:10.2.3

配置前准备:

    可用的ceph集群,配置了cephfs文件系统。

    ceph集群mon节点ip:10.33.0.51

    ubuntu16.04节点1:10.33.0.37

    ubuntu16.04节点2:10.33.0.48

一、在两个ubuntu16.04节点安装samba,ctdb

    apt-get install samba

    apt-get install ctdb

    apt-get install ceph-common

二、在两个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/

三、首先在两台节点上配置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日志。

四、配置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

五、检查

    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

猜你喜欢

转载自my.oschina.net/u/2326998/blog/1612768