Etiketler

, , ,

Daha önce yazdığım makalede NetApp Flash Cache kartın ne olduğunu, ne işe yaradığını paylaşmıştım. (Link)

Aklınıza şu soru gelebilir? Tamam bu kart için benim bir ek configuration yapmama gerek yok ama nasıl çalışıyor? Bunu merak ediyorum.

Sorunuza cevap aramadan önce NetApp controller üzerinde bir Flash cache card takılı olmadan okuma isteği nasıl karşılanıyor ondan bahsedelim :

  • NetApp işletim sistemine (Data ONTAP) dışarıdan bir okuma talebi geldi.
  • Erişilmek istenen veri memory ‘de var mı yok mu kontrol edilir. Varsa hemen talep eden client yada host’a bu veri iletilir.
  • Eğer memory de yoksa bu veri disk’ten talep edilir.

Disk’ten bu verinin okunup, geri getirilmesi ve talep edene iletilmesi uzun sürebilir. İşte performans kayıplarının olduğu ve belki de her üreticinin “Ne yapabiliriz?, Bu süreyi nasıl kısaltabiliriz?” diye düşünüp çözümler ürettiği alan burasıdır.

Yukarıda belirtilen süreyi ne kadar kısaltabilirsek yani ne kadar az sayıda disklere bir veri okuma/erişim talebini gönderirsek, işimiz o kadar çabuk yürür. Çünkü talebi alan Data Ontap işletim sistemi bu veriyi memory den veya cache’ten kolayca iletebilir. Hele bir de bu veri sequential değil de random okuma gerektiriyorsa performans daha da düşecektir.

Tam bu nokta da memory ‘de veriyi tutabileceğimiz alan kısıtlı olduğu için ve bunu daha geniş bir yerde konumlandırıp, talep edene çok hızlı yanıt dönebilmek için NetApp Flash Cache Card’ları kullanıyoruz. Tabiki tek çözüm bu kartlar değil, Flash pool olarak isimlendirdiğimiz SSD bir shelf ile de çözüm üretilebilir. Bu kart ile ilerlemek daha az iş yükü ve maliyet çıkartıyor, ama ihtiyaca yönelik başka çözümlerden de daha sonra bahsedeceğiz.

NetApp storage controller ‘ımız için uygun Flash Cache Card’ımızı aldık ve taktık, çalışmaya başladı. Peki şimdi nasıl oluyor? Yani yine bir okuma talebi geldi, süreçte değişen ne oldu?

Memory buffer dan çıkartılacak veriyi bu karta aktarılıyor, yani eskiden sadece memory de tutuluyor, memory dolduğunda en az ihtiyaç olan data siliniyor ki, yeni gelen data bu alana konulsun. Burada değişen bir şey yok memory yine aynı çalışıyor, ancak artık memory de durmasına gerek olmayan data ondan daha geniş kapasiteye sahip Flash cache karta aktarılıyor ki, tekrar bu veriye erişim talebi geldiğinde bu talep disklere kadar gidip yol katetmesin, hemen flash cache’ten okunsun ve talep sahibine iletilsin isteniyor.

Flash cache card takılı bir storage üzerinde bu işi adımlarla gösterelim.

  • Okuma talebi NetApp Data Ontap’a geldi.
  • Önce memory ‘i kontrol ediyor, sonra Flash cache karta bakıyor ve veri orada.
  • Veriyi hemen oradan alıp memory’e yüklüyor ve talep sahibine iletiyor.

Böylece disklere gitmesine gerek kalmıyor. Tabiki veri değişirse, cache karttakinin bir anlamı kalmaz ve silinir.

NetApp ‘ın veriyi diskten okuması ile Flash cache karttan okuması arasında bildiğim kadarıyla yaklaşık 10 kat hız farkı olduğudur.

Peki Flash Cache kartın da belli bir kapasitesi var, dolarsa ne olacak?

Bu kartta aynı memory gibi dolmaya başlayınca daha yeni olan veri (caching data) için boş yer açılır. Aynı First In-First Out (FIFO) mantığı burada da uygulanmaktadır.

Aklınıza şu soru da takılabilir : Memory ‘den veri silindi, cache karttan veri silindi, ne olacak?

Biz burada sadece okuma taleplerinin nasıl karşılandığından bahsediyoruz. Yoksa orijinal veri storage disklerinde depolandı ve orada duruyor. Bu makale de “Daha önce yazdığımız ve storage disklerinden depolanan veriye ulaştığımız yolu nasıl kısaltırız ve veriye erişim talep edenlere nasıl daha hızlı yanıt verebiliriz?” bu sorunun yanıtından bahsediyoruz. Yeni yazma talepleri veya değişen veri bu makalenin kapsamına girmiyor, sırasında gelince onları da anlatmaya çalışacağım.

Herkese iyi haftasonları, keyifle okumanız dileğiyle.