2013-07-02 23 views
6

Birden çok EC2 örneği arasında bir depolama alanını paylaşmak için bir sorunla karşılaşıyorum. Ağır işler yapmak zorunda kalacağım, bu yüzden bunu yapmak için çok fazla örneğe ihtiyacım var. Bir tarafta, bir sunucu örneğine bağlı bir EBS birimi var. Diğer tarafta bir işçi örneğim var. Bu çalışan örneğinden bir AMI oluşturdum ve ardından bu AMI'nin birkaç kopyasını oluşturdum. Hepsi aynı VPC'de çalışıyor. Temel olarak sunucu örneği iş gönderiyor ve işçiler işi yürütüyor. benim işçilerin iş çalışırken gibi pay depolama şey, bazı günlük dosyalarını kaydetmek istiyorum:Birden fazla AWS EC2 örneği arasındaki paylaşılan depolama alanı

worker_1/ logfile.log

worker_2/ logfile.log

ne olabilir Bunu yapmak için en iyi çözüm olmak mı?

  • Ben birden çok örneği aynı EBS hacmini takmak mümkün değildir okuyun.
  • Ben GlusterFS ama burada bir göz ne buldum vardı:

"bir ext4 dosya sistemi olan bir EBS biriminin çoğaltılmasını, farklı kullanılabilirlik bölgelerinde, iki sunucularıyla kavramının kanıtı gerçekleştirerek önce, GlusterFS'nin kullanılmaması gereken durumları listeleyeceğiz: Günlükler gibi birden fazla sunucudan eşzamanlı olarak yazılan ardışık dosyalar GlusterFS içinde günlükleri depolarsanız kilitleme sistemi ciddi sorunlara yol açabilir. Arşivlemek gerekirse. Gerektiğinde S3'e kaydedilmeden önce veya sonra çoklu sunucu kayıtlarını birleştirebiliriz. "

  • Ve son olarak, ben de s3fs monte S3 kova kontrol ettim ama çok iyi bir seçenek değil öğrendim:

"Sen kısmen güncelleştirmek olamaz s3fs dosyası ile tek bir bayt değiştirerek dosyanın tamamını yeniden yükleyecektir ". Daha sonra küçük bir artış yapmak istiyorsanız, o zaman kesin bir hayır. S3fs kullanamazsınız - S3 Sadece bir dosyayı aşamalı olarak değiştiremezsiniz. "

Sorunlarıma iyi bir çözüm olabilir ve işçilerimin günlük dosyalarını bir paylaşım depolama? Yardımlarınız için

teşekkürler!

Romanzo

+0

Benzer bir soruya da http://stackoverflow.com/questions/841240/can-you-attach-amazon-ebs-to-multiple-instances – Scott

cevap

4

Cevaplar için teşekkürler. ama sonunda örnekler arasında NFS kullanıyorum ve oldukça iyi çalışıyor!

+1

AWS'de NFS'yi önerebilirim. Herhangi bir sorun olmadan 1 yıldan fazla süredir çalışıyorum. Aynı bölgedeki ağlar çok iyi çalışıyor. NFS sunucusunun – WooDzu

+1

bakımı için 1 ekstra örnek gerekir. Ayrıca yeni AWS EFS hizmetini de kontrol edin: http://aws.amazon.com/efs/ – Charles

+0

NFS hala bir SPOF (tek hata noktası) ve AWS EFS sadece Oregon bölgesindeki önizleme modunda kullanılabilir. Yapabileceğimiz en iyi şey, NFS'ye özgü bir EBS birimi oluşturmak ve EC2 örneği düştüğünde, onu ayırmak ve onu başka bir örneğe eklemek olduğunu düşünüyorum. B/c hazırlık işinin yeni örnek üzerinde yapılması gerekmesine rağmen bu biraz zaman alacaktır. –

0

her işçinin (hatta belki kısa ömürlü bölümünde) yerel bir diskte onun günlükleri yazmak sahip seçeneği düşünün ve sonra mı Her işçi kendi büyük kayıt dosyasını tamamladıktan sonra S3'e yükler mi?

Bu, bir Hadoop kümesinde dağıtılmış bazı görevleri çalıştırmak için Elastic MapReduce kullandığınızda olana benzer.

Yüksek yazma hacmine sahip olursunuz (geçici disk bölümünü kullanırsanız, yerel bir diske yazıyordur) ve ayrıca dosyaları S3'e göndermek için yüksek veri aktarımına sahip olursunuz (çünkü birçok bant genişliğine sahip olursunuz) işçiler mevcut).

+0

cevabınız için göz atın. İşin tamamlanmasından sonra çalışanların günlüklerini yazmasını istemiştim (çünkü gerçekten uzun bir iş olabilir). Ama nihayet şu anda NFS'yi kullanmaya çalışıyorum. Nasıl gittiğini göreceğiz! –

+0

Başka bir seçenek de, çalışanlara, yerel sınıra (yerel dosyaya ekleyerek) günlükleri bir sınıra ulaşılana kadar (yazılan satır sayısı veya yazılan bayt sayısı veya geçen herhangi bir süre geçtikçe) yazmasını sağlamak olabilir. Limite ulaşıldığında, bu dosyaya yazmayı bırakın ve yeni bir tane yazmaya başlayın ve bitmiş dosyayı S3'e yükleyin. –

0

Bağlamdan tam olarak emin değilsiniz, ancak writing objects doğrudan monte edilmiş S3'te uygulanabilir mi?

3

this thread'da açıklandığı gibi ve sağlanmış olan bazı yanıtlarda, bu hedefi gerçekleştirmenin iki yaygın yolu, örnekler arasındaki veri erişimini paylaşmak için S3 veya NFS kullanmaktı.

April 9th 2015 Açık, Amazon, çözmeye çalıştığınız soruna çok daha iyi bir çözüm sağlayan Amazon Elastic File System (Amazon EFS) duyurdu.

+0

AWS EFS, yalnızca Oregon bölgesindeki önizleme modunda kullanılabilir ve önizleme modunun dışında olduğunda ve tüm bölgelerde kullanılabilir olduğunda hiçbir resmi kelime yoktur. –

İlgili konular