YuihaFS: Creating Versions for Each File in the File System
Fumiya Higuchi, Ichitoshi Takehara, Hitoshi Kamei, Keizo Saisho · 2024
File versioning is an important feature to protect data from miss operations, and it also enables end users to utilize past data. The feature on a file server is realized by using a snapshot function of file systems. The function creates multiple fixed images of a file system volume, called snapshots, by holding differential data between images. So, the function is effective way for file versioning due to reducing data for the snapshots. However, with the progress of multimedia, AI, and digital transformation (DX), the total amount of data rapidly grows. The snapshot function of conventional file systems targets the file system volumes to create the snapshots; thus, it includes the unnecessary files for a snapshot. Consequently, the disk usage for the differential data increases, and the amount of data for the file system volumes glows dramatically. In this study, we propose a file system with novel snapshot function, called YuihaFS. The proposed file system reduces the disk usage for the differential data by allowing users and applications to select a file for creating snapshots. With this new property, YuihaFS can reduce the amount of differential data for snapshots by avoiding creating unnecessary snapshots. In this paper, we describe the design and implementation of YuihaFS. We also present and discuss the evaluation. In the evaluation, we assume that the snapshots of the office documents and the log files are created. We compare YuihaFS with nilfs log-structured file system by estimation of the amount of differential data based on microbenchmarks of appending and overwriting. From the evaluation, YuihaFS reduces the disk usage compared to nilfs. The amount of differential data of YuihaFS is less a maximum of 40 % than nilfs.