分布式文件存储 CephFS 使用技巧
【摘要】Ceph 文件系统( Ceph FS )是个 POSIX 兼容的文件系统,它使用 Ceph 存储集群来存储数据。Ceph 文件系统与 Ceph 块设备、同时提供 S3 和 Swift API 的 Ceph 对象存储、或者原生库( librados )一样,都使用着相同的 Ceph 存储集群系统。除本文之外,大家还可参考《一文看懂分布式文件存储 CephFS》(点击标题即可),了解更全面的相关知识。
【答疑/整理】李航,多年的底层开发经验,在高性能nginx开发和分布式缓存redis cluster有着丰富的经验,目前从事Ceph工作。个人主要关注的技术领域:高性能Nginx开发、分布式缓存、分布式存储。
Q1: cephfs 针对高可用是怎样实现的?
针对cephfs 的高可用实现方式都有哪些,分别利弊是什么,是否可以实现商业上线使用
A:
首先ceph本身就是分布式高可用,高可靠,可扩展的系统。
而cephfs 的相关组件包含:
mon监控整体集群信息
mds元信息文件及目录信息
osd数据节点及文件信息
针对这三个组件都是可以 横向扩展,性能也是随着节点的增加而线性增加。
三个组件都是基于分布式协议Paxos 实现的, 集群内部不会存在单点的问题。
任何一个节点挂掉,都不会影响集群正常工作,对于客户端也是无感知的。
目前,可以用到生产环境,但是得做好充分的测试,开源软件肯定会有些小问题。
Q2:分布式文件系统和并行文件系统有什么区别与联系?如何区分?
A:
分布式文件系统
- 自然地,“分布式”是重点,它是相对与本地文件系统而言的。分布式文件系统通常指C/S架构或网络文件系统,用户数据没有直接连接到本地主机,而是存储在远程存储服务器上。NFS/CIFS是最为常见的分布式文件系统,这就是我们说的NAS系统。
并行文件系统
- 这种文件系统能够支持并行应用,比如MPI。在并行文件系统环境下,所有客户端可以在同一时间并发读写同一个文件。并发读,大部分文件系统都能够实现。并发写实现起来要复杂许多,既要保证数据一致性,又要最大限度提高并行性,因此在锁机制方面需要特别设计,如细粒度的字节锁。通常SAN共享文件系统都是并行文件系统,如GPFS、StorNext、GFS、BWFS,集群文件系统大多也是并行文件系统,如Lustre, Panasas等。
如何区分?
- 区分这两者的重点是“分布式”、“并行” 前缀关键字。
简单来说,非本地直连的、通过网络连接的,这种为分布式文件系统;
支持并行应用(如MPI)的,这种为并行文件系统。
这两个概念之间具有重叠之处,比如Lustre,它既是分布式文件系统,也是并行文件系统。
Q3: 之前在Jewel版测试cephfs fuse client 性能比Kernel client低,目前最新版L 是否有改善?
A:
用这个还真没有对比测试过, 但是ceph fuse client 稳定性倒是提升了不少,修复了不少bug。
fuse用户态模式 肯定比直接用kernel内核模式性能低。
如果您的性能要求比较严格,肯定考虑直接用kernel client, 新版本关于kernel模式 稳定性很高,性能有保障。
Q4: 请教一下CephFS、RBD、RGW各自的适用场景和优缺点?
A:
三种存储类型-块存储
典型设备:磁盘阵列,硬盘
主要是将裸磁盘空间映射给主机使用的。
优点:
• 通过Raid与LVM等手段,对数据提供了保护。
• 多块廉价的硬盘组合起来,提高容量。
• 多块磁盘组合出来的逻辑盘,提升读写效率。
缺点:
• 采用SAN架构组网时,光纤交换机,造价成本高。
• 主机之间无法共享数据。
使用场景:
• docker容器、虚拟机磁盘存储分配。
• 日志存储。
• 文件存储。
• …
三种存储类型-文件存储
典型设备:FTP、NFS服务器
为了克服块存储文件无法共享的问题,所以有了文件存储。
在服务器上架设FTP与NFS服务,就是文件存储。
优点:
• 造价低,随便一台机器就可以了。
• 方便文件共享。
缺点:
• 读写速率低。
• 传输速率慢。
使用场景:
• 日志存储。
• 有目录结构的文件存储。
• …
三种存储类型-对象存储
典型设备:内置大容量硬盘的分布式服务器(swift, s3)
多台服务器内置大容量硬盘,安装上对象存储管理软件,对外提供读写访问功能。
优点:
• 具备块存储的读写高速。
• 具备文件存储的共享等特性。
使用场景:(适合更新变动较少的数据)
• 图片存储。
• 视频存储。
• …
Q5: 运维方面有推荐的自动化系统吗?
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 使用很简单明了。
Q6: 对于扩容/缩容 是否平滑 ,有影响吗?
A:
扩容/缩容 会涉及到数据的迁移,对于客户端理论上是不影响的,数据都会正常访问和写入。
不过,如果内部数据迁移io太频繁,可能会影响客户端io的响应时间,延迟会拉高。
需要控制好内部的频率和速度。
Q7: 故障转移需要手动修复吗,怎么做的?
A:
ceph的强大之处就在于 能够自我修复,自愈。不过是从节点异常挂掉,还是数据均衡,还是集群数据清洗等策略,都是ceph内部自我修复完成,不需要人工介入。
例如,副本节点挂掉 内部会自动同进行均衡把副本数据通过到其他节点,保证数据三副本。
Q8: CephFS的Kernel Client稳定性和性能如何?
A:
单个mds性能 fuse模式5000ops/s 左右, kernel模式8000ops/s 左右。
kernel client 在4.x 以下的内核版本,存储很多坑和问题。
官方建议升级内核版本到4.x以上,社区也有部分大厂升级到了新内核版本,稳定性还是不错的。
建议如果用kernel client模式,升级内核到4.x以上,
否则推荐使用fuse模式。
Q9: cephfs对文件数量有限制么?
A:
对文件数量没有限制,但是单个目录的子文件 默认是10w个文件。如果超过就会报错,可以通过相关参数修改。
如有任何问题,可点击文末阅读原文到社区原文下评论交流
资料/文章推荐:
ceph详细中文文档
http://www.talkwithtrend.com/Document/detail/tid/417529
欢迎关注社区 “分布式存储”技术主题,将会不断更新优质资料、文章。地址:
http://www.talkwithtrend.com/Topic/23951
下载 twt 社区客户端 APP
与更多同行在一起
高手随时解答你的疑难问题
轻松订阅各领域技术主题
浏览下载最新文章资料
长按识别二维码即可下载
或到应用商店搜索“twt”
*本公众号所发布内容仅代表作者观点,不代表社区立场