【分布式技术】分布式存储ceph之MDS接口详解

发布时间:2024年01月17日

目录

创建 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)客户端挂载


接着之前的部署集群架构

创建 CephFS 文件系统 MDS 接口

服务端主要操作

1)在管理节点创建 mds 服务

cd /etc/ceph
[root@admin ceph]# ceph-deploy mds create node0{1..3}

2)查看各个节点的 mds 服务

[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

?

3)创建存储池,启用 ceph 文件系统

ceph 文件系统至少需要两个 rados 池,一个用于存储数据,一个用于存储元数据。此时数据池就类似于文件系统的共享目录。
ceph osd pool create  <CEPHFS_DATA_NAME> <PG数量>					#创建数据Pool

ceph osd pool create <CEPHFS_METADATA_NAME> <PG数量>
#创建 cephfs,命令格式:ceph fs new <FS_NAME> <CEPHFS_METADATA_NAME> <CEPHFS_DATA_NAME>
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 ]

?4)查看mds状态,一个up,其余两个待命,目前的工作的是node01上的mds服务

ceph -s
mds: mycephfs:1 {0=node01=up:active} 2 up:standby

ceph mds stat
mycephfs:1 {0=node01=up:active} 2 up:standby

5)创建用户

语法格式:ceph fs authorize  <fs_name>  client.<client_id>  <path-in-cephfs>  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的作用是可以标准输出+标准输入

客户端以及部分服务端操作

1)客户端要在 public 网络内(我的public网络是192.168.20.0/24网段)在客户端安装 ceph 软件包

先完成客户端部署

[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

?

2)在客户端创建工作目录

mkdir /etc/ceph

3)在 ceph 的管理节点给客户端拷贝 ceph 的配置文件 ceph.conf 和账号的秘钥环文件 密钥文件

[root@admin ceph]# scp hb.keyring lxy.keyring ceph.conf root@client:`pwd`

?

4)在客户端制作秘钥文件(就是提取密钥信息)

[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==

5)客户端挂载(默认是6789端口)

●方式一:基于内核

语法格式:
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,客户端就不能用了

●方式二:基于 fuse 工具

1)在 ceph 的管理节点给客户端拷贝 ceph 的配置文件 ceph.conf 和管理员账号的秘钥环文件

[root@admin ceph]# scp ceph.client.admin.keyring root@client:/etc/ceph

2)在客户端安装 ceph-fuse

[root@client ceph]# yum install -y ceph-fuse

?

3)客户端挂载

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

文件内容是共享的?

?

文章来源:https://blog.csdn.net/liu_xueyin/article/details/135659926
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。