Lucien168
作者Lucien168·2019-01-10 19:18
存储工程师·地平线机器人

分布式文件存储Cephfs介绍及使用在线答疑总结

字数 2638阅读 2213评论 0赞 5

Q: cephfs 针对高可用是怎样实现的?

针对cephfs 的高可用实现方式都有哪些,分别利弊是什么,是否可以实现商业上线使用

A:

首先ceph本身就是分布式高可用,高可靠,可扩展的系统。
而cephfs 的相关组件包含:

  • mon监控整体集群信息
  • mds元信息文件及目录信息
  • osd数据节点及文件信息

针对这三个组件都是可以 横向扩展,性能也是随着节点的增加而线性增加。
三个组件都是基于分布式协议Paxos 实现的, 集群内部不会存在单点的问题。
任何一个节点挂掉,都不会影响集群正常工作,对于客户端也是无感知的。
目前,可以用到生产环境,但是得做好充分的测试,开源软件肯定会有些小问题。


Q:分布式文件系统和并行文件系统有什么区别与联系?如何区分?

A:

分布式文件系统

  • 自然地,“分布式”是重点,它是相对与本地文件系统而言的。分布式文件系统通常指C/S架构或网络文件系统,用户数据没有直接连接到本地主机,而是存储在远程存储服务器上。NFS/CIFS是最为常见的分布式文件系统,这就是我们说的NAS系统。

并行文件系统

  • 这种文件系统能够支持并行应用,比如MPI。在并行文件系统环境下,所有客户端可以在同一时间并发读写同一个文件。并发读,大部分文件系统都能够实现。并发写实现起来要复杂许多,既要保证数据一致性,又要最大限度提高并行性,因此在锁机制方面需要特别设计,如细粒度的字节锁。通常SAN共享文件系统都是并行文件系统,如GPFS、StorNext、GFS、BWFS,集群文件系统大多也是并行文件系统,如Lustre, Panasas等。

如何区分?

  • 区分这两者的重点是“分布式”、“并行” 前缀关键字。
    简单来说,非本地直连的、通过网络连接的,这种为分布式文件系统;
    支持并行应用(如MPI)的,这种为并行文件系统。

这两个概念之间具有重叠之处,比如Lustre,它既是分布式文件系统,也是并行文件系统。


Q: 之前在Jewel版测试cephfs fuse client 性能比Kernel client低,目前最新版L 是否有改善?

A:

用这个还真没有对比测试过, 但是ceph fuse client 稳定性倒是提升了不少,修复了不少bug。
fuse用户态模式 肯定比直接用kernel内核模式性能低。
如果您的性能要求比较严格,肯定考虑直接用kernel client, 新版本关于kernel模式 稳定性很高,性能有保障。


Q: 请教一下CephFS、RBD、RGW各自的适用场景和优缺点?

A:

三种存储类型-块存储

典型设备:磁盘阵列,硬盘

主要是将裸磁盘空间映射给主机使用的。

优点:

• 通过Raid与LVM等手段,对数据提供了保护。

• 多块廉价的硬盘组合起来,提高容量。

• 多块磁盘组合出来的逻辑盘,提升读写效率。

缺点:

• 采用SAN架构组网时,光纤交换机,造价成本高。

• 主机之间无法共享数据。

使用场景:

• docker容器、虚拟机磁盘存储分配。

• 日志存储。

• 文件存储。

• …

1.6 三种存储类型-文件存储

典型设备:FTP、NFS服务器

为了克服块存储文件无法共享的问题,所以有了文件存储。

在服务器上架设FTP与NFS服务,就是文件存储。

优点:

• 造价低,随便一台机器就可以了。

• 方便文件共享。

缺点:

• 读写速率低。

• 传输速率慢。

使用场景:

• 日志存储。

• 有目录结构的文件存储。

• …

1.7 三种存储类型-对象存储

典型设备:内置大容量硬盘的分布式服务器(swift, s3)

多台服务器内置大容量硬盘,安装上对象存储管理软件,对外提供读写访问功能。

优点:

• 具备块存储的读写高速。

• 具备文件存储的共享等特性。

使用场景:(适合更新变动较少的数据)

• 图片存储。

• 视频存储。

• …


Q: 运维方面有推荐的自动化系统吗?

A:

目前主流的Ceph开源监控软件有:Calamari、VSM、Inkscope、Ceph-Dash、Zabbix等。

Calamari对外提供了十分漂亮的Web管理和监控界面,以及一套改进的REST API接口(不同于Ceph自身的REST API),在一定程度上简化了Ceph的管理。
优点:

  • 轻量级
  • 官方化
  • 界面友好
    缺点:
  • 不易安装
  • 管理功能滞后

Virtual Storage Manager (VSM)是Intel公司研发并且开源的一款Ceph集群管理和监控软件,简化了一些Ceph集群部署的一些步骤,可以简单的通过WEB页面来操作。
优点:

  • 管理功能好
  • 界面友好
  • 可以利用它来部署Ceph和监控Ceph

缺点:

  • 非官方
  • 依赖OpenStack某些包

Inkscope 是一个 Ceph 的管理和监控系统,依赖于 Ceph 提供的 API,使用 MongoDB 来存储实时的监控数据和历史信息。
优点:

  • 易部署
  • 轻量级
  • 灵活(可以自定义开发功能)

缺点:

  • 监控选项少
  • 缺乏Ceph管理功能

Ceph-Dash 是用 Python 开发的一个Ceph的监控面板,用来监控 Ceph 的运行状态。同时提供 REST API 来访问状态数据。

优点:

  • 易部署
  • 轻量级
  • 灵活(可以自定义开发功能)

官方的部署系统有deploy-ceph 使用很简单明了。


Q: 对于扩容/缩容 是否平滑 ,有影响吗?

A:

扩容/缩容 会涉及到数据的迁移,对于客户端理论上是不影响的,数据都会正常访问和写入。
不过,如果内部数据迁移io太频繁,可能会影响客户端io的响应时间,延迟会拉高。
需要控制好内部的频率和速度。


Q: 故障转移需要手动修复吗,怎么做的?

A:

ceph的强大之处就在于 能够自我修复,自愈。不过是从节点异常挂掉,还是数据均衡,还是集群数据清洗等策略,都是ceph内部自我修复完成,不需要人工介入。
例如,副本节点挂掉 内部会自动同进行均衡把副本数据通过到其他节点,保证数据三副本。


Q: CephFS的Kernel Client稳定性和性能如何?

A:

单个mds性能 fuse模式5000ops/s 左右, kernel模式8000ops/s 左右。
kernel client 在4.x 以下的内核版本,存储很多坑和问题。
官方建议升级内核版本到4.x以上,社区也有部分大厂升级到了新内核版本,稳定性还是不错的。
建议如果用kernel client模式,升级内核到4.x以上,
否则推荐使用fuse模式。


Q: cephfs对文件数量有限制么?

A:

对文件数量没有限制,但是单个目录的子文件 默认是10w个文件。如果超过就会报错,可以通过相关参数修改。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

5

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广