Deduplication based filesystem using FUSE
Data deduplication is a technique for eliminating duplicate copies of repeating data, by storing a copy of the repeated block only once (Read more: Data Deplication). This project aims to create a data-duplication based filesystem with the aid of the FUSE interface.
We partition the file into fixed sized blocks and store the hash computed using SHA-256 in a sqlite database.
No hash collision has been handled, as chances are of a collision occuring is negligible (Read more: Birthday attack).
NOTE:
This project is solely for educational purposes.
LittleFS.py [-h] [-bs BLOCK_SIZE] [-db DATABASE_FILE] root mount
positional arguments:
root root directory
mount directory to be mounted as the LittleFS
optional arguments:
-h, --help show this help message and exit
-bs BLOCK_SIZE, --block_size BLOCK_SIZE
Block size for deduplication check. NOTE that this
cannot changed once the filesystem is initialised for
the first time
-db DATABASE_FILE, --database_file DATABASE_FILE
$ mkdir rootdir/
$ mkdir mountdir/
$ python3 LittleFS.py rootdir/ mountdir/