The storage system of sealos,aim to be a high-performance,high reliability and auto-scaling distributed file system which suit to cloud native.
The architecture of sealfs is non centralized, and there is no single metadata node. We hope to improve the read and write performance as much as possible and solve the problem of storing large amounts of small files.
Sealfs consists of three components -Server:Responsible for storing files and metadata。Metadata is undoubtedly the hot file of the distributed file system, so we store data and metadata in the way of separate disks. Users can choose better hardware to store metadata. -client:It implements the file system in user mode, intercepts file requests, and stores and addresses them through the hash algorithm. -manager:Responsible for Coordinate cluster.
User Mode in Overall Chain
We hope to create an overall chain user mode distributed file storage system from client file request hijacking to network to storage with specific hardware, so as to obtain the ultimate performance experience.
More designs can be referred to:
At present, we are committed to improving the performance of the whole link. For other aspects of construction, such as high reliability and high availability, the priority will be lower.
- first version Function:
- fuse file system interface
- System call hijacking(file system of user mode)
- location algorithm
- batch process
- bypass file system
- file Storage
- disk manager
- catalogue manager
- Metadata persistent memory storage
- file index
- file lock
- Persistent data structure
- heart manager
- socket network
- function test
mkdir ~/fs ./target/debug/server & ./target/debug/client ~/fs
create & write file
echo "test" >> ~/fs/test.log