Skip to content

FUSE-based File System for Leveraging Flexible Data Placement

Notifications You must be signed in to change notification settings

pingxiang-chen/fuse-fdpfs

Repository files navigation

fuse-fdpfs

FDPFS is a File System in Userspace (FUSE) - based file system that expose FDP SSD's chariteristics to allow ease of use data placement on FDP-enabled SSDs.

How to set up FDPFS

Step 0 Clone the repository

git clone https://github.com/pingxiang-chen/fuse-fdpfs.git

Step 1 Install libfuse 3.16.2

wget https://github.com/libfuse/libfuse/releases/download/fuse-3.16.2/fuse-3.16.2.tar.gz
tar xzf fuse-3.16.2.tar.gz

Follow the README to install libfuse 3.16.2.

Step 2 Install libnvme 1.8

wget https://github.com/linux-nvme/libnvme/archive/refs/tags/v1.8.zip
tar xzf v1.8.zip

Follow the README to install libnvme 3.16.2.

Step 3 Install and Compile Linux 6.7.9

wget https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/snapshot/linux-6.7.9.tar.gz
tar xvf linux-6.7.9.tar.gz

Build and compile linux kernel 6.7.9.

After installed the kernel, install linux headers to your computer, for example:

sudo make headers_install INSTALL_HDR_PATH=/usr

Step 4 Go to FDPFS source code folder and compile FDPFS

cd fuse-fdpfs && make

Switch to superuser

sudo su

Mount FDPFS on FDP SSD.

cd scripts && ./mount_fdpfs.sh

Open another terminal, and switch to sudo user as well, you should be able to see FDPFS exposes the placment identifier as directorys

ls fuse_mount

You should be able to see the following: FDPFS directories

You can try to do simple write based on the placment identifier expose by FDPFS

echo "a" >> p1/a
cat p1/a

You should see the following: FDPFS working

When you check with nvme-cli, you should be able to see there are 2 bytes written to placement identifier 1.

Step 5 Run fio without fuse

cd scripts
sudo fio fdp_write.fio

Step 5 Run fio with fdpfs in background mode

cd scripts && ./mount_fdpfs.sh 1 

Open another terminal, and switch to sudo user as well, you should be able to see FDPFS exposes the placment identifier as directorys

sudo fio test-small-10s-p0-a.fio

About

FUSE-based File System for Leveraging Flexible Data Placement

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages