GNU/Linux >> Linux Esercitazione >  >> Linux

Quanto è stabile s3fs per montare un bucket Amazon S3 come directory locale

C'è un buon articolo su s3fs qui, che dopo aver letto ho fatto ricorso a una condivisione EBS.

Evidenzia alcune considerazioni importanti quando si utilizza s3fs, in particolare relative alle limitazioni intrinseche di S3:

  • nessun file può superare i 5 GB
  • non puoi aggiornare parzialmente un file, quindi la modifica di un singolo byte ricaricherà l'intero file.
  • le operazioni su molti file di piccole dimensioni sono molto efficienti (ognuno è dopotutto un oggetto S3 separato) ma i file di grandi dimensioni sono molto inefficienti
  • Sebbene S3 supporti download parziali/a blocchi, s3fs non ne approfitta, quindi se vuoi leggere solo un byte di un file da 1 GB, dovrai scaricare l'intero GB.

Dipende quindi da cosa stai memorizzando se s3fs è un'opzione fattibile. Se stai archiviando, diciamo, foto, dove vuoi scrivere un intero file o leggere un intero file, non modificare mai un file in modo incrementale, allora va bene, anche se ci si potrebbe chiedere, se lo stai facendo, allora perché non usare solo S3 API direttamente?

Se stai parlando di dati di applicazione (ad esempio file di database, file di registrazione) in cui desideri apportare piccole modifiche incrementali, allora è decisamente un no:S3 non funziona in questo modo, non puoi modificare in modo incrementale un file.

L'articolo menzionato sopra parla di un'applicazione simile - s3backer - che aggira i problemi di prestazioni implementando un filesystem virtuale su S3. Questo aggira i problemi di prestazioni, ma ha di per sé alcuni problemi:

  • Alto rischio di danneggiamento dei dati, a causa delle scritture ritardate
  • dimensioni di blocchi troppo piccole (ad esempio, l'impostazione predefinita 4K) possono aggiungere costi aggiuntivi significativi (ad esempio, $ 130 per 50 GB con blocchi 4K di spazio di archiviazione)
  • dimensioni di blocchi troppo grandi possono aggiungere costi significativi per il trasferimento e l'archiviazione dei dati.
  • l'utilizzo della memoria può essere proibitivo:per impostazione predefinita memorizza nella cache 1000 blocchi.
    Con la dimensione predefinita del blocco 4K questo non è un problema, ma la maggior parte degli utenti
    probabilmente vorrà aumentare la dimensione del blocco.

Ho fatto ricorso a EBS Mounted Drived condiviso da un'istanza EC2. Ma dovresti sapere che sebbene l'opzione più performante abbia un grosso problema Una condivisione NFS montata su EBS ha i suoi problemi:un singolo punto di errore; se la macchina che condivide il volume EBS si interrompe, perdi l'accesso su tutte le macchine che accedono alla condivisione.

Questo è un rischio con cui ho potuto convivere ed è stata l'opzione che ho scelto alla fine. Spero che questo aiuti.


Questa è una vecchia domanda, quindi condividerò la mia esperienza nell'ultimo anno con S3FS.

Inizialmente presentava una serie di bug e perdite di memoria (avevo un cron-job per riavviarlo ogni 2 ore) ma con l'ultima versione 1.73 è stato molto stabile.

La cosa migliore di S3FS è che hai una cosa in meno di cui preoccuparti e ottieni alcuni vantaggi in termini di prestazioni gratuitamente.

La maggior parte delle tue richieste S3 saranno PUT (~5%) e GET (~95%). Se non hai bisogno di post-elaborazione (generazione di miniature per esempio). Se non hai bisogno di alcuna post-elaborazione, non dovresti prima accedere al tuo server web e caricare direttamente su S3 (utilizzando CORS).

Supponendo che tu stia colpendo il server probabilmente significa che devi eseguire un po 'di post-elaborazione sulle immagini. Con un'API S3 caricherai sul server, quindi caricherai su S3. Se l'utente desidera ritagliare, dovrai scaricare di nuovo da S3, quindi ricaricare sul server, ritagliare e quindi caricare su S3. Con S3FS e la memorizzazione nella cache locale attivati, questa orchestrazione viene gestita per te e salva il download di file da S3.

Sul caching, se stai memorizzando nella cache un'unità temporanea su EC2, ottieni i vantaggi in termini di prestazioni che ne derivano e puoi eliminare la cache senza doversi preoccupare di nulla. A meno che tu non abbia esaurito lo spazio su disco, non dovresti avere motivo di eliminare la cache. Ciò rende le operazioni di attraversamento come la ricerca e il filtraggio molto più semplici.

L'unica cosa che vorrei fosse la sincronizzazione completa con S3 (stile RSync). Ciò la renderebbe una versione aziendale di DropBox o Google Drive per S3, ma senza dover fare i conti con le quote e le tariffe che ne derivano.


Linux
  1. Come montare le condivisioni Windows o Samba in modo permanente

  2. Come montare un filesystem, mappare gli ID utente?

  3. Come caricare file su Amazon S3

  4. Come montare un file iso in Linux

  5. Come montare e smontare un file system in Linux

Come rimuovere (eliminare) un file o una directory in Linux

Come montare e smontare i file system in Linux

Come verificare se un file o una directory esiste in Bash

Come montare file ISO su Linux

Come montare il disco NTFS su Linux

Come verificare se esiste un file o una directory in Bash Shell