目录
创建 CephFS 文件系统 MDS 接口
服务端操作
1)在管理节点创建 mds 服务
2)查看各个节点的 mds 服务
3)创建存储池,启用 ceph 文件系统
4)查看mds状态,一个up,其余两个待命,目前的工作的是node01上的mds服务
5)创建用户
客户端
1)客户端要在 public 网络内(我的public网络是192.168.20.0/24网段)在客户端安装 ceph 软件包
2)在客户端创建工作目录
3)在 ceph 的管理节点给客户端拷贝 ceph 的配置文件 ceph.conf 和账号的秘钥环文件 密钥文件
4)在客户端制作秘钥文件(就是提取密钥信息)
5)客户端挂载(默认是6789端口)
●方式一:基于内核
●方式二:基于 fuse 工具
1)在 ceph 的管理节点给客户端拷贝 ceph 的配置文件 ceph.conf 和管理员账号的秘钥环文件
2)在客户端安装 ceph-fuse
3)客户端挂载
接着之前的部署集群架构
cd /etc/ceph
[root@admin ceph]# ceph-deploy mds create node0{1..3}
[root@admin /etc/ceph]#ssh root@node01 systemctl status ceph-mds@node01
[root@admin /etc/ceph]#ssh root@node02 systemctl status ceph-mds@node02
[root@admin /etc/ceph]#ssh root@node03 systemctl status ceph-mds@node03
ceph 文件系统至少需要两个 rados 池,一个用于存储数据,一个用于存储元数据。此时数据池就类似于文件系统的共享目录。
ceph osd pool create #创建数据Pool
ceph osd pool create
#创建 cephfs,命令格式:ceph fs new
ceph fs new mycephfs cephfs_metadata cephfs_data
#启用ceph,元数据Pool在前,数据Pool在后
ceph fs ls
#查看cephfs
[root@admin ceph]# ceph osd pool create cephfs_data 128
pool 'cephfs_data' created
[root@admin ceph]# ceph osd pool create cephfs_metadata 128
pool 'cephfs_metadata' created
[root@admin ceph]# ceph fs new mycephfs cephfs_metadata cephfs_data
new fs with metadata pool 3 and data pool 2
[root@admin ceph]# ceph fs ls
name: mycephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
ceph -s
mds: mycephfs:1 {0=node01=up:active} 2 up:standby
ceph mds stat
mycephfs:1 {0=node01=up:active} 2 up:standby
语法格式:ceph fs authorize client. rw
#账户为 client.zhangsan,用户 name 为 zhangsan,zhangsan 对ceph文件系统的 / 根目录(注意不是操作系统的根目录)有读写权限
ceph fs authorize mycephfs client.zhangsan / rw | tee /etc/ceph/zhangsan.keyring
# 账户为 client.lisi,用户 name 为 lisi,lisi 对文件系统的 / 根目录只有读权限,对文件系统的根目录的子目录 /test 有读写权限
ceph fs authorize mycephfs client.lisi / r /test rw | tee /etc/ceph/lisi.keyring
[root@admin ceph]# ceph fs authorize mycephfs client.lxy / rw |tee lxy.keyring
[root@admin ceph]# ceph fs authorize mycephfs client.hb / r /abc rw |tee hb.keyring
tee的作用是可以标准输出+标准输入
先完成客户端部署
[root@client ceph]# wget https://download.ceph.com/rpm-nautilus/el7/noarch/ceph-release-1-1.el7.noarch.rpm --no-check-certificate
[root@client ceph]# mv ceph-release-1-1.el7.noarch.rpm /opt
[root@client ceph]# cd /opt/
[root@client opt]# rpm -ivh ceph-release-1-1.el7.noarch.rpm
[root@client yum.repos.d]# yum install -y ceph
mkdir /etc/ceph
[root@admin ceph]# scp hb.keyring lxy.keyring ceph.conf root@client:`pwd`
[root@client ceph]# ls
ceph.conf hb.keyring lxy.keyring rbdmap
[root@client ceph]# ceph-authtool -n client.hb -p hb.keyring > hb.key
[root@client ceph]# ceph-authtool -n client.lxy -p lxy.keyring > lxy.key
[root@client ceph]# ls
ceph.conf hb.key hb.keyring lxy.key lxy.keyring rbdmap
[root@client ceph]# cat hb.key
AQARZadll5+bHxAALT65OMvKTNYK2McjiS2SwQ==
[root@client ceph]# cat lxy.key
AQDhZKdlJfkWDhAAAiwF9pn8mep1StRea7ZzWQ==
语法格式:
mount -t ceph node01:6789,node02:6789,node03:6789:/ <本地挂载点目录> -o name=<用户名>,secret=<秘钥>
mount -t ceph node01:6789,node02:6789,node03:6789:/ <本地挂载点目录> -o name=<用户名>,secretfile=<秘钥文件>
[root@client ceph]# mount -t ceph node01:6789,node02:6789,node03:6789:/ /data/lxy/ -o name=lxy,secretfile=/etc/ceph/lxy.key
[root@client ceph]# df -hT
[root@client lxy]# mount -t ceph node01:6789,node02:6789,node03:6789:/ /data/hb/ -o name=hb,secretfile=/etc/ceph/hb.key
[root@client lxy]# df -hT
拓展:
#停掉 node01 上的 mds 服务
ssh root@node01 "systemctl stop ceph-mds@node01"ceph -s
#测试客户端的挂载点仍然是可以用的,如果停掉所有的 mds,客户端就不能用了
[root@admin ceph]# scp ceph.client.admin.keyring root@client:/etc/ceph
[root@client ceph]# yum install -y ceph-fuse
ceph-fuse -m node01:6789,node02:6789,node03:6789 <挂载点> [-o nonempty]
#挂载时,如果挂载点不为空会挂载失败,指定 -o nonempty 可以忽略
[root@client ceph]# mkdir /data/test
[root@client ceph]# ceph-fuse -m node01:6789,node02:6789,node03:6789 /data/test
ceph-fuse和基于内核的mount
文件内容是共享的