block storage file storage - Murray-LIANG/forgetful GitHub Wiki
Block Storage and File Storage
Block Storage
-
tgt framework could be used to implement a tgt server in user space.
-
You could customize a new backend store type which could, for example, send the SCSI message in customized format via a socket. Then a user space program listening on the socket could deserialize from customized format and do some additional tasks on the SCSI message like multi-write them to different replicas.
The customized tgt backend store: https://github.com/rancher/tgt and https://github.com/rancher/liblonghorn.
File Storage
- Use FUSE
FUSE (Filesystem in Userspace) is a Linux kernel filesystem that sends the incoming requests over a file descriptor to userspace. FUSE is a protocol.
There is a FUSE framework in golang: https://github.com/bazil/fuse.
And have a try on a read-only filesystem exported from a zip file: https://github.com/Murray-LIANG/zipfs.