#b-tree #fs #mem

bin+lib btfs

一个简单的内存文件系统

4 个版本

0.0.4 2019 年 10 月 11 日
0.0.3 2019 年 10 月 10 日
0.0.2 2019 年 10 月 10 日
0.0.1 2019 年 10 月 10 日

#1109文件系统

MIT/Apache

24KB
610

btfs

使用 b-trees 的基本简单内存文件系统。

FUSE 示例

设置 FUSE

$ apt-get install fuse libfuse-dev

# Make sure fuse.conf has allow_root and user_allow_other set:
$ cat /etc/fuse.conf
allow_root
user_allow_other

测试系统

$ RUST_LOG=trace cargo run --bin fuse /tmp/test

卸载

$ umount /tmp/test

使用 filebench 进行测试

安装 filebench

$ git clone https://github.com/filebench/filebench.git
$ libtoolize
$ aclocal
$ autoheader
$ automake --add-missing
$ autoconf
$ ./configure
$ make

运行基准测试

$ mkdir -p /tmp/fbtest
$ cargo run --release --bin fuse -- /tmp/fbtest/ &

$ echo 0 > /proc/sys/kernel/randomize_va_space
$ ./filebench -f randomrw.f

$ umount /tmp/fbtest

lib.rs:

使用 Rust 和 BTreeMap 数据结构编写的简单内存文件系统的实现。

此代码受 https://github.com/bparli/bpfs 启发,并修改为与节点复制一起用于基准测试。

依赖项

~3–11MB
~114K SLoC