-
背景 文件系统是用来管理企业文件的 分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。 分布式文件系统解决的问题是数据备份,数据安全和数据访问的问题
2. 主流分布式文件系统对比
分布式文件系统通过主控服务器对文件进行分布式存储,将客户端的文件存储根据业务需要,存储在不同的数据服务器中。
下表是常见的分布式文件系统及多个维度的对比:
文件系统 | FastDFS | Ceph |
开发语言 | C | C++ |
开源协议 | GPL V3 | LGPL |
数据存储方式 | 文件/Trunk | 对象/文件/块 |
集群节点通信协议 | 私有协议(TCP) | 私有协议(TCP) |
专用元数据存储点 | 无 | 占用MDS |
在线扩容 | 支持 | 支持 |
冗余备份 | 支持 | 支持 |
单点故障 | 不存在 | 存在 |
跨集群同步 | 部分支持 | 不适用 |
易用性 | 安装简单,社区相对活跃 | 安装简单,官方文档专业化 |
适用场景 | 单集群的中小文件 | 单集群的大中小文件 |
配置推荐 | 无 | ceph官网配置推荐 |
块存储:
原理:将裸磁盘空间通过逻辑划分成多个逻辑盘,每个逻辑盘存储数据
优点:将多个廉价硬盘组合起来对外提供服务,可并行读写,读速度快
缺点:不同文件系统不能共享
文件存储:
原理:直接存储在硬盘上
优点:硬件廉价,能共享
缺点:文件在同一磁盘上,读写慢
对象存储:
原理:对象存储最常用的方案,就是多台服务器内置大容量硬盘,再装上对象存储软件,然后再额外搞几台服务作为管理节点,安装上对象存储管理软件。管理节点可以管理其他服务器对外提供读写访问功能。
优点:很好的结合块存储和文件存储,读写快,能共享
缺点:硬盘容量大(推荐大于1T),服务器节点多(3个OSD,3个Monitor,2个MDS(可选)),硬件需求,部署运维成本大。
3. 目前需求
企业图片等小文件(小于100M)存储,数据安全,备份,可动态扩容等
4. 选型
根据目前的需求,从中选择了Ceph和FastDFS两款文件进行详细了解,发现Ceph文件系统在搭建和运维时成本较高,且已知的大规模成功案例较少,而FastDFS已知的大规模成功案例较多,公司内部运维时间长,所以选择FastDFS
5. 安装部署
6.关于分布式文件系统建议
建议考虑下秒传功能,文件重复时直接返回新的ID
建议考虑下垃圾文件处理机制
建议考虑下文件安全,比如文件类型校验等
建议部署时结合Supervisor使用
7. 经讨论并结合现有实际业务,硬件需求,部署运维成本,最终选择FastDFS。