1 简介
Ceph分布式存储使用Samba服务将CephFS文件存储导出成Samba协议.支持Windows和Linux MacOS等访问文件共享

2 环境
Cephfs+Samba构建基于Ceph的文件共享服务_第1张图片

3 安装Samba
下载samba rpm安装包:
yum -y install smaba samba-client samba-common

Cephfs+Samba构建基于Ceph的文件共享服务_第2张图片

4 创建samba用户
groupadd samba
useradd samba -d /home/samba -g smb -s /sbin/nologin
smbpasswd -a samba

5 源码编译vfs_ceph模块
下载tar -zxvf samba-4.8.3.tar.gz
yum -y install lmdb python36 python36-devel lmdb-devel gnutls-devel gpgme-devel python-gpgme jansson-devel libarchive-devel libacl-devel pam-devel

./configure
Make
cd bin/default/source3/modules/
cp -a libvfs_module_ceph.so /usr/lib64/samba/vfs/

6 配置Ceph
创建CephFs samba.gw账号
ceph auth get-or-create client.samba.gw mon 'allow r' \
osd 'allow ' mds 'allow ' -o ceph.client.samba.gw.keyring

将密钥拷贝到/etc/ceph
cp ceph.client.samba.gw.keyring /etc/ceph/

7 配置Samba
Cephfs+Samba构建基于Ceph的文件共享服务_第3张图片

8 启动服务
systemctl start smb.service
systemctl enable smb.service
systemctl start nmb.service
systemctl enable nmb.service

9 Linux挂载
Linux客户端安装yum -y install cifs-utils
mount.cifs //IP/share /mnt/share -o username=xxx,password=xxx

10 Windows挂载
Cephfs+Samba构建基于Ceph的文件共享服务_第4张图片

Cephfs+Samba构建基于Ceph的文件共享服务_第5张图片

11 故障场景:
11.1 Windows下访问共享目录没有删除和创建目录文件权限

意思是在IP上采用内核方式挂载CephFS到本地
mount -t ceph IP:/ /mnt/cephfs/
chmod 777 -R /mnt/cephfs/
umount /mnt/cephfs