ceph创建MDS接口(部署mds文件系统)
服务端操作
1.1在管理节点执行下述命令
cd /etc/ceph
ceph-deploy mds create mon01 mon02 mon03
可以查看各个节点的mds服务
ssh root@mon01 systemctl status ceph-mds@mon01
ssh root@mon02 systemctl status ceph-mds@mon02
ssh root@mon03 systemctl status ceph-mds@mon03
1.2启用ceph文件系统
ceph文件系统至少需要两个rados池,一个用于存储数据,一个用于存储元数据
此时数据池就类似于文件系统的共享目录
#创建数据pool
ceph osd pool create cephfs_data 128
#创建Metadata池
ceph osd pool create cephfs_metadata 128
#启用ceph
ceph fs new cephfs cephfs_metadata cephfs_data # 元数据在前,数据池在后
#查看cephfs
ceph fs ls
创建好cephfs池后便可以查看
[root@admin ceph]# ceph -s
......
#一个up,其余两个待命,目前的工作的是mon01上的mds服务
mds: cephfs-1/1/1 up {0=mon01=up:creating}, 2 up:standby
......
[root@admin ~]# ceph mds stat
cephfs-1/1/1 up {0=mon03=up:active}, 2 up:standby
[root@admin ~]# ceph mds dump
......
1.3创建用户
语法格式如下:
ceph fs authorize <fs_name> client.<client_id> <path-in-cephfs> rw
示例1:
# 账户为client.egon,用户name为egon,egon对文件系统的根目录(不是操作系统的根目录)有rw权限(此处的根为客户端挂载的目录,此时根目录对应的是ceph的数据池,)
ceph fs authorize cephfs client.egon / rw| tee /etc/ceph/egon.keyring
示例2:
# 账户为client.tom,用户name为tom,tom对文件系统的根目录的子目录egon_test有rw权限
ceph fs authorize cephfs client.tom / r /test rw| tee
/etc/ceph/tom.keyring
客户端操作
切记客户端一定要在public_addr网络内
2.1客户端需要有配置文件
ceph.conf
还有账号的秘钥环文件egon.keyring、tomkeyring
首先在客户端创建好工作目录
mkdir /etc/ceph
在ceph的管理节点传给该客户端
cd /etc/ceph
scp -r egon.keyring 1.1.1.10:/etc/ceph
scp -r tom.keyring 1.1.1.10:/etc/ceph
# 还有/etc/hosts
scp -r /etc/hosts 1.1.1.10:/etc/
2.2客户端需要安装ceph软件包
wget https://download.ceph.com/rpm-luminous/el7/noarch/ceph-release-1-
1.el7.noarch.rpm
rpm -ivh ceph-release-1-1.el7.noarch.rpm
yum install ceph -y
2.3客户端制作秘钥文件
cd /etc/ceph
ceph-authtool -n client.egon -p egon.keyring > egon.key #把egon用户的秘钥导出到egon.keyl
ceph-authtool -n client.tom -p tom.keyring > tom.key # 把egon用户的秘钥导出到egon.key
总结:创建文件系统的步骤:
服务端:
一、:创建mds文件系统
二、:启用mds文件系统
三、:创建存储池
四、:将存储池绑定给mds
客户端:
一、连入public网络
二、安装ceph及其需要使用的软件包
三、获取ceph的配置文件及秘钥
四、挂载使用
2.4客户端挂载
两种挂载方式,各有优劣,都可以用
方式一:基于内核
mount -t ceph mon01:6789,mon02:6789,mon03:6789:/ 本地路径 -o name=用户名,secret=秘钥
mount -t ceph mon01:6789,mon02:6789,mon03:6789:/ 本地路径 -o name=用户名,secretfile=秘钥文件只包含秘钥
示例一:
mount -t ceph mon01:6789,mon02:6789,mon03:6789:/ /opt -o name=egon,secretfile=/etc/ceph/egon.key
示例二:
mount -t ceph mon01:6789,mon02:6789,mon03:6789:/ /mnt -o
name=tom,secretfile=/etc/ceph/tom.key
#验证用户权限
[root@osd03 ceph]# cd /mnt/
[root@osd03 mnt]# echo 123 > 2.txt
-bash:2.txt:权限不够
[root@osd03 mnt]# echo 123 > test/2.txt
[root@osd03 mnt]# cat test/2.txt
123
示例三:
#停掉mon02上的mds服务
[root@admin ceph]# ssh root@mon02 "systemctl stop ceph-mds@mon02"
# 查看
[root@admin ceph]# ceph -s
......
mds: cephfs-1/1/1 up {0=mon03=up:active}, 1 up:standby # mon03Ӥᕚૡ֢
......
# 测试客户端的挂载点仍然是可以用的
# 停掉所有的mds,客户端就不能用了
[root@admin ceph]# ssh root@mon03 "systemctl stop ceph-mds@mon03"
[root@admin ceph]# ssh root@mon01 "systemctl stop ceph-mds@mon01"
方式二:基于fuse工具
yum install ceph-fuse -y
ceph-fuse -n client.egon -m mon01:6789,mon02:6789,mon03:6789 /mnt -o nonempty
挂载源为文件系统的根,/mnt为挂载点,挂载时,如果/mnt不为空会挂载失败,此时可以清空,或者指定-o nonempty,然后重新挂载
无论文件存储、块存储都要先建存储池、在启用