FastDFS合并存储_第1页
FastDFS合并存储_第2页
FastDFS合并存储_第3页
FastDFS合并存储_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

海量小文件将严重影响系统的性能,主要是因为文件数过大,文件系统对文件寻址的开销比较大,这会导致文件系统性能低下,甚至导致死机等现象。FastDFS 3.0将对小文件进行优化。使用业界普遍采用的做法,将多个小文件存储到一个较大的文件中,比如64MB的文件,这个存储实体文件不妨称作trunk file。因为对小文件采用trunk file存储方式,FastDFS 3.0将对trunk file可使用的区块进行管理,管理方式和内存管理类似。对于大于一定大小的文件,比如阀值为trunk file size的4/5,则不再保存到trunk file中,直接保存为一个单独的文件。storage server内置trunk manager的功能,在storage server上对trunk file可用区块进行管理。在一个时间点,一个group只有一台storage server提供管理和查询服务,简称trunk manager。该group的其余storage server作为备机,只接收binlog。如何做到一个group只有一台storage server提供trunk管理服务,这个由tracker server统一协调完成。如果承担trunk manager那台storage server挂了,本组其余的一台storage server会自动升级为trunk manager,接替其工作。当storage server要存储一个小于阀值的文件(也就是小文件)时,先询问trunk manager,trunk manager返回存储到的trunk file文件名,以及存储起始的偏移量。当storage server成功完成文件存储后,向trunk manager报告。如果报告失败,则文件上传当失败处理。trunk manager管理方案说明:trunk manager将trunk相关数据,全部存放到内存中管理。对于trunk更新操作(包括增加和删除两种),会记录到单独的binlog文件中,有专门的线程将binlog文件同步给本组的其他storage server。为了节约内存空间,trunk file文件名,会单独存放。trunk file可用空间链表中,trunk filename采用指针方式指向。当storage server向trunk manager请求分配文件空间时,trunk manager会先在内存中扫描有没有满足条件的可用trunk,如果有,那么直接返回。否则,创建一个trunk file,然后将新的trunk file记录到binlog和内存中,并完成分配。为了提高分配效率,trunk manager将采取slot的方式对可用空间进行组织,比如初始的字节数为256,最大字节数为32MB,每次以2倍的速度递增,形如:256,512, 1K, 2K, 4K,。,1M,2M,4M,。,16M,32M在slot 256中的可用空间,是 = 256,= 512,= 1K,AVL树是只存在内存还是内存和硬盘都有?只保存在内存中。文件平均只有10K,但数量达到10亿级别,频繁删除,能存储吗?可以。可能需要分为多个group。有存储大量小文件实际案例吗?小文件合并存储这个特性是去年6月份发布的,目前还没有收到使用这个特性的用户反馈。Q但是我把上传的文件全部删除完后,发现服务器上的trunk文件无法删除。依然占用着磁盘空间。roothadoop 00# ls000001000007000013000019000025000031000037000043000049000055000002000008000014000020000026000032000038000044000050000056000003000009000015000021000027000033000039000045000051请问作者,这些trunk文件用啥接口可以删除。我认为这是fastdfs的一个BUG,理论上我将trunk文件中保存的小文件全部删除完成后,fastdfs应该自动清除trunk文件。A删除文件后,trunk文件中的对应的空间会释放的。下次再上传文件,就可以利用已经释放的空间。即使一个trunk文件中的所有文件都已经被删除,该trunk文件也不会被物理删除掉。但其空间是可以被利用的。Q其中“current trunk file id = 140”值在上传文件的过程中一直在增大,理论上来说,如果trunk文件内容被删除后,新上传文件如果插入到了空的trunk文件中的话,这个值应该不会成倍的增加才对呀,因为我每次都是上传5110个文件,然后将其删除,然后再重新上传。每次上传的文件都是一样的。A这个现象和trunk内文件空间分配策略有关。目前的分配策略,会导致释放后的空间,不能被同样大小的文件使用,而只能被小一些的文件使用。Q:看了介绍,3.x的fastdfs把许多小文件合并存储在一个trunk里,我有个疑问: 删除一个小文件操作,后台的具体处理细节是怎么样的,会不会导致trunk中有“空洞”,抑或是删除trunk中的一个小文件后,会重新搬移后续的小文件,保证存储空间上的连续?A:被

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论