Dosyayı paylaşmanın en iyi yolu, dizini yatay olarak ölçeklenen web sunucularında yükler


9

Şu anda aşağıdaki renkli şemaya benzeyen bir drupal tabanlı web uygulaması için yatay olarak ölçeklenebilir bir küme oluşturmaya çalışıyorum:

Yük dengeleyici yapışkan oturumlar uygular, böylece kullanıcıya çalışmak için bir sunucu tahsis edildikten sonra durumu korur.

Her uygulama sunucusunda şunlar bulunur:

  • öndeki vernik
  • lamba yığını üzerinde çalışan drupal 6
  • arkada memcached

İki mysql veritabanı sunucusu paylaşılan bir IP üzerindedir ve DRBD ve kalp atışı ile bir HA kümesinde bulunurlar, böylece birini kaybetmek tüm platformu aşağı çekmez.

resim açıklamasını buraya girin

Hakkındaki görüşlerinizi takdir edeceğim konusunda emin olmadığım birkaç şey var:

Dosya depolama yatay olarak nasıl ölçeklenmelidir?

Her uygulama sunucusunda bir paylaşılan dosyalar dizini monte etmek için NFS kullanmayı düşünüyorum, bu yüzden hepsinde bir kez bir yerde yüklenen bir dosya mevcut. NFS'yi düşünüyorum çünkü uzun zamandır var ve MogileFS veya GlusterFS ile ilgili hiçbir deneyimim yok ve daha önce kullandığımız bir şey, bu yüzden daha aşina olduk.

NFS üzerinden bir dizini bu şekilde paylaşmanın akıllıca olduğunu düşünmek için izlenecek yönergeler var mı?

Buradaki paylaşılan dosya deposunda HA nasıl sağlanmalıdır?

Buradaki bir sorun, NFS sunucusunun tek bir hata noktası olmasıdır.

Zaten Mysql sunucularında Heartbeat ve DRBD kullanıyoruz ve bir yığındaki teknolojilerin sayısını mümkün olduğunca düşük tutmayı tercih ederim - dosya için aynı HA stratejisini kullanacak olsaydım hangi tuzaklar olurdu sunucular mı?

Alternatif bir yaklaşım

Bu, dahili bir site için, dahili bir girişim açıkken siteyi kısa süreler için çok yoğun bir şekilde kullanan sınırlı sayıda kullanıcı için geçerlidir. Bu nedenle, bazı başlangıçlar gibi kademesiz olarak ölçeklendirilmesine gerek yoktur.

Verilen

  • beklediğimiz trafikte bir üst sınır var
  • dosya sunucularına HA eklenmesi ve bunun gibi yatay olarak ölçeklendirilecek bir kurulum tasarlanması önemli derecede karmaşıklık getirir

Ayrıca, aralarında en yüksek yükü kaldıracak şekilde iki web sunucusunu daha Beefier yapmayı ve bir cron işinde iki arasında birleşme veya rsync kurmayı düşünüyorum:

  • dosyalar hala senkronize durumda (yapışkan oturumlar bir kullanıcıyı dosya yükledikleri sunucuda tutar)
  • birini kaybetmek, sitenin hala çalışır durumda olduğu anlamına gelir.

Bu, olası NFS / DRBD HA karmaşıklığı baş ağrılarını aşmanın olası bir yolu gibi mi geliyor?

Teşekkürler,

C

Yanıtlar:


3

NFS sunucusu en azından MySQL sunucusuyla aynı provizyona sahip olacaktır, çünkü temel olarak aynı işlev ve sınırlamalara sahiptirler (her ikisi de veri yazdığınız yerlerdir). NFS'ye birden çok yazar fikrinden hoşlanmıyorum, dosya kilitlerini yönetmeyi çok karmaşık hale getiriyor ve deneyimlerim bu noktada çok iyi gitmedi.

Benim önerim, tüm yazma işlemlerini uygulama sunucularından birine (belki de NFS sunucusunda yazmaya adanmış bir uygulama sunucusuna sahip olmak) ve yalnızca okuyan birden çok okuyucu uygulama sunucusuna konsantre etmek olacaktır (drupal'ın bazı dinamik küçük resimlere sahip olduğunu biliyorum. yazılır, ancak çoğunu bir RO fs'de tutabilirsiniz). HA'yı sağlamak için en az ikinci bir NFS sunucusuna ihtiyacınız olacak (SAN gibi paylaşılan bir depolama alanınız yoksa DRBD'yi kullanmak en iyi seçimdir).

Son olarak, Gluster ve diğer dağıtılmış sistemlere bir göz atın.


0

MogileFS'yi deneyebilirsiniz. Ben bunu projelerimizden biri olarak kullanmıştım. Kullanımı ve yapılandırması kolaydır ve ölçeklenebilir ve tek bir arıza noktası yoktur.

http://danga.com/mogilefs/


0

En iyi yol, iyi bir depolama çözümü bulmaktır. Uygulamanın ölçeğine ve türüne bağlı olarak, NFS desteği ve en az iki gigabit bağlantı noktası ve güç kaynağı (bazı kurumsal çözümlere göz atın) ile iyi bir NAS kullanabilirsiniz.

Uygulamanız konusunda gerçekten ciddiyseniz, en iyi seçenek bazı SAN çözümlerini kontrol etmektir, ancak bu özel bir donanım gerektirdiğinden çok pahalı olabilir (raf donanımıyla yapılabilir, ancak çok yavaş olabilir).

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.