基于 S3 的 Filey 系统:Goofys

jopen 8年前

Goofys 是使用 Go 编写,基于 S3 接口的 Filey 系统。

Goofys 允许你挂载一个 s3 bucket 作为一个 Filey 系统。为什么是 Filey 系统而不是 File 系统?因为 goofys 优先考虑性能而不是 POSIX。

使用:

$ go get github.com/kahing/goofys  $ go install github.com/kahing/goofys  $ cat > ~/.aws/credentials  [default]  aws_access_key_id = AKID1234567890  aws_secret_access_key = MY-SECRET-KEY  $ $GOPATH/bin/goofys <bucket> <mountpoint>

基准测试:

使用 goofys--stat-cache-ttl 0 --type-cache-ttl 0和 s3fs -ostat_cache_expire=1模拟运行。基准测试详情请看 bench.sh,同时提供 Raw data。测试是在 EC2 c4.xlarge 下运行的:

operation goofys s3fs speedup
Create 1000 files 49.4 +/- 1.5s 146.0 +/- 15.0s 2.96 +/- 0.32x
Unlink 1000 files 28.1 +/- 0.8s 36.7 +/- 6.2s 1.31 +/- 0.22x
ls with 1000 files 0.21 +/- 0.04s 3.5 +/- 0.6s 16.9 +/- 4.6x
Create 1000 files (parallel) 21.5 +/- 0.4s 134.2 +/- 9.1s 6.2 +/- 0.4x
Unlink 1000 files (parallel) 28.18 +/- 0.35s 38.1 +/- 4.2s 1.35 +/- 0.15x
Write 1GB 51.4 +/- 4.3MB/s 29.7 +/- 2.9MB/s 1.73 +/- 0.22x
Read 1GB 58.9 +/- 4.7MB/s 65.7 +/- 18.9MB/s 0.90 +/- 0.27x
Time to 1st byte 0.0169 +/- 0.0023s 0.98 +/- 0.06s 58.3 +/- 8.7x



 

项目主页:http://www.open-open.com/lib/view/home/1445346227413