Saya ingin mencerminkan ember Amazon S3 saya. Saya ingin melakukan ini karena 1) Saya tidak ingin semua data saya hanya ada dengan satu penyedia; dan 2) jika terjadi kesalahan perangkat lunak atau pelanggaran keamanan, saya ingin data dicadangkan.
Saya bisa mirror ke disk lokal dengan fungsi sinkronisasi s3cmd, tapi itu tidak skala untuk ember yang sangat besar dan tidak berguna untuk pemulihan cadangan cepat. Saya lebih suka data saya dicerminkan ke pesaing seperti Rackspace Cloud Files.
Adakah yang punya saran tentang cara sederhana dan tangguh untuk memfasilitasi mirroring semacam ini dengan cara otomatis pada kotak Linux?
Jawaban:
Anda dapat menggunakan utilitas " s3cmd " dengan opsi "sinkronisasi", meskipun saya menemukan pertanyaan Anda karena saya mencoba mencari tahu apakah mekanisme sinkronisasi ini mengacaukan cadangan duplikat saya.
sumber
Saya mengalami masalah yang sama jadi saya membuat program kecil yang dirancang khusus untuk mencerminkan satu ember S3 ke yang lain; Saya menyebutnya s3s3mirror.
Saya memang mencoba pendekatan "s3cmd sync" dulu, tapi saya punya ember dengan ratusan ribu objek di dalamnya, dan "s3cmd sync" hanya duduk di sana, tidak melakukan apa-apa selain menghabiskan lebih banyak memori hingga sistem saya mati. Saya merancang s3s3mirror untuk segera bekerja, untuk menggunakan 100 thread bersamaan (dapat dikonfigurasi), dan untuk menggunakan CPU dan memori secara sederhana. Jika saya mengatakannya sendiri, itu cukup cepat.
Saya sudah membuatnya tersedia di github di bawah Lisensi Apache. Jika Anda memutuskan untuk mengubahnya, beri tahu saya apa yang Anda pikirkan dan apakah ada sesuatu yang dapat ditingkatkan.
Inilah tautannya: https://github.com/cobbzilla/s3s3mirror
Terima kasih!
sumber
Amazon sekarang memiliki alat yang didukung untuk melakukan ini, aws cli .
Itu dapat mencerminkan ke arah mana pun antara lokal dan jarak jauh, atau antara dua lokasi s3.
Sayangnya itu tidak memiliki dukungan langsung untuk lokasi non-S3 seperti rackspace, tapi saya pikir ini akan menjadi jawaban yang berguna bagi sebagian orang yang menemukan pertanyaan ini. Seperti saya, sebelum saya menemukannya.
Khususnya,
sumber
Lihat Jungle Disk Server . Ini bekerja dengan Amazon S3 dan Rackspace Cloud Files. Anda bisa memasang S3 dan CF di lokasi yang berbeda di sistem file Anda dan kemudian menggunakan rsync di antara keduanya.
sumber
Anda dapat mencoba memasang ember dengan sekering menggunakan s3fs . Setelah selesai, Anda dapat rsync dari titik mount ke disk lokal Anda.
sumber
Anda dapat mengatur server Minio , sumber terbuka dan API yang kompatibel S3. Anda dapat mengaturnya di EC2 atau pada penyedia cloud apa pun sebagai server alternatif Anda dan menggunakan perintah Minio clients
mc mirror
mengambil mirror S3 secara berkala. Anda dapat mengotomatiskan penulisan skrip cron sederhana yang sama.Semoga ini bisa membantu. Penafian: Saya bekerja untuk Minio
sumber
Untuk sinkronisasi bucket secara online, Anda dapat menggunakan replikasi lintas wilayah. Dengan cara ini semua pembaruan ke bucket asli akan secara otomatis disinkronkan ke bucket S3 di wilayah lain: https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html
Ingatlah bahwa ini membutuhkan versi yang diaktifkan untuk bucket, jadi jika Anda melakukan banyak pembaruan / penghapusan objek dalam ember, Anda akan ingin memungkinkan kebijakan siklus hidup untuk menghapus objek lama.
sumber