About this project
FastDFS is an open-source, high-performance distributed file system (DFS) designed to handle file storing, syncing, and accessing (uploading and downloading). It addresses high capacity and load balancing challenges, making it suitable for file-based services such as photo sharing and video sharing sites.
Key features include:
- Grouped storage servers with a simple and flexible peer-to-peer structure, eliminating single points of failure
- File IDs generated by FastDFS serve as credentials for file access, removing the need for traditional name servers or meta servers
- Support for large, medium, and small files, including merged storage for small files to handle massive numbers of small files
- Storage servers support multiple disks with data recovery for single disk failures
- An nginx extension module for seamless integration with nginx
- Support for IPv6, NAT networks, and cross-data-center or hybrid cloud deployment
- Read-write separation and cross-data-center disaster backup
- APIs for truncate, append, and modify operations on appender files
- Multi-threaded file upload and download with resume from broken point support
Architecture:
FastDFS operates with two roles: tracker and storage. The tracker handles scheduling and load balancing for file access, while storage servers store files and manage file metadata (key-value pairs like width=1024). Both tracker and storage clusters can have servers added or removed without affecting online services. Storage servers are organized into file groups for high capacity, with servers within a group backing each other up and load balancing. When storage capacity is insufficient, additional groups can be added to expand capacity.
File identification consists of two parts: the group name and the file name.
Client SDKs are available for:
- C Language (included in the source code)
- PHP extension (included in the source code)
- Java SDK (separate repository)
- Go SDK (separate repository)
FastDFS is a lightweight object storage solution. For general distributed file systems requiring strong data consistency for databases, K8s, and virtual machines, FastCFS is recommended as an alternative.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.