Amazon S3'te depolanan verileri yedekleme


16

Kullanıcıların yüklenen dosyalarını S3'e depolayan bir web sunucusu çalıştıran bir EC2 örneğim var. Dosyalar bir kez yazılır ve asla değişmez, ancak kullanıcılar tarafından ara sıra alınır. Muhtemelen yılda 200-500GB civarında veri biriktireceğiz. Bu verilerin, özellikle de yanlışlıkla yapılan silme işlemlerinden korunduğundan emin olmak istiyoruz ve nedenden bağımsız olarak silinen dosyaları geri yükleyebilmek istiyoruz.

S3 kovaları için sürüm oluşturma özelliği hakkında okudum, ancak değişiklik geçmişi olmayan dosyalar için kurtarma mümkün olup olmadığını bulamıyorum. Sürüm oluşturma konusunda AWS belgelerine bakın:

http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectVersioning.html

Bu örneklerde, verilerin yüklendiği, hiçbir zaman değiştirilmediği ve ardından silindiği senaryoyu göstermezler. Bu senaryoda silinen dosyalar kurtarılabilir mi?

Ardından, nesne yaşam döngüsü yönetimini kullanarak S3 dosyalarını Glacier'a yedekleyebileceğimizi düşündük:

http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html

Ancak, dosya nesnesi Glacier'a kopyalanmadığı, ancak Glacier'a taşındığı için bu bizim için işe yaramayacak gibi görünüyor (daha doğrusu, değiştirilen bir nesne niteliği gibi görünüyor, ancak yine de ...).

Bu nedenle, S3 verilerini yedeklemenin doğrudan bir yolu yoktur ve verilerin S3'ten yerel sunuculara aktarılması zaman alıcı olabilir ve zaman içinde önemli aktarım maliyetlerine neden olabilir.

Son olarak, her ay aylık tam bir yedekleme görevi görecek yeni bir grup oluşturacağımızı ve orijinal grup verilerini 1. Günde yeni olana kopyalayacağımızı düşündük. Sonra tekrar gibi bir şey kullanarak ( http://duplicity.nongnu.org/ ) yedek kovayı her gece senkronize ederiz. Ayın sonunda yedek grubun içeriğini Glacier deposuna koyar ve orijinal grubun yeni, güncel bir kopyasını kullanarak yeni bir yedek kova oluştururuz ve bu işlemi tekrar ederiz. Bu, işe yarayacak ve depolama / aktarım maliyetlerini en aza indirecek gibi görünüyor, ancak çoğaltmanın, önce kontrol eden istemciye veri getirmeden kovadan kovaya aktarımlara doğrudan izin verip vermediğinden emin değilim.

Yani, sanırım burada birkaç soru var. Birincisi, S3 sürümlendirme hiç değiştirilmemiş dosyaların kurtarılmasına izin veriyor mu? Kaçırdığım dosyaları S3'ten Glacier'a kopyalamanın bir yolu var mı? Yineleme veya başka bir araç, transfer maliyetlerini önlemek için dosyaları S3 kovaları arasında doğrudan aktarabilir mi? Son olarak, S3 verilerini yedekleme yaklaşımımın işaretini kaldırıyor muyum?

Sağlayabileceğiniz herhangi bir fikir için şimdiden teşekkür ederiz!

Güncelleme

Amazon kısa süre önce versiyonlamanın artık yaşam döngüsü kurallarıyla çalıştığını duyurdu


aws.amazon.com/blogs/aws/archive-s3-to-glacier/... + buzul için s3 açıklayan altındaki güzel kısa youtube video var
equivalent8

Yanıtlar:


10

S3 kovaları için sürüm oluşturma özelliği hakkında okudum, ancak değişiklik geçmişi olmayan dosyalar için> kurtarma mümkün olup olmadığını bulamıyorum. Sürüm> için AWS belgelerine bakın:

Sadece denedim. Evet, orijinal sürümden geri yükleyebilirsiniz. Dosyayı sildiğinizde bir silme işareti yapar ve bundan önceki sürümü geri yükleyebilirsiniz, yani: yalnızca tek, revizyon.

Ardından, nesne yaşam döngüsü> yönetimini kullanarak S3 dosyalarını Glacier'a yedekleyebileceğimizi düşündük:

Ancak, dosya nesnesi Glacier'a kopyalanmadığı, ancak> Glacier'a taşındığı için bu bizim için işe yaramayacak gibi görünüyor (daha doğrusu, değiştirilen bir nesne niteliği gibi görünüyor, ancak her neyse ...).

Buzul gerçekten çok nadiren erişilen uzun süreli depolama için tasarlanmıştır. Ayrıca, verilerinizin büyük bir kısmını tek seferde geri almak çok pahalı olabilir, çünkü çok sayıda verinin zamanında geri yüklenmesi (yüzde olarak) anlamına gelmez.

Son olarak, her ay aylık tam bir yedekleme görevi görecek yeni bir kova oluşturacağımızı ve orijinal kova verilerini 1. Gün'de yenisine kopyalayacağımızı düşündük. org / ) yedek kovayı her gece senkronize ederiz.

Bunu yapma, hesap başına sadece 100 kovaya sahip olabilirsiniz, bu nedenle 3 yıl içinde kova desteğinizin üçte birini yalnızca yedeklemeyle almış olursunuz.

Yani, sanırım burada birkaç soru var. Birincisi, S3 sürümlendirme hiç değiştirilmemiş dosyaların kurtarılmasına izin veriyor mu?

Evet

Kaçırdığım dosyaları S3'ten Glacier'a kopyalamanın bir yolu var mı?

Bildiğim kadarıyla hayır


Teşekkürler Sirex, bir açıklama: bir seferde sadece bir yedek kova (mevcut ay) tutmayı ve geçen ayın yedeklemesini Glacier'a arşivlemeyi ve daha sonra bazı genel saklama politikasında (her ay 3 ay boyunca Glacier kopyalarını silmeyi amaçladık) üç ayda bir). Bunun mümkün olduğunu düşünüyor musunuz yoksa bu stratejiyi engelleyen başka AWS sınırlamaları var mı?
Fiver

hmm, sanırım bu makul. Gerçi öfkeyle denemedim (veya bu konuda buzul, Sydney kullanıyoruz ve içine baktığımızda mevcut değildi)
Sirex

3

i s3 monte etmek istemiyorum, çünkü onun yavaş ve asmak ve eski okul nfs gibi gerçekleştirir. sadece yukarı / aşağı gerektiği gibi daha iyi.

http://s3tools.org/s3cmd

betiği kolay ... ~ / .s3cfg dosyanızı unutmayın


Vay canına, bu harika görünüyor!
JakeGould

@nandoP +1 Ben s3cmd kullanmayı ve kendimi haddeleme düşündüm
Fiver

1

Temel olarak S3 kovalarınızı yerel dosya sistemleriymiş gibi bağlayan S3FS'ye ihtiyacınız olabilir:

http://code.google.com/p/s3fs/wiki/FuseOverAmazon

Amazon S3 için web kontrol panelinde oluşturulanla aynı klasör yapısını koruduğundan bu çatallı sürümü kullanmayı tercih ederim:

https://github.com/tongwang/s3fs-c

Sonra temelde rsyncyerel kurulumlarımı veri senkronize etmek için kullanılan bazı kabuk komut dosyaları var .

Genel olarak, S3FS'nin en iyi Amazon S3 kovalarına yerleştirilen içeriği okumak için çalıştığını düşünüyorum. Yazmak o kadar tutarlı değil. Ancak S3 kovalarını yedeklemek için, S3FS'nin Tony Wang çatalı harika çalışıyor.


1
Kulağa faydalı geliyor. İstemciye indirmeden doğrudan kovalar arasında aktarılıyor mu?
Fiver

Muhtemelen evet. Ben esas olarak yerel bir sunucuya monte etmek ve yerel makinelerimize yedekleme yapmak için kullanıyorum. Ancak yazma yeteneğine sahip olduğu için, veriyi kovalar arasında karıştırmak için bir “arasında geçiş” olarak kullanmam. Temel olarak bir ara makinede, bir kovayı bir montaj noktasına monte edin. Ardından diğer kovayı başka bir montaj noktası olarak monte edin. Ve sonra sadece bir rsync yapın. Ama dediğim gibi, değişiklik zamanları / tarihleri ​​Amazon S3 ile garip olabilir, çünkü gerçekten bir dosya sistemi değildir. Ama deney.
JakeGould
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.