Utilizzo di RSYNC con Amazon S3 [chiuso]


39

Sono interessato a utilizzare Amazon S3 per eseguire il backup delle immagini del nostro server ~ 100 GB (create tramite gli strumenti di backup Acronis)

Ovviamente, questo caricamento su S3 ogni notte sarebbe costoso, in termini di larghezza di banda e costi. Sto pensando di utilizzare rsync con S3 e ho trovato s3rsync. Mi stavo solo chiedendo se qualcuno avesse esperienza con questo o qualche altra utility?


1
Una cosa che ho notato di s3rsync è che al momento sei limitato a dimensioni di benne da 10 GB (consulta le FAQ). Puoi avere più bucket, ma devi dividere i tuoi dati in blocchi da 10 GB.
dana,

Risposte:


35

Di recente mi sono imbattuto in questo thread su Google e sembra che il panorama sia cambiato un po 'da quando è stata posta la domanda. La maggior parte delle soluzioni suggerite qui non è più mantenuta o è diventata commerciale.

Dopo alcune frustrazioni nel lavorare con FUSE e alcune delle altre soluzioni disponibili, ho deciso di scrivere il mio rsync "clone" da riga di comando per S3 e Google Storage usando Python.

Puoi dare un'occhiata al progetto su GitHub: http://github.com/seedifferently/boto_rsync

Un altro progetto di cui sono stato recentemente informato è la "duplicità". Sembra un po 'più elaborato e può essere trovato qui: http://duplicity.nongnu.org/

Spero che sia di aiuto.

AGGIORNARE

Il team Python di AWS ha lavorato duramente su un progetto CLI basato su boto per i propri servizi cloud. Tra gli strumenti inclusi c'è un'interfaccia per S3 che duplica (e in molti modi sostituisce) la maggior parte delle funzionalità fornite da boto-rsync:

https://github.com/aws/aws-cli

In particolare, il synccomando può essere configurato per funzionare quasi esattamente come rsync:

http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html


ottimo contributo! grazie e presto darò un colpo al tuo codice. Hai qualche lettura obbligata per l'apprendimento di Python / Django? Saluti
iainlbc

Quali vantaggi / differenze ha il tuo programma rispetto a S3cmd e S3sync?
James McMahon,

@JamesMcMahon s3cmd / s3sync sono CLI più complete per S3 (gestisci bucket, elenca contenuti, ecc.), Mentre boto-rsync è strettamente un tentativo di imitare rsync.
Seth,

C'è una miccia s3fs: github.com/s3fs-fuse/s3fs-fuse che funziona abbastanza bene e può essere combinata con rsync, tuttavia non sono sicuro di quanto sia efficiente.
Stanislav,

Sarebbe fantastico se tu potessi spiegare come "il comando sync può essere configurato per funzionare quasi esattamente come rsync".
trusktr,

10

Ho anche avuto fortuna con S3cmd e S3sync , entrambi gratuiti.


+1 per S3cmd -.-
fnkr

S3cmd ha un problema con file di grandi dimensioni (> 300k file) .. Mangia circa 1 gig per 100k file di memoria di lavoro così bene da tenere presente questa limitazione ..
Tuxie,

7

A seconda di come vengono create le immagini Acronis, non sono sicuro che qualsiasi tipo di rsync ti risparmierebbe la larghezza di banda. Le immagini Acronis sono file singoli, quindi rsync non è in grado di leggere al loro interno solo per eseguire il backup di ciò che è cambiato. Inoltre, non sei sicuro del tipo di immagini del server che stai creando, ma dal momento che hai detto 100 GB ho intenzione di assumermi pieno? Un'immagine incrementale ridurrebbe notevolmente la dimensione dell'immagine notturna, risparmiando così la larghezza di banda. Potresti anche prendere in considerazione il salvataggio delle immagini in una posizione alternativa rispetto a S3, come ad esempio i supporti su nastro, e archiviarlo fuori sede.


4
No, rsync non funziona in questo modo. Funziona con qualsiasi tipo di file e non necessita di alcuna conoscenza degli interni del file da sincronizzare. Invece confronta gli hash di blocchi del file e trasferisce solo quei blocchi che differiscono. en.wikipedia.org/wiki/Rsync
Alan Donnelly il

2
e nessuno dei mandrini corrisponderà perché qualsiasi piccola modifica nei file all'interno dell'immagine causerà la modifica dell'intero file a causa della compressione. Anche con la compressione disattivata, non sono sicuro che si sincronizzerà bene perché i file all'interno dell'immagine possono cambiare l'ordine e corrispondono su base continuativa, piuttosto che trovare qualsiasi pezzo uguale.
JamesRyan,

4

Non ho mai provato S3rsync.

Sto usando la duplicità per i nostri backup fuori sede. Supporta backup incrementali su S3 sebbene non stia realmente risparmiando larghezza di banda a causa del protocollo di archiviazione Amazon S3 in cui qualsiasi modifica del file ti costringe a caricare di nuovo l'intero nuovo file. Comunque la duplicità carica solo differenze rispetto all'ultimo backup incrementale.

Con Duplicity non sarà necessario passare attraverso un altro server come fa S3sync, tuttavia se si crittografano i dati, vale la pena provare S3sync.


1

S3 ha anche un servizio aggiuntivo chiamato AWS Import / Export che ti consente di inviare un'unità USB con il tuo set di dati iniziale da 100Gb e lo caricheranno sul cloud S3 utilizzando alcuni strumenti di backend nei loro data center. Una volta che il tuo 100Gb è lì, puoi fare backup differenziali ogni notte per eseguire il backup di tutto ciò che è cambiato.

Il sito è http://aws.amazon.com/importexport/

Se la maggior parte dei tuoi dati è abbastanza statica, questa sarebbe una buona opzione, se tutti i 100 Gb di dati cambiano ogni giorno, questo non ti aiuterà molto.


3
Come pensi che "caricino" un'unità flash da 128 GB? Immagino l'hub USB più grande del mondo, un patch panel dal pavimento al soffitto di connettori USB, 3/4 pieni di unità flash fornite dal cliente, che vanno tutte sul retro di un singolo server blade.
Paul,

Che immagine !! In realtà probabilmente un poveraccio in un angolo buio di un data center con l'hub USB più grande del mondo collegato al suo PC :)
monkeymagic

0

Puoi provare il client Minio aka "mc". mc fornisce strumenti minimi per lavorare con l'archiviazione cloud e i filesystem compatibili con Amazon S3.

mc implementa i seguenti comandi

  ls        List files and folders.
  mb        Make a bucket or folder.
  cat       Display contents of a file.
  pipe      Write contents of stdin to one or more targets. When no target is specified, it writes to stdout.
  share     Generate URL for sharing.
  cp        Copy one or more objects to a target.
  mirror    Mirror folders recursively from a single source to many destinations.
  diff      Compute differences between two folders.
  rm        Remove file or bucket [WARNING: Use with care].
  access    Manage bucket access permissions.
  session   Manage saved sessions of cp and mirror operations.
  config    Manage configuration file.
  update    Check for a new software update.
  version   Print version.

È possibile utilizzare il comando mirror per eseguire l'operazione. "localdir" è la directory locale e S3 [alias per Amazon S3] e il nome "remoteDir" del tuo bucket su S3.

$ mc mirror localdir/ S3/remoteDir

Puoi anche scrivere un cronjob per lo stesso. Inoltre, in caso di indignazione della rete, puoi comunque utilizzare "$ mc session" per riavviare il caricamento da quel particolare momento.

PS: contribuisco al progetto Minio e mi piacerebbe ricevere feedback e contributi. Spero che sia d'aiuto.


-1

La nuova Jungle Disk Server Edition (beta) potrebbe esserti utile. Ha una deduplicazione a livello di blocco, quindi se le immagini Acronis hanno qualcosa in comune, ciò ridurrà notevolmente la quantità necessaria per il backup. Le funzionalità sono perfette per i backup del server. Consulta le note di rilascio.

Ho testato la beta per due settimane e, a parte alcuni piccoli problemi con la GUI che sono sicuro che verranno risolti in finale, sono entusiasta del prodotto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.