vSphere Flash Read Cache and Virtual Flash Host Swap Cache

tarafından 30 Ekim 2014 tarihinde VMware, VMware ESXi, VMware vCenter kategorisine yazıldı.

Merhaba,

vSphere 5.5 ile duyurusu yapılan vSphere Flash Read Cache özelliğinden daha önce bahsetmemiştim. vSphere Flash Read Cache kısaca vFRC olarak bahsedilen özellik, ESXi üzerinde bulunan SSD’lerin Read cache olarak kullanılarak virtual machine’ler üzerindeki read IO’larını hızlandırmaya yarar.

Burada SSD diye bahsettiğim tabi sadece sata’dan bağlanan SSD’ler değildir. Sizin ortamınızda PCIe SSD kart’larını var ise bunuda vFRC olarak kullanabilirsiniz.

1

vFRC, virtual machine’in içerisinde çalışan uygulamanın disk blok’larını SSD veya PCIe kullanarak önbelleğe alır ve read işlemlerinde daha üstün bir performans sağlar. Normalde böyle bir yapı kullanmıyorsanız virtual machine’leriniz manyetik disk’ler üzerinden read/write işlemlerini yapar. Tabi bu teknolojinin aslında birden fazla yararı var. Örneğin siz bu ürünü kullanırsanız, storage üzerindeki yük’de azalmış olacak ve storage üzerinden çok fazla read işlemi gerçekleştirilmediği için vFRC kullanmayan diğer virtual machine’lerin yaptığı read/write işlemlerine daha az latency ile yanıt verecektir. Ufak bir yatırım ile aslında büyük bir performans’a sahip olacaksınız.  Örneğin 1TB boyutunda bir SSD aldınız. Almış olduğunuz SSD’nin hepsini tek bir virtual machine’de kullanmak yerine birden fazla virtual machine üzerinde bunu kullanabilirsiniz. Yani virtual machine bazında kaç gb’lık cache kullanılacağını siz belirleyebilirsiniz.

vFRC’nin 2 tane bileşen’i vardır:

Flash Pool: SSD kullanılarak ESXi üzerinde oluşturulan cache pool’udur. vFRC ilk olarak create edildiğinde ESXi üzerinde bu özel bir dosya sistemi ile oluşturulur. Bu dosya sistemi’nin ismi VFFS’dir. Read cache virtual machine’lere eklendiğinde her virtual machine için ayrı ayrı VFFS oluşturulur. Tabi burada oluşacak VFFS boyutları sizin virtual machine’e atadığınız read cache ile orantılı olacaktır. Siz virtual machine’e 4gb read cache belirlerseniz o virtual machine isminde 4gb boyutunda VFFS dosyası oluşur. Virtual machine’in üzerinde her read işlemi olduğunda bu VFFS dosyasına yönlendirilir ve daha yüksek bir IO gerçekleşir.

Flash Cache Module: Diğer bileşen ise, vSphere Flash Read Cache’in bir parçası olan Flash Cache Module’dur. Flash Cache Module daha çok mimari anlamda cache’lemenin nasıl çalışacağını belirler. Yani bunun içerisine ARC,LRU gibi birden fazla feature işin içine giriyor oyüzden detaya girmiyorum.

Bu feature yanlızca vSphere 5.5 versiyonunda kullanılabiliyor. Bundan önceki sürümlerde kullanılamıyor. Ayrıca şunuda belirtmek istiyorum. Eğer bu feature’a sahip iseniz yanlızca Web Client üzerinden düzenleme ve ayarlama yapabiliyorsunuz. Yani vSphere Client ile işlem yapamıyoruz.

Yukarıda da belirtmiştim, bu özelliği kullanabilmemiz için SSD disk’e veya PCIe SSD kartlara sahip olmamız gerekiyor. Benim test ortamımda PCIe SSD olmadığı için normal bir SSD kullanıyorum.

Not: Virtual Flash Read Cache’i kullanabilmeniz için virtual machine’in hardware version 10 olması gerekmektedir.

23

Öncelikle bir flash pool oluşturuyorum. Burada bir konuya dikkatinizi çekmek istiyorum. Flash pool içerisine maximum 8 tane device ekleyebiliyoruz. Eklenen her device’in da maximum 4TB boyutunda olması gerekiyor. Yani bu durumda 8×4 32TB’lik bir flash pool oluşturabiliyoruz. Tabi bu rakamlar vSphere 5.5 için geçerli ilerleyen versiyonlarda dahada bu rakamların artacağını düşünüyorum. Flash pool’u create ettikden sonra aslında fazla bir işimiz kalmıyor ve sadece virtual machine’e vFRC’yi eklemek kalıyor. Her virtual machine için yanlızca 1 tane vFRC ekleyebiliyoruz. Eklenen her vFRC için birtane’de VFFS oluştuğunu yukarıda belirtmiştim. Herkes’in aklına şu soru gelebilir “Virtual machine kapandığında bu dosya ne oluyor?” Bunun cevabı çok basit. Virtual machine kapandığında VFFS dosyası siliniyor. Yani SSD üzerinde bir yer kaplamıyor. Ancak tabi virtual machine’ini tekrar power on ettiğinizde sizin vermiş olduğunuz read cache kadar VFFS dosyası tekrar oluşacaktır.

5

Virtual Flash Read Cache’in virtual machine’e eklenmesi oldukça basit. Bunun için ilk önce Web Client ile vCenter’a bağlanıyoruz ve burada Virtual Flash Read Cache’i ekleyeceğimiz virtual machine’nin Edit Settings’ine giriyoruz. Virtual Hardware tab’ı altında bulunan Harddisk sekmesini genişletiyoruz ve Virtual Flash Read Cache seçeneğine, Read için kullanılacak disk miktarınız giriyoruz. Advanced seçeneğinden, Reservation değerini değiştirebilirsiniz. Ayrıca block size’ida buradan değiştirebilirsiniz. Block size’in değiştirilmesi çok güzel birşey çünkü database veya webserver’ler için farklı block size’larda read cache’ler kullanabilirsiniz. Yani ihtiyaca göre seçim yapabiliyoruz. Eğer bu virtual machine’de Virtual Flash Read Cache kullanılmasını istemiyorsanız ozaman yapmanız gereken Reservation bölümüne 0 girmek olacaktır.

Eğer ESXi’ın bulunduğu sunucuda bir SSD var ise bunu Host Swap Cache olarak ‘da kullanabilirsiniz.

Host Swap Cache:

Bu özellik aslında vSphere 5.5’de gelmedi. Önceki sürümlerdede bu özellik bulunmaktaydı. Bu özelliğin amacı ESXi üzerinde oluşan over commit’in normal manyetik disklerden karşılanmak yerine SSD üzerinden karşılanmasını sağlar. Yani host üzerinde memory balloning, Trasparent page sharing, memory compression bizi özelliklerin hepsini optimize eder. Bu özellik sayeinde ESXi host’da performans anlamında belirli düzeyde iyileştirmeler sağlandı. Virtual Flash Read Cache özelliğini virtual machine’lerde kullanırken aynı zamanda Host Swap Cache için’de bu SSD üzerine tanımlama yapabilirsiniz. Yani virtual machine read cache kullanıyor host bunu kulllanamaz gibi bir durum söz konusu değil.

6

vSphere Web Client ile vCenter’a bağlantıkdan sonra Host’u seçip Manage > Settings > Virtual Flash Swap Cache Configuration seçeneğini giriyoruz. Edit butonundan aktif ediyoruz ve Virtual Host Swap Cache miktarını belirtiyoruz. Tamamen ihtiyaçlarınız doğrultusunda belirlemeniz gerekiyor. Yani ben burada örnek vermek için 25GB olarak belirledim.

Host Swap Cache’in herhangi bir etkisi yok ancak Virtual machine üzerinde vFRC belirlediğinizde bu işler biraz değişiyor.

Snapshot: Virtual machine’de vFRC tanımlı olduğunu düşünelim. Virtual machine ‘in snapshot’ı alındığında vFRC önbelleğinde dosyalar’ında snapshot’ı alınır mı? Budurumda cache file korunur. Virtual machine’i snapshot’dan geri dönüldüğünde VFFS üzerinde bulunan cache file silinir ve tekrar oluşturulur. Yani dolayısıyla snapshot operasyonlarında ileri veya geri dönüldüğünde cache file tekrar oluşur.

Fast Suspend/Resume (FSR): Fast Suspend/Resume ‘a örnek olarak virtual machine’e online olarak cpu memory eklemeyi düşünebilirsiniz. Online Cpu ve memory eklendiğinde makina anlık olarak donar. Bu durumda virtual machine’de tanımlı olan virtual flash read cache korunur. Yani silinme gibi bir durum söz konusu değildir.

VM Suspend/Resume: Virtual machine Suspend konuma alınıp daha sonra Resume edilirse orjinal cache file silinir resume edildikten sonra tekrar yeni bir cache file oluşturulur.

Power Off: Aynı yukarıda olduğu gibi. Virtual machine restart veya power off edildiğinde mevcut cache file silinir ve yeni bir cache file oluşturulur.

7

vMotion: vSphere 5.5 ile birlikte gelen bir özellik olduğu için, vFRC vmotion ile tam entegre bir biçimde çalışmaktadır. Ancak burada dikkat edilmesi gereken birşey var. Eğer siz cache file ile birlikte migrate işlemini yapmak istiyorsanız, migrate edeceğiniz host’da da Cache pool ‘un olması gerekiyor.  Aksi takdirde uyarı ile karşılaşırsınız. Migrate esnasında karşınıza iki tane seçenek çıkar.

Always migrate the cache contents: Cache dosyaları ile birlikte migrate eder.

Do not migrate the cache contents: Cache dosyaları migrate edilmez. Virtual machine diğer host üzerine geçtiğinde yeni cache dosyaları oluşur.

DRS: DRS, vFRC tanımlı virtual machine’lerde de etkindir ancak mümkün olduğu kadar bu makinaları taşımaz. Yani DRS bunun üzerinde vFRC tanımlı olduğunu bilir ve başka bir host’a extreme bir durum olmadıkça taşımaz. Ama siz tabi host’u maintenance mode’a alırsanız başka bir host üzerine almak durumunda kalacaktır.

vSphere HA: vSphere HA vFRC kullanan virtual machine’leri protect konuma alır. Yani virtual machine üzerinde vFRC tanımlı olması veya tanımlı olmaması birşey değiştirmiyor. Host’un fail durumunda virtual machine diğer host üzerinde reboot olarak açılır ve o host’a tanımlı flash pool üzerinden read cache işlemlerine devam eder. Eğer diğer host üzerinde flash pool tanımlı değil ise, vSphere HA virtual machine’i o host’da start edemez. Yani Flash pool’un mutlaka host’lar üzerinde tanımlı olması gerekmektedir.

İlerleyen zamanlarda vFRC’nin virtual machine üzerindeki performans’ını gösteren bir yazı da yayınlayacağım.

Umarım faydalı olmuştur.

İyi çalışmalar.

Bu yazı blog üzerinde Tayfun DEĞER tarafından paylaşılmıştır. 2009 yılında açılan blog kısa zaman içerisinde büyük bir izleyici kitlesine sahip olmuştur.Tayfun DEĞER danışmanlık ve eğitimler vermektedir. vExpert 2013-2015, VCP5, VCP5-DT, VCP-Cloud ve MCSE sertifikalarına sahiptir.Twitter 'dan @tayfundeger veya RSS ile sitedeki değişiklikleri takip edebilirsiniz.

  • Tayfun hocam ellerine sağlık. Çok güzel bir makale olmuş.

  • Can Osman CAN

    Merhaba. Paylaşım için teşekkürler. Paylaşımınızdan ilham alarak elimdeki SSD diski ESXi 6 ya takarak performans sağlamak istedim ama başaramadım.
    Tecrübenizle yol göstermenizi bekliyorum.
    Hiyakem kısaca şöyle;
    Elimde OCZ-VERTEX3120 GB SSD var. HP proliant gl380 G7 sunucuya array conf Raid 0 ile bağladım. Esxi 6 sunucu çalışıyor. ESXİ VMware vSphere Client ile bağlanınca “configiration/Host Cache..” bölümünde disk görünmüyor. Storage bölümüdede Non-SSD olarak belirtiliyor.
    NOT: Sunucuya SSD diski Raid olmadan ayrı bir sata portu olmadığı için bağlayamadım.
    Sizce nerede yanlış yapıyorum? Teşekkürler.

    • Merhaba,

      Non-SSD olarak belirtildiyse maalesef göremezsiniz. Anladığım kadarıyal kullanmış olduğunuz donanım, sahip olduğunuz SSD’yi support etmiyor. Belki BIOS güncellemesi ile support gelmiş olabilir. İsterseniz BIOS’unuzu update edip tekrar deneyin. SSD olarak gördüğünüzde ancak kullanabilirsiniz.

      • Can Osman CAN

        Değiniz gibi yapacağım. Ama şuda bir gerçek, Raid yaparken ssd disk olarak görüyor, ilo3 den donanım bilgisine bakıncada disk bilgisini OCZ.. Marka/model Olarak algılıyor. O yüzden şüphede kaldım. Aklıma takılan; yabancı forum sitelerinde ssd diski sata porta direk, raid karta bağlamadan takın yazılmış. Alakası olabilirmi? Esxi server raid yapılmış diski algılamıyor olabilimi? PCI e girişli sata port çoğaltıcı alsam diyorum.