Ceph 文件系统 CephFS 的实战配置,等你来学习 --

Ceph 文件系统 CephFS 的介绍与配置 CephFs介绍

Ceph File System (CephFS) 是与 POSIX 标准兼容的文件系统, 能够提供对 Ceph 存储集群上的文件访问. Jewel 版本 (10.2.0) 是第一个包含稳定 CephFS 的 Ceph 版本. CephFS 需要至少一个元数据服务器 (Metadata Server - MDS) daemon (ceph-mds) 运行, MDS daemon 管理着与存储在 CephFS 上的文件相关的元数据, 并且协调着对 Ceph 存储系统的访问。

对象存储的成本比起普通的文件存储还是较高,需要购买专门的对象存储软件以及大容量硬盘。如果对数据量要求不是海量,只是为了做文件共享的时候,直接用文件存储的形式好了,性价比高。
## CephFS 架构
底层是核心集群所依赖的, 包括:

OSDs (ceph-osd): CephFS 的数据和元数据就存储在 OSDs 上

MDS (ceph-mds): Metadata Servers, 管理着 CephFS 的元数据

Mons (ceph-mon): Monitors 管理着集群 Map 的主副本
Ceph 存储集群的协议层是 Ceph 原生的 librados 库, 与核心集群交互.

CephFS 库层包括 CephFS 库 libcephfs, 工作在 librados 的顶层, 代表着 Ceph 文件系统.最上层是能够访问 Ceph 文件系统的两类客户端.

配置 CephFS MDS

要使用 CephFS, 至少就需要一个 metadata server 进程。可以手动创建一个 MDS, 也可以使用 ceph-deploy 或者 ceph-ansible 来部署 MDS。

登录到ceph-deploy工作目录执行 # ceph-deploy mds create $hostname 部署Ceph文件系统

部署一个 CephFS, 步骤如下:

在一个 Mon 节点上创建 Ceph 文件系统.

若使用 CephX 认证,需要创建一个访问 CephFS 的客户端

挂载 CephFS 到一个专用的节点.

以 kernel client 形式挂载 CephFS

以 FUSE client 形式挂载 CephFS

创建一个 Ceph 文件系统

1、CephFS 需要两个 Pools - cephfs-data 和 cephfs-metadata, 分别存储文件数据和文件元数据

# ceph osd pool create cephfs-data 256 256 # ceph osd pool create cephfs-metadata 64 64

注:一般 metadata pool 可以从相对较少的 PGs 启动, 之后可以根据需要增加 PGs. 因为 metadata pool 存储着 CephFS 文件的元数据, 为了保证安全, 最好有较多的副本数. 为了能有较低的延迟, 可以考虑将 metadata 存储在 SSDs 上.

2、创建一个 CephFS, 名字为 cephfs:

# ceph fs new cephfs cephfs-metadata cephfs-data

3、验证至少有一个 MDS 已经进入 Active 状态

ceph fs status cephfs

4、在 Monitor 上, 创建一个用户,用于访问CephFs

# ceph auth get-or-create client.cephfs mon 'allow r' mds 'allow rw' osd 'allow rw pool=cephfs-data, allow rw pool=cephfs-metadata' [client.cephfs] key = AQAXTwte09lkFhAA0sSPRRm5+391tYUwte2qYg==

5、验证key是否生效

ceph auth get client.cephfs exported keyring for client.cephfs [client.cephfs] key = AQAXTwte09lkFhAA0sSPRRm5+391tYUwte2qYg== caps mds = "allow rw" caps mon = "allow r" caps osd = "allow rw pool=cephfs-data, allow rw pool=cephfs-metadata"

6、检查CephFs和mds状态

ceph mds stat ceph fs ls ceph fs status 以 kernel client 形式挂载 CephFS

1、创建挂载目录 cephfs

# mkdir /cephfs

2、挂载目录

# mount -t ceph 192.168.25.224:6789,192.168.25.227:6789,192.168.25.228:6789:/ /cephfs/ -o name=cephfs,secret=AQAXTwte09lkFhAA0sSPRRm5+391tYUwte2qYg== # 秘钥就是上面创建用户的key ~]$ df -h 192.168.25.224:6789,192.168.25.227:6789,192.168.25.228:6789:/ 36G 9.2G 27G 26% /cephfs

3、自动挂载

# echo "mon1:6789,mon2:6789,mon3:6789:/ /cephfs ceph name=cephfs,secretfile=http://www.likecs.com/etc/ceph/cephfs.key,_netdev,noatime 0 0" | sudo tee -a /etc/fstab

4、验证是否挂载成功

# stat -f /cephfs 以 FUSE client 形式挂载 CephFS(失败)

1、安装ceph-common

yum install -y ceph-common

2、安装ceph-fuse

yum install -y ceph-fuse

3、将集群的ceph.conf拷贝到客户端

scp root@192.168.25.224:/etc/ceph/ceph.conf /etc/ceph/ chmod 644 /etc/ceph/ceph.conf

4、使用 ceph-fuse 挂载 CephFS

ceph-fuse --keyring /etc/ceph/ceph.client.cephfs.keyring --name client.cephfs -m 192.168.25.224:6789,192.168.25.227:6789,192.168.25.228:6789 /cephfs/

5、验证 CephFS 已经成功挂载

stat -f /cephfs

6、自动挂载

echo "none /cephfs fuse.ceph ceph.id=cephfs[,ceph.conf=http://www.likecs.com/etc/ceph/ceph.conf],_netdev,defaults 0 0"| sudo tee -a /etc/fstab 或 echo "id=cephfs,conf=http://www.likecs.com/etc/ceph/ceph.conf /mnt/ceph2 fuse.ceph _netdev,defaults 0 0"| sudo tee -a /etc/fstab

7、卸载

fusermount -u /cephfs MDS主备与主主切换 配置主主模式

MDS配置模式分为以下三种:

冷备模式:同一时间,只有一个mds工作,单纯的进程备份。

热备模式:同一时间,只有一个mds工作,但除了进程备份,也实时备份元数据,这样可以加快MDS故障切换时间。

多主模式:多个MDS同时工作,各自管理自己负责的元数据。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zysxxx.html