FlashCache ile ES'yi geliştirme


14

RAID 1'de (SW-RAID) çalışan 2 HDD (2x 1 TB) bir sunucum var. Kullanarak IO performansını artırmak istiyorum flashcache. Kullanarak üzerinde çalışan KVM sanal makineleri var LVM.

Bununla ilgili olarak, aşağıdaki sorularım var:

  • Bu işe yarayacak mı? flashcacheblok cihazlar için çalışır, ancak bunların hepsi kendi kurulumlarına sahip sanal makinelerdir.
  • Performansı ne kadar arttırmayı bekleyebilirim? Çoğu sanal makine web siteleri ve bazı ev sahibi oyunlar çalıştırır.
  • SSD'nin ne kadar büyük olması gerekir? Daha fazla dosya önbelleğe alabildiği için daha büyük bir SSD'ye sahip olmak performansı artırır mı?
  • SSD ölürse ne olur? Misiniz flashcachegeleneksel HDD dosya almak ve ben sadece SSD'yi değiştirmek olabilir?
  • Ve writebackile karşılaştırıldığında ne kadar hızlı olurdu ?writethroughwritearound

Ne yazık ki bir test sistemine erişimim yok, bu yüzden flashcachediskleri sökmeden canlı bir sunucuya kurabilir miyim ? Burada kullanacağım harika bir öğretici buldum .


Ana diskleriniz olarak SSD'leri kullanabilseydiniz daha tutarlı performansın keyfini çıkaracağınızı düşünüyorum.
ewwhite

Test sistemine erişiminiz yok mu? Tek ihtiyacınız olan bir HDD, SSD ve iki sanal diske sahip bir sanal makine (her cihazda bir tane bulunur). Üretim sistemleri öğrenme laboratuvarı olarak kullanılmaz.
Skyhawk

Bağlantı, bahsettiğiniz öğreticide öldü. Bu bilgiyi bulabileceğim başka bir yer var mı?
Thaeli

Yanıtlar:


18

Flashcache, daha önce görmemiş olanlar için, Linux blok önbelleğini bir SSD sürücüsüyle genişletmek için bir yöntemdir. Sadece önbellekleme için yarım TB RAM'e sahip bir sunucu çalıştırmaktan daha ucuzdur.

Bu işe yarayacak mı?

Olması gerekiyor. Linux blok önbellek , dosyaları değil erişilen blokları önbelleğe alarak çalışır . KVM makinelerine blok cihazlara doğrudan erişim vermediğiniz sürece (siz değilsiniz), Linux Blok Önbellek oyunda olacaktır. Eğer Ancak, olan cevabı KVM makinalar direkt blok-cihaz erişim sağlayarak daha az belirgin yoktur.

Dosya destekli sanal diskler kullanıyorsanız, kesinlikle işe yarayacaktır.

LV destekli sanal diskler kullanıyorsanız, bilmiyorum.

Performansı ne kadar arttırmayı bekleyebilirim?

Bu cevaplayamayacağımız bir şey. Bu çeşitli şeylere bağlıdır. Özet olarak, SSD'nizi aktif blok kümesinden daha büyük olacak şekilde boyutlandırmak için en iyi performansı elde edersiniz. Mükemmel bir önbellek alırsanız, performansınız tüm sisteminizi SSD'lerde çalıştırmaya benzer. Hangi etkili bir şekilde yapacaksınız.

SSD'nin ne kadar büyük olması gerekir?

Tam olarak ihtiyacınız olan boyutu bulmak, yardımcı olamayacağımız bir şeydir. Açıkçası daha iyi, ama önbellek-SSD ve birincil depolama arasındaki tam oranı bulmak basit bir mesele değil.

Bunu karmaşık hale getirmek, belirli dosya sistemi işlemleri ve bazı veritabanı yapılandırmaları gibi hemen sıfırlanacak şekilde ayarlanmış yazılardır. Bu yazma işlemleri yalnızca kısa bir süre için önbelleğe alınır ve performansları, flashcache'nin varlığı veya yokluğundan hiçbir şekilde etkilenmez.

SSD ölürse ne olur?

Aynı şey, Linux'a önbellekleri bırakmasını ancak bir bükülme ile söylediğinizde de olur. Damla önbelleklerde, blok önbellekteki tüm boşaltılan yazma işlemleri diske temizlenir. SSD kaybolduğunda ne olur önbellek moduna bağlıdır :

Writethrough : Tüm yazma işlemleri önbelleğe ve birincil depolamaya paralel olarak yazılır, bu nedenle VM'lerde ani SSD kaybına neden olan hatalar çok azdır.

Yazma : Tüm yazma işlemleri birincil belleğe yazılır ve yalnızca okunduğunda önbelleğe alınır. VM'lerde hata şansı yok.

Geri yazma: Tüm yazma işlemleri önce Önbelleğe gider ve arka planda birincil belleğe yazılır. SSD'nin başarısız olması durumunda VM'lerinizde hatalara neden olma olasılığı en yüksektir ve bu modu üretimde kullanmam.

Geri yazma, geri yazma ve geri yazma ile karşılaştırıldığında ne kadar hızlı olur?

Ne kadar yazdığınıza bağlı. Yazdıklarınız düzenli olarak birincil depolama alanınızı doyurursa, performans artışı oldukça önemli olabilir. Çoğunlukla bazı yazılar yazdıysanız, büyük olasılıkla iyileştirmeler fark edemezsiniz.

Ayrıca, geri yazma yaptığınız şey için kötü bir politikadır, bu yüzden kullanmayın.


1
Merhaba sysadmin, kapsamlı cevabınız için teşekkürler. writebackBazı BBU olmadan her şeyi bozabileceğinden kullanmayacağım . Sonuçta normal bir SSD dışında SSD önbellekleme kullanmayacağım. Tekrar teşekkürler!
Devator

4

Evet, doğru blok cihazları kullandığınız sürece iyi çalışacaktır. Ve bir hile var.

LVM PV'leri tararken, bölümü gerçek sabit sürücünün kendisinden ve flashcache "sanal" aygıttan da görmelidir.

Açık bir belirti, LVM araçlarının yinelenen PV'lerden şikayet etmesidir.

Bu uyarıları önlemek ve daha da önemlisi, flashcache cihazının LVM2 tarafından kullanıldığından emin olmak için düzeltme, filtreyi uyarlamaktır /etc/lvm/lvm.conf.

LVM.CONF(5)Manpage benden daha iyi açıklayacaktır ama eğer ben bir örnekle size bırakacağım tüm fiziksel hacimleri flashcache tarafından desteklenmektedir:

filter = [ "a/.*dm.*/" ]


1

Bazı uygulamalar dosyaları arabelleğe alınmayan bir şekilde açar.

http://man7.org/linux/man-pages/man2/open.2.html

O_DIRECT (Linux 2.4.10'dan beri) Bu dosyaya gelen ve giden I / O'nun önbellek etkilerini en aza indirmeye çalışın. Genel olarak bu performansı düşürür, ancak uygulamaların kendi önbelleklemelerini yaptığı gibi özel durumlarda yararlıdır. Dosya G / Ç doğrudan kullanıcı alanı tamponlarına / arabelleklerinden yapılır. O_DIRECT bayrağı tek başına verileri senkronize olarak aktarma çabası gösterir, ancak O_SYNC bayrağının verilerin ve gerekli meta verilerin aktarıldığını garanti etmez. Senkron G / Ç'yi garanti etmek için, O_DIRECT'e ek olarak O_SYNC kullanılmalıdır. Daha fazla tartışma için aşağıdaki NOTLAR'a bakın.

Örneğin, bu veritabanları için çok yaygındır. Bu nedenle, flashcache'nin bu uygulama kümesiyle çalışıp çalışmadığını iki kez kontrol edin.

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.