ctFS is a file system that Replaces File Indexing with Hardware Memory Translation through Contiguous File Allocation for Persistent Memory.
Code author: Robin Li
Access to the paper and presentation
It's a prototype and meant to prove the concept and demonstrate. I will maintain it and fix bugs progressively. You are welcome to test it and leave me feedback. Any contribution is much appreciated. You are also free to change and reuse the code as you wish.
- Hardware: Intel Xeon CPU equiped with Intel Optan NVDIMM
- Software: Ubuntu 20.04 with all Kernel compile essentials
- System: ThinkSystem SR570
- CPU: Intel(R) Xeon(R) Silver 4215 CPU @ 2.50GHz
- DRAM: 6 x 16GB DDR4 RDIMM
- PMEM: 2 x 128GB Intel Optane DCPMM
- Kernel: 5.7.0-rc7+
- Distribution: Ubuntu Server 20.04 LTS
- Clone the Linux kernel and checkout 5.11.0-46-generic
- Copy the files in /script/* to the kernel repo kernel/drivers/dax/
- Compile and install the kernel
- Compile ctFS user part (ctU):
make
- Compile mkfs
cd test make mkfs
- Compile fstest
make fstest cd ..
- Reboot to the compiled kernel and configure the PMEM:
script/set_nvdimm.sh
- Format
test/mkfs
- Run with TEST_PROGRAM:
script/run_ctfs.sh TEST_PROGRAM
- Test with fstest:
Run with -h to show the help of fstest. The path to ctFS must start with "\", otherwise it will be bypassed to the regular file system.
cd test script/run_ctfs.sh test/fstest -a -p "\\/test"
Please feel free to reach me: [email protected].