# FastCFS -- a high performance general distributed file system for databases, K8s and KVM etc.
English | [Chinese](README-zh_CN.md)
## 1. About
FastCFS is a general distributed file system with strong consistency, high performance, high availability and supporting 10 billion massive files.
FastCFS can be used as the back-end storage of databases (MySQL, PostgresSQL, Oracle etc.), K8s, KVM, FTP, SMB and NFS.
### Main Features
* High performance on the premise of strong data consistency: performance is more better than ceph
* Fully compatible with POSIX, supporting file lock and 10 billion massive files
* High availability: no single point & automatic failover
* Easy to use:
* simple and efficient architecture and native implementation
* independent of third-party components
* built-in operation and maintenance tools
* Strong random write performance: FCFS allocates space based on the trunk file, converts random writes from the client to sequential writes
### Classical Application Scene
* **Database**: supports two storage methods (conventional exclusive data and high-level shared data) and database cloudification
* **File Storage**: documents, pictures, videos, etc., FastCFS is easier to integrate with general software than the object storage
* **Unified Storage**: database and file storage share a storage cluster, which significantly improves the utilization of storage resources
* **High Performance Computing**: FastCFS with high reliability and high performance is naturally suitable for the HPC scene
* **Video monitoring**: smooth writing for multi-channel videos with HDD such as SATA because FastCFS uses sequential writing approach
## 2. Current Version: V4.2
## 3. Supported Platforms
* Linux: Kernel version >= 3.10 (Full support, >= 4.18 is recommended)
* MacOS or FreeBSD (Only server side)
## 4. Dependencies
* [libfuse](https://github.com/libfuse/libfuse) (version 3.9.4 or newer, 3.10.5 is recommended)
* [Python](https://python.org/) (version 3.5 or newer)
* [Ninja](https://ninja-build.org/) (version 1.7 or newer)
* [gcc](https://www.gnu.org/software/gcc/) (version 4.7.0 or newer)
* [libfastcommon](https://github.com/happyfish100/libfastcommon) (tag: V1.0.68)
* [libserverframe](https://github.com/happyfish100/libserverframe) (tag: V1.1.28)
* [libdiskallocator](https://github.com/happyfish100/libdiskallocator) (tag: V1.1.2)
* [fastDIR](https://github.com/happyfish100/fastDIR) (tag: V4.2.0)
* [faststore](https://github.com/happyfish100/faststore) (tag: V4.2.0)
* [FastCFS](https://github.com/happyfish100/FastCFS) (tag: V4.2.0)
## 5. Installation
### 5.1 DIY installation
you can use [Cluster Operation Tool](docs/fcfs-ops-tool.md) to deploy FastCFS
step by step please see [INSTALL](docs/INSTALL.md)
recommend to execute libfuse_setup.sh for compiling and installing libfuse
### 5.2 easy installation
libfastcommon, libserverframe, fastDIR, faststore and FastCFS can be compiled, installed and auto configurated by fastcfs.sh
fastcfs.sh can automatically pull or update above six projects codes from GitHub, compile and install according to dependency orders, and automatically generate cluster related configuration files according to the config templates.
```
git clone https://github.com/happyfish100/FastCFS.git; cd FastCFS/
```
fastcfs.sh usage:
```
* install: pull/update codes from gitee, then make and install
* config: copy config files and configure them with local ip
* start | stop | restart: for service processes control
```
one click to build (deploy and run) single node demo environment (MUST run by root):
```
./helloWorld.sh
```
or execute following commands (MUST run by root):
```
./fastcfs.sh install
./fastcfs.sh config --force
./fastcfs.sh restart
```
now you can see the mounted path of FastCFS by the command:
```
df -h /opt/fastcfs/fuse | grep fuse
```
## 6. Benchmark
FastCFS has huge better performance than Ceph: the IOPS ratio of sequential write is 6.x, sequential read is 2.x, random write is about 2.0.
* [FastCFS vs. Ceph benchmark](docs/benchmark.md)
## 7. K8s CSI Driver
[fastcfs-csi](https://github.com/happyfish100/fastcfs-csi)
## 8. Chinese Relative articles
<a href="https://blog.csdn.net/happy_fish100/" target="_blank">CSDN blog</a>
## 9. TODO List
* [fstore] data recovery after single disk fault (done)
* [fstore] after the machine recovery, the data masters should be rebalanced (done)
* [fauth & fdir & fstore] leader election uses more than half principle to prevent brain-split (done)
* [fauth & fdir & fstore] import public vote node under 2 copies scene to prevent brain-split (done)
* [fdir & fstore] binlog deduplication and historical data deletion (done)
* [fdir & fstore] data submission by majority confirmation to ensure data consistency (done)
* [fdir & fstore] for two replicas, the data submission majority mechanism is intelligent (done)
* [fstore] file read & write performance optimization (done)
* [fdir & api] POSIX compatibility test and improvement (done)
* [fstore] slice storage engine plugin to support massive data with limited memory (done)
* [api] provide Java native API (doing)
* [all] cluster online expansion
* [fstore] hierarchical storage & slice merging: supporting two-level storage, such as SSD + HDD
## 10. Business Support
We provide technical support service and customized development. Welcome to use WeChat or email for discuss.
## 11. Contact us
email: 384681(at)qq(dot)com
WeChat subscription: search "fastdfs" for the related articles (Chinese Only)
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
FastCFS分布式文件系统 v4.3.0.zip (268个子文件)
api 9B
api.c 88KB
papi.c 63KB
fcfs_api_file.c 46KB
service_handler.c 39KB
fuse_wrapper.c 38KB
client_proto.c 38KB
auth_db.c 36KB
cluster_relationship.c 36KB
cluster_relationship.c 29KB
fcfs_api.c 28KB
cluster_handler.c 23KB
server_session.c 20KB
com_fastken_fcfs_FCFSPosixAPI.c 18KB
fcfs_pool.c 18KB
capi.c 17KB
service_handler.c 16KB
test_read_ahead.c 15KB
fcfs_auth_client.c 13KB
client_proto.c 12KB
server_func.c 12KB
global.c 12KB
fcfs_fused.c 11KB
async_reporter.c 11KB
fcfs_user.c 11KB
com_fastken_fcfs_FCFSFile.c 11KB
session_subscribe.c 11KB
cluster_handler.c 10KB
test_papi_copy.c 10KB
simple_connection_manager.c 9KB
fcfs_beachmark.c 9KB
session_sync.c 9KB
global.c 8KB
auth_func.c 7KB
user.c 7KB
service_group_htable.c 7KB
test_file_op.c 7KB
fcfs_authd.c 6KB
fcfs_voted.c 6KB
test_file_copy.c 6KB
common.c 5KB
server_func.c 5KB
fd_manager.c 5KB
storage_pool.c 5KB
client_func.c 5KB
auth_proto.c 5KB
pool_usage_updater.c 5KB
granted_pool.c 5KB
tool_func.c 5KB
groups_htable.c 5KB
posix_api.c 4KB
cluster_info.c 4KB
cluster_info.c 4KB
getgroups.c 4KB
client_func.c 4KB
inode_htable.c 4KB
fcfs_api_util.c 4KB
global.c 4KB
common_handler.c 3KB
common_handler.c 3KB
fcfs_pool_stat.c 3KB
fcfs_active_test.c 3KB
fcfs_auth_for_server.c 3KB
fcfs_api_allocator.c 3KB
vote_proto.c 3KB
fauth_cluster_stat.c 3KB
fvote_cluster_stat.c 2KB
session_regenerate.c 2KB
com_fastken_fcfs_FCFSDirectory.c 2KB
fauth_list_servers.c 2KB
func.c 1KB
client_global.c 726B
dao.c 724B
auth_global.c 707B
vote_global.c 707B
fcfs_global.c 698B
client_global.c 695B
server_global.c 688B
server_global.c 688B
changelog 6KB
compat 3B
fuse.conf 11KB
papi.conf 9KB
server.conf 5KB
server.conf 4KB
fuse.conf 2KB
server.conf 2KB
papi.conf 1KB
cluster.conf 1KB
cluster.conf 992B
cluster.conf 958B
session.conf 836B
server.conf 677B
client.conf 536B
client.conf 470B
cluster.conf 430B
auth.conf 412B
auth.conf 412B
session.conf 145B
client.conf 134B
共 268 条
- 1
- 2
- 3
资源评论
芝麻粒儿
- 粉丝: 6w+
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于C#和NET MAUI开发的音乐播放器+源代码+文档说明+sln.zip
- 基于python+flask+mysql实现的豆瓣电影可视化系统+源代码+文档说明+数据库sql.zip
- 程氏舞曲V4.2程氏舞曲V4.2程氏舞曲V4.2程氏舞曲V4.2
- FPGA读写 AD9708+ AD9280 ADDA实验Verilog逻辑源码Quartus工程文件+文档说明+硬件参考原理图
- 基于CH340C设计USB转TLL串口通信模块PADS 9.5设计硬件(原理图+PCB)文件.zip
- 信号与系统大作业-图像处理 实现了直接滤波法维纳滤波法最小二乘滤波法LR递归法matlab源码.zip
- php-leetcode题解之最小栈.zip
- php-leetcode题解之最长不含重复字符的子字符串.zip
- php-leetcode题解之最长公共前缀.zip
- php-leetcode题解之最小差值.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功