Cloud Storage FUSE

Questa pagina fornisce una panoramica di Cloud Storage FUSE, un FUSE. che consente di montare e accedere ai bucket Cloud Storage file system locali, in modo che le applicazioni possano leggere e scrivere oggetti nel tuo bucket usando la semantica del file system standard. Cloud Storage FUSE è un prodotto open source supportata da Google.

Consulta la documentazione seguente per istruzioni su come utilizzare Cloud Storage FUSE:

Questa documentazione riflette sempre l'ultima versione di Cloud Storage FUSE. Per i dettagli sulle ultime di Google Cloud, consulta Release di Cloud Storage FUSE su GitHub.

Come funziona Cloud Storage FUSE

Cloud Storage FUSE utilizza le API FUSE e Cloud Storage per esporre i bucket come cartelle montate localmente sul file system.

Cloud Storage FUSE converte i nomi degli archivi di oggetti in un file , interpretando il carattere della barra ("/") nei nomi degli oggetti come separatore di directory, in modo che gli oggetti con lo stesso prefisso comune vengano trattati si trovano nella stessa directory. Le applicazioni possono interagire con il bucket montato come un file system, fornendo uno spazio di archiviazione praticamente illimitata per i file in esecuzione cloud. Cloud Storage FUSE può essere eseguito ovunque con connettività Cloud Storage, tra cui Google Kubernetes Engine, VM di Compute Engine o sistemi on-premise.

Cloud Storage FUSE è ideale per i casi d'uso in cui le giuste caratteristiche di prestazioni e scalabilità per un'applicazione richiede la semantica del file system. Ad esempio: Cloud Storage FUSE è utile per i progetti di machine learning (ML) perché consente di archiviare dati, modelli, checkpoint e log direttamente in Cloud Storage. Per ulteriori informazioni consulta Cloud Storage FUSE per i carichi di lavoro ML.

Cloud Storage FUSE è integrato con altri servizi Google Cloud. Ad esempio, Il driver CSI di Cloud Storage FUSE consente di utilizzare l'API Google Kubernetes Engine (GKE) per consumano i bucket come volumi, quindi puoi leggere e scrivere Cloud Storage dai tuoi pod Kubernetes. Per ulteriori informazioni per altre integrazioni, consulta Integrazioni.

Limitazioni

Sebbene Cloud Storage FUSE abbia un'interfaccia per il file system, non è come una NFS CIFS o CIFS sul backend. Inoltre, Cloud Storage FUSE non è Conforme a POSIX. Per un prodotto di file system POSIX in Google Cloud, consulta Filestore.

Quando utilizzi Cloud Storage FUSE, presta attenzione ai suoi limiti e alla sua semantica. diversi da quelli dei file system POSIX. Cloud Storage FUSE dovrebbe nell'ambito delle sue capacità.

Limitazioni e differenze rispetto ai file system POSIX

Nell'elenco seguente sono descritte le limitazioni di Cloud Storage FUSE:

  • Metadati: Cloud Storage FUSE non trasferisce l'oggetto durante il caricamento di file su Cloud Storage, ad eccezione dei target mtime e symlink. Ciò significa che non possono impostare i metadati degli oggetti quando per caricare i file utilizzando Cloud Storage FUSE. Se devi conservare l'oggetto metadati, considera la possibilità di caricare file utilizzando Google Cloud CLI l'API JSON, oppure il Console Google Cloud.
  • Contemporaneità: Cloud Storage FUSE non fornisce contemporaneità. per più scritture sullo stesso file. Quando più scritture tentano sostituire un file, l'ultima scrittura vince e tutte le scritture precedenti vengono perse. C'è Nessuna unione, controllo della versione o notifica all'utente della successiva sovrascrittura.
  • Collegamento: Cloud Storage FUSE non supporta i link diretti.
  • Blocco dei file e applicazione di patch ai file: Cloud Storage FUSE non supportano il blocco o l'applicazione di patch dei file. Di conseguenza, non devi archiviare la versione controllare i repository di sistema nei punti di montaggio di Cloud Storage FUSE, come versione sistemi di controllo si basano sul blocco e sull'applicazione di patch dei file. Inoltre, non devi utilizza Cloud Storage FUSE come sostituzione del filer.
  • Semantica: la semantica di Cloud Storage FUSE è diversa dalla semantica in un file system convenzionale. Ad esempio, metadati come l'ultimo l'accesso non è supportato e alcune operazioni sui metadati, come le rinominazioni non sono atomiche. Per un elenco delle differenze la semantica di Cloud Storage FUSE e la semantica convenzionale del file system; consulta Semantica nella documentazione GitHub di Cloud Storage FUSE.
  • Carichi di lavoro che eseguono l'applicazione di patch ai file (o che sovrascrivono quelli esistenti): Cloud Storage FUSE può scrivere solo oggetti interi alla volta Cloud Storage e non fornisce un meccanismo per l'applicazione di patch. Se provi per applicare una patch a un file, Cloud Storage FUSE ricaricherà l'intero file. L'unico a questo comportamento è che puoi aggiungere contenuti alla fine di un file pari o superiore a 2 MB, dove Cloud Storage FUSE ricarica solo contenuti.
  • Accesso: l'autorizzazione per i file è regolata da autorizzazioni per Cloud Storage. Il controllo dell'accesso in stile POSIX non funziona.
  • Prestazioni: Cloud Storage FUSE ha una latenza molto più elevata rispetto un file system locale e, in quanto tale, non deve essere utilizzato come backend per l'archiviazione un database. La velocità effettiva potrebbe essere ridotta durante la lettura o la scrittura un file di piccole dimensioni alla volta. Uso di file di dimensioni maggiori o trasferimento di più file alla volta, contribuirà ad aumentare la velocità effettiva.
  • Disponibilità: a volte possono verificarsi errori temporanei quando utilizzerai Cloud Storage FUSE per accedere a Cloud Storage. È ti consigliamo di riprovare a eseguire le operazioni non riuscite riprovare le strategie.
  • Controllo delle versioni degli oggetti: Cloud Storage FUSE non supporta formalmente l'utilizzo con bucket in cui è abilitato il controllo delle versioni degli oggetti. Tentativo di utilizzare Cloud Storage FUSE con bucket con controllo delle versioni degli oggetti possono generare comportamenti imprevedibili.
  • Transcodifica file: oggetti con content-encoding: gzip nei metadati: qualsiasi oggetto di questo tipo in un oggetto montato su Cloud Storage FUSE directory non viene sottoposta a decompressività o transcodifica multimediale. L'oggetto rimane compresso allo stesso modo in modo che sia archiviata nel bucket.
    Ad esempio, un file di 1000 byte, caricato in un bucket utilizzando gcloud storage cp con --gzip-local di grandi dimensioni, potrebbero diventare 60 byte (la dimensione compressa effettiva dipende dal contenuti e l'implementazione di gzip utilizzata da gcloud CLI) come Cloud Storage. Se il bucket viene montato utilizzando gcsfuse, il file corrispondente viene elencato o letto dalla directory mount, le sue dimensioni viene restituito come 60 byte e i suoi contenuti sono una versione compressa contenuti originali di 1000 byte.
    È in contrasto con un download che utilizza gcloud storage cp gs://bucket/path /local/path che viene sottoposta transcodifica decompressiva: nel comando gcloud, i contenuti viene decompresso automaticamente durante il download, mentre l'originale non compresso vengono pubblicati i contenuti.
    Nota: tentativo di utilizzare Cloud Storage FUSE per modificare o modificare oggetti con content-encoding: gzip puoi producono comportamenti imprevedibili. Questo è poiché Cloud Storage FUSE carica il contenuto dell'oggetto così com'è (senza la compressione) conservando al contempo content-encoding: gzip e se questi contenuti non sono corretti compresso con gzip, potrebbe non riuscire a essere letto dal server da altri come gcloud CLI. Questo perché altri clienti utilizzano la transcodifica decompressiva durante la lettura, che non funziona correttamente gzip.
  • Criteri di conservazione: Cloud Storage FUSE non per supportare la scrittura nei bucket criteri di conservazione. Se tenti di scrivere su un bucket con un criterio di conservazione, le scritture non riuscito.

    Cloud Storage FUSE supporta la lettura di oggetti dai bucket con un tipo di conservazione ma il bucket deve essere montato come Read-Only passando il flag -o RO durante il montaggio del bucket.

  • Archiviazione locale: gli oggetti nuovi o modificati vengono interamente archiviati in un file temporaneo locale finché non vengono chiusi sincronizzati. Quando lavori con file di grandi dimensioni, assicurati di avere spazio di archiviazione locale sufficiente per le copie temporanee dei file, in particolare se utilizzi Istanze di Compute Engine. Per ulteriori informazioni informazioni, consulta LEGGIMI nella documentazione GitHub di Cloud Storage FUSE.
  • Directory: Cloud Storage funziona con una spazio dei nomi semplice. Per impostazione predefinita, directory definite in modo esplicito (ossia esistono come oggetti in Cloud Storage) possono essere visualizzati nel file system montato. Directory implicite (quelle che sono del percorso di altri file o directory) non vengono visualizzati predefinito. Se hai dei file con un percorso che contiene una directory implicita, il file non compare nella struttura di directory generale, poiché le informazioni la directory che li contiene non viene visualizzata. Tuttavia, puoi utilizzare un flag per modificare questo comportamento. Per saperne di più, consulta il --implicit-dirs flag nel Documentazione dell'interfaccia a riga di comando di Cloud Storage FUSE.

    Cloud Storage FUSE non supporta la ridenominazione delle directory. La ridenominazione di una directory non può essere eseguita a livello atomico in Cloud Storage. rinominando un comporta la copia di un oggetto con un nuovo nome e l'eliminazione della .

  • Limiti relativi all'handle dei file: per impostazione predefinita, il kernel Linux consente una è consentito un massimo di 1024 handle di file aperti. Cloud Storage FUSE non deve essere utilizzato come server la gestione di connessioni parallele simultanee da client esterni, come potrebbe superare il numero massimo di handle di file aperti. Alcuni casi d'uso comuni da evitare sono contenuti di pubblicazione web provenienti da un montaggio di Cloud Storage FUSE, che espone un FUSE di Cloud Storage montare come Network Attached Storage (NAS) utilizzando protocolli di condivisione file (ad esempio, NFS o SMB) e ospitare un protocollo FTP (File Transfer Protocol) supportato da un supporto di Cloud Storage FUSE.

Framework, sistemi operativi e architetture

Cloud Storage FUSE è stato convalidato con i seguenti framework:

  • TensorFlow V2.x

  • TensorFlow V1.x

  • PyTorch V2.x

  • PyTorch versione 1.x

  • JAX 0.4.x

Cloud Storage FUSE supporta i seguenti sistemi operativi e architetture:

  • Rocky Linux 8.9 o versioni successive

  • Ubuntu 18.04 o versioni successive

  • Debian 10 o versioni successive

  • CentOS 7.9 o versioni successive

  • RHEL 7.9 o versioni successive

  • x86_64

  • ARM64

Assistenza

Puoi ricevere assistenza, inviare domande di carattere generale e richiedere nuove funzionalità usando uno dei canali di assistenza ufficiali di Google Cloud. Puoi anche Ricevi assistenza compilando i problemi in GitHub.

Per le soluzioni ai problemi più comuni, consulta Risoluzione dei problemi nella documentazione di GitHub di Cloud Storage FUSE.

Prezzi di Cloud Storage FUSE

Cloud Storage FUSE è disponibile senza costi, ma le risorse di archiviazione, e I/O di rete che genera da e verso Cloud Storage vengono addebitati come qualsiasi altra interfaccia di Cloud Storage. In altre parole, tutti i dati il trasferimento e le operazioni eseguite da Cloud Storage FUSE vengono mappati i trasferimenti e le operazioni di Cloud Storage e vengono addebitati di conseguenza. Per ulteriori informazioni sulle operazioni comuni di Cloud Storage FUSE e sulla loro mappatura Per le operazioni di Cloud Storage, consulta la mappatura delle operazioni.

Per evitare sorprese, dovresti stimare in che modo il tuo utilizzo di Cloud Storage FUSE ai costi di Cloud Storage. Ad esempio, se usi Cloud Storage FUSE, per archiviare i file di log, potresti incorrere in addebiti rapidi se i log sono sono stati scaricati su centinaia o migliaia di macchine contemporaneamente.

Consulta i prezzi di Cloud Storage per informazioni su addebiti come archiviazione, utilizzo della rete e operazioni.

Mappa delle operazioni di Cloud Storage FUSE alle operazioni di Cloud Storage

Quando esegui un'operazione utilizzando Cloud Storage FUSE, esegui anche Operazioni di Cloud Storage associate a Cloud Storage FUSE operativa. La tabella seguente descrive i comandi e i comandi FUSE di Cloud Storage più comuni e le operazioni associate dell'API JSON di Cloud Storage. Puoi visualizzare informazioni sulle operazioni di Cloud Storage FUSE utilizzando --debug_gcs flag.

Comando Operazioni delle API JSON
gcsfuse --debug_gcs example-bucket mp Objects.list (per controllare le credenziali)
cd mp n/a
ls mp Objects.list("")
mkdir subdir

Objects.get("subdir")

Objects.get("subdir/")

Objects.insert("subdir/")

cp ~/local.txt subdir/

Objects.get("subdir/local.txt")

Objects.get("subdir/local.txt/")

Objects.insert("subdir/local.txt"), per creare un oggetto vuoto

Objects.insert("subdir/local.txt"), alla chiusura dopo il completamento della scrittura

rm -rf subdir

Objects.list("subdir")

Objects.list("subdir/")

Objects.delete("subdir/local.txt")

Objects.list("subdir/")

Objects.delete("subdir/")

Problemi noti

Per un elenco dei problemi noti di Cloud Storage FUSE, consulta GitHub.

Passaggi successivi