For example, I'm using FUSE to construct my own userspace filesystem, in which small files stored on SSD and big files stored on HDD. I want the metadata(inodes and dirents, etc) of the files on HDD to be stored on SSD. What should I do? I'm new to this field. Need help! Thanks!
How to change storage location of file metadata while using FUSE?
53 Views Asked by yilin cai At
1
There are 1 best solutions below
Related Questions in LINUX
- Is there some way to use printf to print a horizontal list of decrementing hex digits in NASM assembly on Linux
- Why does Hugo generate different taxonomy-related HTML on different OS's?
- Writes in io_uring do not advance the file offset
- Why `set -o pipefail` gives different output even though the pipe is not failing
- what really controls the permissions: UID or eUID?
- Compiling eBPF program in Docker fails due to missing '__u64' type
- Docker container unable to make HTTPS requests to external API
- Whow to use callback_query_handler in Python 3.10
- Create kea runtime directory at startup in Yocto image
- Problem on CPU scheduling algorithms in OS
- How to copy files into the singularity sandbox?
- Android kernel error: undefined reference to `get_hw_version_platform'
- Is there a need for BPF Linux namespace?
- Error when trying to execute a binary compiled in a Kali Linux machine on an Ubuntu system
- Issue with launching application after updating ElectronJs to version 28.0.0 on Windows and Linux
Related Questions in FILESYSTEMS
- Where exactly is the first data sector on a FAT file system?
- `df` command not capturing entire output in perl
- Is it possible to mount a logical volume without wiping the data?
- Speed up search of remote directories
- How to change the directory file system without losing files?
- Flutter SDK: Files Deleted Automatically (e.g., dart.exe), Errors in Android Studio
- How to store metadata for a UTF-8 text file cross-platform?
- fsck error on boot: dev/mapper/ubuntu--vg-ubuntu--lv: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY
- rouble with mounting Python code to FUSE: No response and prolonged processing ---
- mkfs.erofs erofs: failed to lookup selabel
- How to deny user access MacFuse file system by the really path
- Is it faster to read a file on an NVMe using threads?
- list folders containing mp3 files using the Capacitor Filesystem
- How to use xdg-open in bwrap environment to open dir in the unsandboxed filesystem
- How to provide content of (locally) encrypted files to the iOS and macOS system
Related Questions in STORAGE
- Worth it to access data by blocks on modern OS/hardware?
- Remove files with LastWriteTime
- spring security + form login + redis session storage -> keep coming out anonymous User
- How to redirect to another page eg main.py after user fill in and click register button and store it on .ini local database on python using kivy
- JSON document based storage Flutter(android and iOS)
- Invoke-WebRequest : Cannot validate argument on parameter 'Uri' Brocade switch FOS REST API
- How to set storage path for main domain from sub domain - Laravel
- Could converting a JPG to PNG or PPM be a good idea?
- How to restart automatically the application after clearing its storage?
- How to change an item in a list forever?
- Internal Storage Video Downloder
- Flask Download File with Get Request
- How to initialize a data storage system
- Slow D3DX11CreateShaderResourceViewFromFile relatively CrystalDiskMark speed
- How to store and build paths that depend on user input
Related Questions in FUSE
- rouble with mounting Python code to FUSE: No response and prolonged processing ---
- Using fuse crate with macFuse installed
- FUSE deadlocks after 10 threads
- Implementing a passthrough file system (fuse-fusepy)
- How to debug FUSE filesystem when it is running in daemon mode?
- How to make rust send a flush system call when writing data?
- How to allow pass kernel options to libfuse?
- sshfs does not seem to work in Colab Enterprise notebook
- libfuse3 low level API hangs when reading file
- Blueprint (XML DSL) in Apache Camel does not let me use PATCH
- How to unit test a FUSE filesystem implementation?
- Run AWS mount-s3 cli tool as a non-root Docker container and/or Kubernetes pod
- How can multiple mount points created with LIBFUSE2 be displayed in the network location or sidebar of the file manager?
- How to change storage location of file metadata while using FUSE?
- Folder creation issue when unzipping files in mounted directory using Fuse on Linux
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
One thing you could do is a mirrored system where all the directory structure exist on both disks. All fuse functions do the same thing in both disks (mkdir, open, unlink, etc).
The only difference would be that I/O will be done only on the slow disk. Meaning read(), write(), truncate() etc.
Since you want fast attribute read, meaning fast fuse getattr() and fuse readdir(), you would want to refrain from going to the slow disk to get the file sizes. You could, at end of each write()+close() and truncate(), set an extended attribute on the matching SSD file with the file size as it is in the HDD file, to be used in getattr() and readdir().
PS:
For a fake file size in SSD, a more elegant solution would be to fallocate() it in a sparse way to the same size as on the hard disk. That way the file size would appear correct although the number of disk blocks would remain zero.