DFS 分布式文件系统 选型笔记
需求按优先级顺序如下:
1)存放3TB以上中小型文件,图片为主,平均在500~700k,一般在1M以内。
2)要集群化,支持负载均衡,高可用高性能。有大企业使用背书最好。
3)提供Java程序上传文件的手段。Java代码可以在Windows环境下调试。
4)必须开源,作者能保持更新。
5)有运维监控手段,能快速定位出问题的服务器。
6)(加分项)新增存储服务器时,不需要更改Nginx负载均衡和Java程序的配置。
看了一大堆资料,没完美的解决方案,稍为符合的候选者只有3个:
| 框架 | 简介 | 文件存放方式 | 支持高可用 | 容量扩展手段 | 浏览器 gzip 支持 | 浏览器端缓存 | 程序访问 |
| FastDFS |
我知道国内很多创业公司都在用,自己也用了一段时间,比较稳定,网友写了不少中文资料,但官方几乎没有文档。建议用fastdfs-nginx-module吐流,而不是反向代理直接访问某个storage服务器。 运维方面:出现不能访问时,要查分布在多个地方的日志(nginx > nginx fastdfs module >storage > tracker),不熟悉的人不太好查原因。 主页:https://github.com/happyfish100/fastdfs 部署方式说明:http://blog.csdn.net/xifeijian/article/details/38567839 Docker:https://hub.docker.com/r/hhland/fastdfs/ ,https://hub.docker.com/r/season/fastdfs/ |
key-value 方式存放。 没有上传目录的概念,研发/测试环境需要独立部署自用的文件服务器。 不支持文件列表,不支持FUSE |
集群可由多台Tracker与多台Storage服务器组成。 多台tracker之间没有集群,由客户端解决failover问题。 storage服务器以group为单位组织,同一group下的不同storage服务器文件完全相同,主要用于负载均衡和容错,类似硬盘RAID10的方案。 不支持多机房。 |
TB级存储方案 1.同一storage服务器可以在配置中指定多个store_path来增加硬盘。 2.支持以group为单位增加服务器来扩展容量。 3.总容量为所有group加起来 |
由反向代理临时压缩 | 支持If-Modified-Since |
语言SDK:通过专用SDK,支持Java。 REST接口:无 http读文件:可通过storage服务器的http服务,也可以通过装了fastdfs-nginx-module的nginx提供。建议使用后者。 |
| 百度BFS (待研究) |
功能强大,但网上文档非常少,百度搜索未发现使用经验文章。介绍说百度整个公司都在用。 主页:https://github.com/baidu/bfs Docker:提供Dockerfile,但没放到Docker Hub。 |
目录方式存放。 支持文件列表,支持FUSE |
集群由NameServer,MetaServer,ChunkServer组成。 NameServer使用raft算法,依赖Neuxs或Zookeeper选出Leader,失效时自动重选Leader ChuckServer的高可用:待分析 对多机房,多服务器支持最好。 |
PB级存储方案 |
待分析 | 待分析 |
语言SDK:通过专用SDK访问,不支持Java,但可以通过FUSE桥接实现,Windows下估计需要用Cygwin才能访问。 REST接口:无 http读文件:NameServer提供访问。 |
| seaweedfs |
功能强大,似乎非常有潜力,中文资料少。Doc中说"中通快递"在用。 由于没用过,运维不好说是否方便。 主页:https://github.com/chrislusf/seaweedfs 部署与使用说明:http://blog.chinaunix.net/uid-25057421-id-5676348.html |
key-value 方式存放。 可以上传到指定目录。所以研发/测试环境可以共用同一台文件服务器。 filer支持文件列表,但不支持FUSE |
集群由多台master与多台volume服务器组成。volume之间的复制行为由复制策略所决定。 支持多机房,多种复制策略。 |
PB级存储方案 增加volume服务器能增加容量,但有效增加多少与复制策略有关。 |
支持预压缩成gzip格式文件,直接吐流成gzip | 支持etag,If-Modified-Since等 |
语言SDK:实际所有SDK上都是通过REST接口访问。有Java版本。 REST接口:volume与filer服务器提供不同层级的接口,volume是key-value方式的,filer是类似目录的方式。 http读文件:filer服务器提供 |
综合来说,想简单易上手,seaweedfs的生态圈比较齐全,而且作者一直在更新。FastDFS也是不错的选择。
DFS 分布式文件系统 选型笔记的更多相关文章
- Hadoop学习笔记【分布式文件系统学习笔记】
分布式文件系统介绍 分布式文件系统:Hadoop Distributed File System,简称HDFS. 一.HDFS简介 Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(c ...
- 在Hadoop分布式文件系统的索引和搜索
FROM:http://www.drdobbs.com/parallel/indexing-and-searching-on-a-hadoop-distr/226300241?pgno=3 在今天的信 ...
- 笔记之分布式文件系统(DFS)
不知何故,老外都挺喜欢使用DFS,但是国内公司用这个的不多.一个具体的需求就是,备份服务器在国外,所以启用DFS把国内的数据同步一份到国外进行备份.最近有机会接触DFS,把一些心得体会记录一下. 1. ...
- 大数据学习笔记2 - 分布式文件系统HDFS(待续)
分布式文件系统结构 分布式文件系统是一种通过网络实现文件在多台主机上进行分布式存储的文件系统,采用C/S模式实现文件系统数据访问,目前广泛应用的分布式文件系统主要包括GFS和HDFS,后者是前者的开源 ...
- Dubbo入门到精通学习笔记(八):ActiveMQ的安装与使用(单节点)、Redis的安装与使用(单节点)、FastDFS分布式文件系统的安装与使用(单节点)
文章目录 ActiveMQ的安装与使用(单节点) 安装(单节点) 使用 目录结构 edu-common-parent edu-demo-mqproducer edu-demo-mqconsumer 测 ...
- 分布式文件系统之MooseFS----介绍
前一段公司因为nfs存储的问题,做了一段时间的调研.最终虽然有nfs高可用方案(nfs+drbd+heartbeat),但是在nfs故障切换的时候会出现 2 分钟左右的延时.这样子...就开始了对分布 ...
- 分布式文件系统 - FastDFS 简单了解一下
别问我在哪里 也许我早已不是我自己,别问我在哪里,我一直在这里. 突然不知道说些什么了... 初识 FastDFS 记得那是我刚毕业后进入的第一家公司,一个技术小白进入到当时的项目组后,在开发中上传用 ...
- HDFS分布式文件系统资源管理器开发总结
HDFS,全称Hadoop分布式文件系统,作为Hadoop生态技术圈底层的关键技术之一,被设计成适合运行在通用硬件上的分布式文件系统.它和现有的分布式文件系统有很多共同点,但同时,它和其他的分布式 ...
- Hadoop 分布式文件系统:架构和设计
引言 Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统.它和现有的分布式文件系统有很多共同点.但同时,它和其他的分布式文件系统 ...
随机推荐
- HUST 1605 Gene recombination
简单广搜.4进制对应的10进制数来表示这些状态,总共只有(4^12)种状态. #include<cstdio> #include<cstring> #include<cm ...
- Memcached源码分析之请求处理(状态机)
作者:Calix 一)上文 在上一篇线程模型的分析中,我们知道,worker线程和主线程都调用了同一个函数,conn_new进行事件监听,并返回conn结构体对象.最终有事件到达时,调用同一个函数ev ...
- .NET运行机制
.NET运行机制 .NET框架是一个多语言组件开发和执行环境,它提供了一个跨语言的统一编程环境..NET框架的目的是便于开发人员更容易地建立Web应用程序和Web服务,使得Internet上的各应 ...
- 获取IIS版本
近日,有一项目要分别获取iis6.0和7.5,然后对进程进行操作~ 研究良久,有以下办法获取iis版本. 代码: DirectoryEntry getEntity = new DirectoryEnt ...
- [Angular Tutorial] 6-Two-way Data Binding
在这一步中,您将会添加一个新特性来使得您的用户可以控制电话列表中电话的顺序,动态改变顺序是由创建一个新的数据模型的特性实现的,将它和迭代器绑定在一起,并且让数据绑定神奇地处理下面的工作. ·除了搜索框 ...
- Linux_System11
1.查看/var目录的大小:1)ll -hd /var 查看目录的实际大小2)du -sh /var 查看目录所占磁盘空间大小修改权限:chmod 750 hunan修改属主和属组:groupadd ...
- 升级R版本后,更新Package
升级R版本后,若重新安装所有的package将非常麻烦,可以尝试运行一下程序: 1)在旧版本中的R中运行 #--run in the old version of R setwd("C:/T ...
- KMP算法之查找模式串在源串中出现的次数
问题描述: 给定两个字符串T, P.查找字符串P在字符串T中出现的次数. 解决方法: 典型的KMP算法的题目,在此使用的KMP算法为算法导论上介绍的算法.下一篇文章将详细介绍KMP算法的计算过程. 题 ...
- 用蓝牙芯片CC2541/CC2540实现一个智能恒温箱
最近突然想自己做一个智能小冰箱玩一玩,于是决定动手试一试. 成品效果图 原材料 半导体制冷片一只 散热风扇 12V电源一台 智能恒温箱电路板 控制板的PCB图 原理图 供电部分原理图 制冷片控制部分原 ...
- PHP 一致性哈希算法的一种简单实现
在分布式系统中,如果某业务可以由多个相同的节点处理,很容易想到用HASH的方式将业务请求分散到这些节点处理,比如memecache缓存等分 布式集群应用,如果只是简单的使用,不涉及用户用户状态等信息, ...