官方文档:docs.ceph.com/en/pacific/…
传统的文件存储通常使用的是NAS存储,通过NFS协议来实现,NFS类型的文件存储可以同时共享给多个客户端使用,传输协议简单,只要有网络就可以实现。
对于存储而言,高可用性是必须具备的,一旦存储宕机,就会影响应用程序的使用,而NAS存储最典型的缺点就是单点故障。
在Ceph分布式存储系统中有关于文件存储的存储类型,称之为CephFS,CephFS是一个符合POSIX的文件系统,构建在Ceph对象存储Rados之上,CephFS可以为各种应用程序提供最先进的、多用途、高可用性和高性能的文件存储。
CephFS文件系统至少需要一个MDS(Metadata Server组件)来存储文件系统的元数据信息,因此在使用CephFS文件存储之前,首先要在集群中部署MDS组件,我们希望CephFS文件存储具备高可用性,所以MDS组件一般都会在集群中部署多个,大多数情况下都是三个MDS组件。
CephFS支持用户级别和内核级别的挂载使用,可扩展性极高,并且可以同时让多个Client客户端进行读写。
简而言之:CephFS文件存储就是提供类似NFS服务的共享存储系统,相当于基于NFS的分布式文件存储系统,多个客户端可以同时去挂载这个文件存储系统,并且还可以提供高可靠服务。
CephFS文件系统的核心组件有:
MDS:MDS组件主要用于保存文件的元数据信息,会单独存放在一个Pool资源池中。
MDS支持高可用性,默认采用主备模式,也可以配置成多主模式。
Client:客户端。
RADOS:CephFS也是基于RADOS来实现文件存储的,CephFS文件存储中的文件数据与文件的元数据都是单独在不同的Pool资源池中存储的。
Ceph集群如果想要实现CephFS文件存储,首先需要在集群中准备MDS组件,MDS组件主要是来保存文件存储中文件的元数据信息,一般会部署三个MDS组件,形成高可用模式,其中一个MDS的Active状态提供服务,另外两个都是Standby的状态,当Active状态的MDS挂掉后,Standby状态的MDS之间会就进行选举,选举成功的MDS节点就会成为集群中的Active。
MDS组件会将文件的元数据信息写在Journal日志中,最终Journal日志中的文件元数据信息会写入到一个Metadata的Pool资源池中,所有的MDS节点都会连接这个Pool资源池,并且MDS各节点之间会交换元数据信息,当Active状态的MDS组件挂掉了,选举出来的MDS会从Metadata Pool资源池获取整个集群中所有文件的元数据信息。
CephFS会将用户写入的文件数据与文件的元数据分开存放在不同的Pool资源池中,将数据与元数据分开存储。
Client客户端可以直接在存放数据的Pool资源池中写入文件数据,写入的文件依旧会被拆分成多个Object对象文件,这些Object对象文件写入到PG中,最后通过CRUSH算法存储在多个OSD中。
应用场景:
- 为K8S集群Pod资源提供持久化存储。
- 多个服务器同时挂载一个文件系统,同时进行读写。
CephFS文件系统多MDS的优势及特点:
- 当元数据默认的单个MDS成为瓶颈时,配置多个活跃的MDS守护进程,提升集群性能。
- 多个活跃的MDS有利于性能提升。
- 多个活跃的MDS可以实现MDS负载均衡。
- 多个活跃的MDS可以实现多租户资源隔离。
- 它能够将文件系统树分割成子树,每个子树可以交给特定的MDS进行权威管理,从而达到了随着元数据服务器数量的增加,集群性能线性地扩展。
- 每个子树都是基于元数据在给定目录树中的热动态创建的。
- 一旦创建了子树,它的元数据就被迁移到一个未加载的MDS。
- 后续客户端对先前授权的MDS的请求被转发。
可以看到集群中已经有3个MDS组件了,但是状态都处于standby,那是因为集群中还没有创建CephFS文件系统,导致MDS组件无法选举。
一个Cephfs文件存储系统至少需要两个Rados资源池,一个资源池用于存放文件数据,另一个资源池用于存放文件的元数据信息,如果元数据资源池中的任何数据丢失,都有可能导致整个文件系统无法访问。
对元数据资源池建议使用较低延迟的OSD,例如可以使用SSD硬盘的OSD,元数据资源池的延迟直接会影响在客户端中文件系统操作的延迟。
创建好这两个Pool资源池后,只能为一个cephfs文件存储系统使用,如果集群中需要创建多个cephfs文件系统,则需要创建多个元数据池和数据池,一个元数据资源池和数据资源池只能为一个Cephfs文件系统提供使用。
命令格式:ceph fs new {cephfs_name} {metadata_pool} {data_pool}
挂载的操作文档:docs.ceph.com/en/pacific/…
1)在客户端中创建挂载目录
2)使用内核级别挂载Cephfs文件系统
CephFS系统可以理解为也是一个磁盘,类型是ceph的类型,直接可以通过mount命令进行挂载。
命令格式:mount -t ceph {monitor_addr}:/ /{path} -o name=admin
挂载时最好指定所有monitor组件的地址,否则当有一个monitor组件产生问题,就会影响挂载。
1.获取admin用户的Key
2.通过认证方式挂载CephFS文件系统
3.查看是否挂载成功
4.设置开机自动挂载
也可以将用户的Key写入到一个文件中,然后引用这个文件,如下所示:
以上就是Ceph集群CephFS文件存储核心概念及部署使用详解的详细内容,更多关于Ceph CephFS文件存储部署的资料请关注脚本之家其它相关文章!
到此这篇cephfs架构(ceph 架构)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/kjbd-jg/35337.html