Come Montare un S3 Secchio in Locale su Linux

0
40

In molti modi, S3 secchi agire come come il cloud hard disk, ma sono solo “oggetto di archiviazione di livello”, non a livello di blocco di archiviazione come EBS o EFS. Tuttavia, è possibile montare un secchio come un filesystem, e accedere direttamente tramite la lettura e la scrittura dei file.

I Vantaggi e le Limitazioni di S3 come un Filesystem

La magia che rende tutto questo lavoro di messa a punto è un programma di utilità chiamato s3fs-fusibile. FUSIBILE sta per Filesystem in Userspace e crea un montato il filesystem virtuale. s3fs interfacce con S3, e supporta un ampio sottoinsieme dello standard POSIX, tra cui la lettura, la scrittura, la creazione di directory e file di impostazione di metadati.

Uno dei grandi vantaggi di utilizzare S3 rispetto al tradizionale metodo di archiviazione è che è molto efficace per la memorizzazione di oggetti individuali a lungo termine, con nessun limite sul totale dimensione del secchiello. È possibile memorizzare un massimo di 10 foto o 10 milioni di foto in S3, e lavorerò in gran parte la stessa. In applicazioni In cui è necessario un grande (e costoso) del disco, S3 ha un senso, e se l’applicazione che si sta integrando voglia di accesso ai file, questo è un buon modo per collegare i due.

Naturalmente, non è senza limiti. Mentre si lavora abbastanza relativamente ad un S3 API in termini di prestazioni, la memorizzazione e il recupero di tutto il file, ovviamente non sostituisce il molto più veloce (network attached storage blocco completamente. C’è un motivo per questa configurazione non è supportata ufficialmente da AWS—si incorrerà in problemi di concorrenza con più clienti utilizzando i file, soprattutto se si dispone di client in diverse regioni di accedere allo stesso secchio. Naturalmente, S3 dispone anche di questa limitazione, e non ti impedirà di avere più client collegati, ma è più evidente quando il FUSIBILE sembra dare “diretta” di accesso. Non è, e dovrete tenere queste limitazioni in mente.

AWS ha un servizio simile a questa—Storage Gateway, che può agire come un NAS locale e fornisce locale del blocco di archiviazione supportata da S3. Tuttavia, questo è più di una soluzione enterprise, e richiede un intero server fisico per distribuire un’immagine di VMWare. s3fs, invece, è un semplice server di soluzione, anche se non fa molto di memorizzazione nella cache.

Quindi, se è possibile di convertire le applicazioni utilizzando le API S3 piuttosto che un FUSIBILE, lo si dovrebbe fare, invece. Ma, se si sta bene con un po ‘ di hacky soluzione, s3fs può essere utile.

Impostazione s3fs-fusibile

Rispetto a come hacky è, è sorprendentemente facile da impostare. s3fs-fusibile è disponibile dalla maggior parte dei gestori di pacchetti, anche se può essere chiamato solo s3fs su alcuni sistemi. Per i sistemi basati su Debian, come Ubuntu, che sarebbe:

sudo apt install s3fs

Devi creare un IAM utente e dargli i permessi per accedere al secchio che si desidera montare. Alla fine, si otterrà una chiave di accesso segreta:

È possibile incollare questi standard AWS credenziali file ~/.aws/credenziali, ma se si desidera utilizzare una chiave diversa, s3fs supporta una password personalizzata di file. Incollare l’ID della chiave di accesso e segreto in /etc/passwd-s3fs , nel seguente formato:

eco ACCESS_KEY_ID:SECRET_ACCESS_KEY > /etc/passwd-s3fs

E assicurarsi che le autorizzazioni in questo file sono impostati correttamente, o ti lamentare:

chmod 600 /etc/passwd-s3fs

Quindi, è possibile montare il secchio con il seguente comando:

s3fs secchio-nome /mnt/secchio nome

Se questo non funziona, è possibile attivare l’output di debug con un paio di bandiere:

-o dbglevel=info -f -o curldbg

Se si desidera che questo per montare al boot, è necessario aggiungere a /etc/fstab:

s3fs#secchio-nome /mnt/secchio nome fusibile _netdev,allow_other,umask=227,uid=33,gid=33,use_cache=/root/cache 0 0