ResumenInstalaciónUsoBenchmarkLicenciaEstado actualReferencias
Goofys es un sistema de archivos Amazon S3 similar a POSIX de alto rendimiento escrito en Go
Visión general
Goofys le permite montar un depósito S3 como un sistema de archivos.
Es un sistema de archivos en lugar de un sistema de archivos porque goofys se esfuerza primero por el rendimiento y después por POSIX. En particular, las cosas que son difíciles de admitir en S3 o que se traducirían en más de un viaje de ida y vuelta fallarían (escrituras aleatorias) o se falsificarían (sin permiso por archivo). Goofys no tiene un caché de datos en el disco (catfs de pago) y el modelo de consistencia está casi abierto.
Instalación
-
En Linux, instálelo a través de archivos binarios prediseñados. Es posible que también deba instalar un fusible si desea montarlo al inicio.
-
En macOS, instale a través de Homebrew:
$ brew cask install osxfuse
$ brew install goofys
- O crea desde la fuente con Go 1.10 o posterior:
$ export GOPATH=$HOME/work
$ go get github.com/kahing/goofys
$ go install github.com/kahing/goofys
Uso
$ cat ~/.aws/credentials
[default]
aws_access_key_id = AKID1234567890
aws_secret_access_key = MY-SECRET-KEY
$ $GOPATH/bin/goofys <bucket> <mountpoint>
$ $GOPATH/bin/goofys <bucket:prefix> <mountpoint> # if you only want to mount objects under a prefix
Los usuarios también pueden configurar las credenciales a través de la AWS CLI o el AWS_ACCESS_KEY_ID
y AWS_SECRET_ACCESS_KEY
Variables de entorno.
Para montar un depósito S3 al inicio, asegúrese de que la credencial esté configurada para root
y puede agregar esto a /etc/fstab
:
goofys#bucket /mnt/mountpoint fuse _netdev,allow_other,--file-mode=0666,--dir-mode=0777 0 0
Consulte también: Instrucciones para Azure Blob Storage, Azure Data Lake Gen1 y Azure Data Lake Gen2.
¿Tienes más preguntas? Echa un vistazo a las preguntas que otras personas hicieron
Punto de referencia
Usando --stat-cache-ttl 1s --type-cache-ttl 1s
para tontos
-ostat_cache_expire=1
para s3fs para simular carreras en frío. Los detalles del punto de referencia se pueden encontrar en bench.sh. Los datos sin procesar también están disponibles. La prueba se ejecutó en un EC2 m5.4xlarge en us-west-2a conectado a un depósito en us-west-2. Las unidades son segundos.
Para ejecutar el punto de referencia, configure el rol de instancia de EC2 para poder escribir en $TESTBUCKET
y luego haz:
$ sudo docker run -e BUCKET=$TESTBUCKET -e CACHE=false --rm --privileged --net=host -v /tmp/cache:/tmp/cache kahing/goofys-bench
# result will be written to $TESTBUCKET
Consulte también: resultado de referencia almacenado en caché y resultado en Azure.
Licencia
Copyright (C) 2015 – 2019 Ka-Hing Cheung
Con licencia de Apache License, versión 2.0
Estado actual
goofys ha sido probado bajo Linux y macOS.
Lista de comportamientos/limitaciones no POSIX:
- solo se admiten escrituras secuenciales
- no almacena el modo de archivo/propietario/grupo
- usar
--(dir|file)-mode
o--(uid|gid)
opciones
- usar
- no es compatible con enlace simbólico o enlace duro
ctime
,atime
es siempre el mismo quemtime
- no poder
rename
directorios con más de 1000 niños unlink
devuelve el éxito incluso si el archivo no está presentefsync
se ignora, los archivos solo se descargan enclose
Compatibilidad con no AWS S3
goofys se probó con los siguientes proveedores que no son de AWS S3:
- Amplidata/WD ActiveScale
- Ceph (por ejemplo: Digital Ocean Spaces, DreamObjects, gridscale)
- EdgeFS
- atmósfera de EMC
- Almacenamiento en la nube de Google
- Minio (limitado)
- OpenStack Swift
- Proxy S3
- escala
- Wasabi
Además, goofys también funciona con los siguientes almacenes de objetos que no son de S3:
- Almacenamiento de blobs de Azure
- Azure Data Lake Gen1
- Azure Data Lake Gen2
Referencias
- Los datos se almacenan en Amazon S3
- SDK de Amazon para Go
- Otros sistemas de archivos de fusibles relacionados
- catfs: capa de almacenamiento en caché que se puede usar con goofys
- s3fs: otro sistema de archivos popular para S3
- gcsfuse: sistema de archivos para Google Cloud Storage. Goofys tomó prestado un código esqueleto de este proyecto.
- S3Proxy se utiliza para
go test
- unión de fusibles, también utilizada por
gcsfuse
Idiomas
-
Vamos
93,2% -
Caparazón
5,3% -
Otro
1,5%