Menggunakan RSYNC dengan Amazon S3 [ditutup]

39

Saya tertarik menggunakan Amazon S3 untuk membuat cadangan gambar server ~ 100GB kami (dibuat melalui alat cadangan Acronis)

Tentunya, pengunggahan ke S3 ini setiap malam akan mahal, dalam hal bandwidth dan biaya. Saya sedang mempertimbangkan menggunakan rsync dengan S3 dan menemukan s3rsync. Saya hanya ingin tahu apakah ada yang punya pengalaman menggunakan ini, atau utilitas lain?

alex
sumber
1
Satu hal yang saya perhatikan tentang s3rsync adalah bahwa Anda saat ini terbatas pada ukuran bucket 10GB (lihat FAQ). Anda dapat memiliki beberapa ember, tetapi Anda harus membagi data menjadi potongan 10GB.
dana

Jawaban:

35

Saya baru-baru ini menemukan utas ini di Google dan sepertinya lansekap telah sedikit berubah sejak pertanyaan diajukan. Sebagian besar solusi yang disarankan di sini tidak lagi dipertahankan atau telah berubah menjadi komersial.

Setelah beberapa frustrasi bekerja dengan FUSE dan beberapa solusi lain di luar sana, saya memutuskan untuk menulis rsync "clone" baris perintah saya sendiri untuk S3 dan Google Storage menggunakan Python.

Anda dapat melihat proyek di GitHub: http://github.com/seedifferently/boto_rsync

Proyek lain yang saya sadari baru-baru ini adalah "bermuka dua." Terlihat sedikit lebih rumit dan dapat ditemukan di sini: http://duplicity.nongnu.org/

Semoga ini membantu.

MEMPERBARUI

Tim Python di AWS telah bekerja keras pada proyek CLI berbasis boto untuk layanan cloud mereka. Di antara alat yang disertakan adalah antarmuka untuk S3 yang menduplikasi (dan dalam banyak hal menggantikan) sebagian besar fungsi yang disediakan oleh boto-rsync:

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

Secara khusus, syncperintah dapat dikonfigurasi agar berfungsi hampir persis seperti rsync:

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

Seth
sumber
kontribusi besar! terima kasih dan saya akan segera mencoba kode Anda. Apakah Anda memiliki bacaan wajib untuk belajar python / django? Cheers
iainlbc
Apa kelebihan / perbedaan yang dimiliki program Anda dibandingkan dengan S3cmd dan S3sync?
James McMahon
@JamesMcMahon s3cmd / s3sync adalah CLI berfitur lengkap untuk S3 (kelola bucket, isi daftar, dll.), Sementara boto-rsync benar-benar merupakan upaya meniru meniru rsync.
Seth
Ada sekering s3fs: github.com/s3fs-fuse/s3fs-fuse yang bekerja sangat bagus dan dapat dikombinasikan dengan rsync namun saya tidak yakin seberapa efisien.
Stanislav
Akan luar biasa jika Anda bisa menjelaskan bagaimana "perintah sinkronisasi dapat dikonfigurasi agar berfungsi hampir persis seperti rsync".
trusktr
10

Saya juga beruntung dengan S3cmd dan S3sync , keduanya gratis.

Terrell
sumber
+1 untuk S3cmd -.-
fnkr
S3cmd memiliki masalah dengan jumlah file besar (> 300k file) .. Ia memakan sekitar 1gig per 100k file memori yang bekerja sehingga perlu diingat batasan itu ..
Tuxie
7

Bergantung pada bagaimana gambar Acronis Anda dibuat, saya tidak yakin jenis rsync apa pun akan menghemat bandwidth Anda. Gambar Acronis adalah file tunggal, jadi rsync tidak akan dapat membacanya di dalamnya hanya untuk mencadangkan apa yang diubah. Juga tidak yakin apa jenis gambar server yang Anda buat, tetapi karena Anda mengatakan 100GB saya akan menganggap penuh? Gambar tambahan akan mengurangi ukuran gambar malam hari, sehingga menghemat bandwidth. Anda juga dapat mempertimbangkan untuk menyimpan gambar ke lokasi lain selain S3, seperti media tape, dan menyimpannya di luar situs.

churnd
sumber
4
Tidak, rsync tidak berfungsi seperti itu. Ini bekerja dengan semua jenis file dan tidak memerlukan pengetahuan internal file yang disinkronkan. Alih-alih membandingkan hash potongan file dan hanya mentransfer potongan yang berbeda. en.wikipedia.org/wiki/Rsync
Alan Donnelly
2
dan tidak ada chuck yang akan cocok karena setiap perubahan kecil pada file di dalam gambar akan menyebabkan seluruh file berubah karena kompresi. Bahkan dengan kompresi dimatikan saya tidak yakin itu akan rsync dengan baik karena file di dalam gambar dapat mengubah urutan dan cocok pada basis bergulir, daripada hanya menemukan potongan yang sama.
JamesRyan
4

Saya tidak pernah mencoba S3rsync.

Saya menggunakan duplikat untuk cadangan di luar situs kami. Ini mendukung backup tambahan pada S3 meskipun itu tidak benar-benar menghemat bandwidth karena protokol penyimpanan Amazon S3 di mana setiap modifikasi file memaksa Anda untuk mengunggah seluruh file baru lagi. Bagaimanapun, duplikat hanya mengunggah perbedaan dari cadangan inkremental terakhir.

Dengan Duplicity Anda tidak perlu melalui server lain seperti yang dilakukan S3sync, namun jika Anda mengenkripsi data Anda, patut untuk dicoba S3sync.

Celaka
sumber
1

S3 juga memiliki layanan tambahan yang disebut AWS Impor / Ekspor yang memungkinkan Anda untuk mengirim drive USB dengan set data awal 100Gb Anda kepada mereka dan mereka akan memuatnya di cloud S3 menggunakan beberapa alat backend di pusat data mereka. Setelah 100Gb Anda ada di sana, Anda bisa melakukan pencadangan diferensial setiap malam untuk mencadangkan semua yang berubah.

Situs ini adalah http://aws.amazon.com/importexport/

Jika sebagian besar data Anda cukup statis maka ini akan menjadi pilihan yang baik, jika seluruh data 100Gb berubah setiap hari maka ini tidak akan banyak membantu Anda.

monkeymagic
sumber
3
Bagaimana menurut Anda mereka "memuat" flash drive 128Gb? Saya membayangkan hub usb terbesar di dunia, panel patch konektor USB dari lantai ke langit-langit, 3/4 penuh dengan flash drive yang disediakan pelanggan, semuanya masuk ke bagian belakang server blade tunggal.
Paul
Apa gambar !! Pada kenyataannya mungkin beberapa pria miskin di sudut gelap pusat data dengan hub usb terbesar di dunia Anda terhubung ke PC-nya :)
monkeymagic
0

Anda dapat mencoba minio client alias "mc". mc menyediakan alat minimal untuk bekerja dengan penyimpanan cloud dan sistem file Amazon S3 yang kompatibel.

mc mengimplementasikan perintah berikut

  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.

Anda dapat menggunakan perintah mirror untuk melakukan operasi Anda. "localdir" menjadi direktori lokal & S3 [alias untuk Amazon S3] dan "remoteDir" nama bucket Anda di S3.

$ mc mirror localdir/ S3/remoteDir

Anda juga dapat menulis cronjob untuk hal yang sama. Juga dalam kasus kemarahan jaringan Anda dapat menggunakan "sesi $ mc" untuk memulai kembali unggahan dari waktu tertentu.

PS: Saya berkontribusi pada proyek minio & akan senang mendapatkan umpan balik & kontribusi Anda. Semoga ini bisa membantu.

koolhead17
sumber
-1

Baru Jungle Disk Server Edition (beta) mungkin berguna untuk Anda. Ini memiliki de-duplikasi blok-level, jadi jika gambar Acronis Anda memiliki kesamaan, ini akan sangat mengurangi jumlah yang Anda butuhkan untuk membuat cadangan. Fitur-fiturnya sempurna untuk cadangan server. Lihat catatan rilis.

Saya telah menguji beta selama dua minggu dan, selain dari beberapa masalah kecil dengan GUI yang saya yakin akan diperbaiki di final, saya senang dengan produk ini.

Martijn Heemels
sumber