fastdfs小文件存储学习总结

Linux通过node存储⽂件信息,但inode也会消耗硬盘空间,所以硬盘格式化的时候,操作系统⾃动
将硬盘分成两个区域。
1. ⼀个是数据区,存放⽂件数据;
2. 另⼀个是inode区(inode table),存放inode所包含的信息,描述文件的信息。
inode也是占内存的,⼀般是 128 字节或 256 字。如果一个磁盘中小文件比较多,每个小文件独立存放的话,会有很多inode,占用不小的内存,并且在对文件增删改查的时候,需要遍历的文件比较多,效率低。
所以将多个小文件合并存放,将多个小文件合并成一个文件存放。至于小文件是多大,可自行定义。
小文件存储原理:将多个小文件合并成一个文件,称为一个trunk。一个trunk的大小可自行设定。
一个trunk中存放多个小文件,每个小文件前有一个head描述小文件的信息。一个trunk结构如下:
,红色部分为小文件head。
如何在磁盘中查找小文件呢?当开启小文件存储后,上传成功后返回给客户端的fileid会发生变化。
文件名结构如下:

 

 文件名中存放着文件所在的trunk ID、所占内存大小以及文件在trunk中的起始位置。可通过这些信息找到文件所在位置。

采用一个平衡树对trunk中的空闲位置进行管理。同样大小的空间采用链表进行连接,当有小文件加入的时候,通过平衡树搜索合适大小的位置,对于多余的空间,会再次作为空闲空间加入平衡树。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值