FastDFS文件名策略及对小文件的优化
2015-09-11 09:01
453 查看
文章摘自http://os.51cto.com/art/201210/359378.htm
2012-10-09 16:37 wishfly csdn博客 字号:T | T
FastDFS是一个应用级分布式文件存储服务,其采用中心型结构(类似GFS、HDFS、TFS等),主要用于大中型网站存储资源文件。FastDFS具有轻量级,支持高并发放访问,负载均衡,可扩展等优点。而FastDFS最大的亮点就是对小文件的存储性能较好,这主要来自于其文件名策略。
AD:
FastDFS是一个应用级分布式文件存储服务,其采用中心型结构(类似GFS、HDFS、TFS等),主要用于大中型网站存储资源文件。FastDFS具有轻量级,支持高并发放访问,负载均衡,可扩展等优点。而FastDFS最大的亮点就是对小文件的存储性能较好,这主要来自于其文件名策略。
1.小文件存储性能优化
小文件的性能瓶颈主要来自于对元数据服务器(如FastDFS中的TrackerServer或TFS中的NameServer)的访问,因为当文件本身大小很小时,元数据存储所占空间与文件内容存储所占空间的比例就变得较大,访问元数据所消耗资源与访问文件内容所消耗资源的比例也变得较大。因此,通常对小文件存储的优化方法主要有两大类思路:一是减少访问元数据的次数,比如Cache预取;二是减少元数据所占的存储空间,比如FastDFS使用的文件名策略。
2. FastDFS文件名策略
FastDFS中的文件名是在向StorageServer存储文件时由系统指定的,文件名中包含了VolumeID和FileID。也就是说,当客户要读取某个文件时,通过在客户端对文件名进行解析,就可以知道该文件存储在哪个Volume上和它在StorageServer中的FileID。但是此时用户还不能读取文件,因为他不知道Volume内各个StorageServer的ip地址,也不知道应该从Volume内的哪个StorageServer中读取。所以用户需手持欲访问的文件的VolumeID向TrackerServer询问,TrackerServe会均衡当前各StorageServer的IO负载状况,返回一个最佳的StorageServer的ip地址。最后用户与该StorageServer连接,出示欲访问文件的FileID,StorageServer上会维持一个FileID对应偏移量的表,从而得到欲访问文件的偏移量。
可见,FastDFS的文件名策略将文件存储位置信息隐含在文件名中,从而减少了元数据量,达到了优化小文件存储性能的作用。
[align=right]【责任编辑:黄丹 TEL:(010)68476606】[/align]
2012-10-09 16:37 wishfly csdn博客 字号:T | T
FastDFS是一个应用级分布式文件存储服务,其采用中心型结构(类似GFS、HDFS、TFS等),主要用于大中型网站存储资源文件。FastDFS具有轻量级,支持高并发放访问,负载均衡,可扩展等优点。而FastDFS最大的亮点就是对小文件的存储性能较好,这主要来自于其文件名策略。
AD:
FastDFS是一个应用级分布式文件存储服务,其采用中心型结构(类似GFS、HDFS、TFS等),主要用于大中型网站存储资源文件。FastDFS具有轻量级,支持高并发放访问,负载均衡,可扩展等优点。而FastDFS最大的亮点就是对小文件的存储性能较好,这主要来自于其文件名策略。
1.小文件存储性能优化
小文件的性能瓶颈主要来自于对元数据服务器(如FastDFS中的TrackerServer或TFS中的NameServer)的访问,因为当文件本身大小很小时,元数据存储所占空间与文件内容存储所占空间的比例就变得较大,访问元数据所消耗资源与访问文件内容所消耗资源的比例也变得较大。因此,通常对小文件存储的优化方法主要有两大类思路:一是减少访问元数据的次数,比如Cache预取;二是减少元数据所占的存储空间,比如FastDFS使用的文件名策略。
2. FastDFS文件名策略
FastDFS中的文件名是在向StorageServer存储文件时由系统指定的,文件名中包含了VolumeID和FileID。也就是说,当客户要读取某个文件时,通过在客户端对文件名进行解析,就可以知道该文件存储在哪个Volume上和它在StorageServer中的FileID。但是此时用户还不能读取文件,因为他不知道Volume内各个StorageServer的ip地址,也不知道应该从Volume内的哪个StorageServer中读取。所以用户需手持欲访问的文件的VolumeID向TrackerServer询问,TrackerServe会均衡当前各StorageServer的IO负载状况,返回一个最佳的StorageServer的ip地址。最后用户与该StorageServer连接,出示欲访问文件的FileID,StorageServer上会维持一个FileID对应偏移量的表,从而得到欲访问文件的偏移量。
可见,FastDFS的文件名策略将文件存储位置信息隐含在文件名中,从而减少了元数据量,达到了优化小文件存储性能的作用。
[align=right]【责任编辑:黄丹 TEL:(010)68476606】[/align]
相关文章推荐
- 第二周项目1--C++语言中函数参数传递的三种方式
- 第2周项目2--程序的多文件组织
- OC10_类的扩展
- 解放程序猿宝贵的右手(或者是左手) ——Android自动化测试技巧
- 用POI导出excel时,较长的数字不想被自动变为科学计数法的解决方式(转)
- 聊聊我的高效编程之路
- OGRE的实例框架相比FactoryMethod更像Bridge模式(含工厂模式)
- VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x
- 在线教学、视频会议 Webus Fox(3) 客户端开发手册
- 静态链接库LIB和动态链接库DLL的区别
- Understanding Explain Plan
- *第二周*数据结构实践项目二【多文件系统】
- centos下yum安装lamp
- 依赖管理
- Chromium Graphics: GPUclient的原理和实现分析之间的同步机制-Part I
- MySQL 高可用架构在业务层面的应用分析
- lightning mdb 源代码分析(1)
- 项目2 - 程序的多文件组织
- 第二周 项目三 体验复杂度
- Leetcode: Strobogrammatic Number