授权 | 开源 |
大小 | 785.85KB |
语言 | C++ |
经过整整4个月的潜心研发,FastCFS V4.0终于与大家见面了。V4.0主要改进:faststore引入存储插件,存储节点以有限内存(如32GB)支持上百TB的存储空间。如果单机要支持PB级的存储空间,出于性价比考虑,建议存储节点至少配置128GB内存。另外V4.0 对faststore的存储层进行了重构,直接使用底层库 libdiskallocator,这样的做好处是保持一套代码,更容易维护,同时减少出bug的几率。
faststore存储插件以block(4MB的文件块)为单位进行持久化存储,存储该block对应的slice索引;当内存不足时按block进行淘汰。faststore使用slice binlog + block索引持久化的做法,block索引持久化采用的是异步方式。总结一下faststore是否使用存储插件的差异:未使用存储插件只有slice binlog;使用存储插件是slice binlog + 按block组织的slice索引。
V4.0其他小改进:
[fdir] add protocols get_fullname_by_[inode|pname] for fdir_stat(便于调试文件访问权限问题)
[fuseclient] support mount option ro (read-only)(mount的文件系统支持只读模式)
[fstore] file block size use config instead of macro define(默认为4MB的文件block大小支持配置方式)
V4.0修复的bug列表:
[fdir] bugfixed: correct idempotency output when storage engine enabled
[fdir] bugfixed: rename_check with flags S_ISVTX when dest dentry exist
[fstore] bugfixed: must call slice_binlog_set_binlog_start_index(0)
[libfastcommon] bugfixed: fast_mblock_batch_alloc correct return value
[libdiskallocator] trunk_space_log.c: fix redo logic of keep record