VSAN ve Storage Policies – Bölüm 1
Merhaba,
Daha önce VSAN ile ilgili çeşitli yazılar yazmıştım ama Storage Policy’den detaylı olarak bahsetmemiştim. Aslında VSAN’ın en önemli bölümlerinden birtaneside Storage Policy. Çünkü Storage Policy’lerde belirlemiş olduğun ayarlara göre VSAN o datastore üzerinde işlem yapmaktadır.
Her virtual machine’i farklı policy’lere atayarak, virtual machine’lere ekstra özellikler kazandırabilirsiniz. Oluşturacağınız policy’lere vereceğiniz özellikler virtual machine’lerin çalışma şeklini belirleyecektir. Örneğin çok önemli application’larınızın çalıştığı virtual machine’lerde read cache reservation yapmak istyor ve aynı zamanda bunlarda hata toleransını 2 yapabilirsiniz. Aynı şekilde bir policy oluşturup bu policy’e sahip virtual machine’lerin IOPS ‘larını limitleyebilirsiniz. Birden fazla Policy oluşturabilir, virtual machine’leri bu policy’lere atayabilirsiniz. Bu aslında biraz mimariye dayalı işlemlerdir. VSAN‘da kullandığımız storage policy’lerin ne işe yaradığını ayrıca aşağıda anlatacağım.
Storage Policy, software defined storage ve software defined datacenter’in önemli parçalarından birtanesinidir. Tabi bu durumda VMware vSAN’ın en olmazsa olmaz uygulamalarından birtanesidir. Virtual SAN yani VSAN kullandığınızda her virtual machine’i farklı methodlar ile barındırabilirsiniz. Örneğin bir virtual machine’de performance önemli iken diğerinde availability önemli olabilir. Bundan dolayı biz VSAN’da storage policy belirliyoruz. Virtual machine’lerin durumuna, ihtiyaçlarına göre storage policy kullanıyoruz. Daha önceki makalelerimde de göstermiştim, bir cluster’da Virtual SAN’i enable duruma getirdiğinizde tüm Virtual SAN cluster’ından tek bir datastore oluşturulur. Tabi siz isterseniz cluster’da farklı storage’ların datastore’larınıda kullanabilirsiniz. Ayrıca ekstra olarak Virtual SAN storage provider’ları register edip configure edebilirsiniz. Ama sizin ortamınızdaki disk array’da VASA enable durumda ise storage provider otomatik olarak eklenecektir zaten. Virtual SAN’in eski sürümlerinde bir bug vardı ve bundan dolayı Manage > Storage Providers bölümünden eklemek durumunda kalıyorduk. VSAN 6.2 kullanıyorsanız bu şekilde bir işlem yapmanıza gerek bulunmuyor.
Eğer storage providers bölümüne girdiğinizde Storage Provider’ları göremiyorsanız bunun için Synchronizes butonuna basmanız gerekiyor. Bu işlemi yaptıkdan sonra Storage Provider’larınız ve bunlara bağlı olan URL’ler gelecektir. Storage Provider’ları gördüğümüze göre Storage Policy’leri oluşturabiliriz. Ancak bu işleme başlamadan önce VSAN’daki storage policy’lerin ne işlem yaptığını kısaca öğrenelim.
VSAN, Storage Policy seçenekleri:
VSAN’ın çok farklı storage yetenekleri bulunuyor. Bunlar;
Number of disk stripes per object:
Bir virtual machine’in kaçtane stripe üzerinde tutulacağını belirleyebilirsiniz. Bu seçeneğin 1 den fazla olması daha iyi performans vermesine sebep olur ancak sistem kaynaklarını daha fazla tüketir. Default değeri 1’dir. Maximum 12’ye kaadar çıkartabilirsiniz. Default striping değerini değişmemelisiniz. Hybrid ortamlarda stripe manyetik diskler boyunca yayılır. All flash ortamlarda ise bu flash device’lar arasında yapılır. Burada yapacağınız ayarlar doğrudan kapasite ile ilgili olduğu için Virtual SAN ortamının kapasitesini mutlaka göz önünde bulundurun.
Flash read cache reservation:
Flash read cache reservation ayarladığınızda, virtual machine sizin belirlemiş olduğunuz kapasite kadar read cache yapabilir. Virtual machine disk yani vmdk’nın logical size’inin belirli bir yüzdesi belirtilir. Rezerve edilen flash kapasitesi başka neseler tarafından kullanılamaz. Eğer Flash read cache reservation ayarlamazsanız bu tüm objeler tarafından ortak olarak kullanılır. Bu seçenek daha çok belirli başlı performans problemleri çözmek için kullanılır. Ancak bu seçeneği ayarlamak zorunda değilsiniz. Read cache reservation ayarlandığında virtual machine ‘i migrate ettiğinizde rezervasyonları tekrar ayarlama gibi sorunlara yol açabilir. Bundan dolayı buna dikkat etmelisiniz. Flash Read Cache Reservation seçeneği all-flash cluster’da kullanamazsınız. Bu özellik yanlızca hibrit yapılarda desteklenmektedir.
Default değeri %0, Maximum değeri %100’dür.
Önemli: Default olarak Virtual SAN dinamik olarak talebe dayalı önbelleği ayırır. Bu özellik en esnek ve kaynakların en optimum kullanımını temsil eder. Sonuç olarak, genellikle, bu parametre için varsayılan 0 değerini değiştirmek gerekmez.
Bir performans sorununu çözerken bu değeri arttıracaksanız dikkatli olmalısınız. Birkaç virtual machine arasında fazla sağlanan cache rezervasyonları, flash device üzerinden daha fazla alan kullanılmasına ve bunun sonucunda performansın düşmesine sebep olabilir.
Number of failures to tolerate:
Bu seçenek bir virtual machine’in tolere edebileceği host ve device arızalarının sayısını tanımlar. Bir virtual machine provision ederken eğer storage policy seçmezseniz Virtual SAN default olarak bu policy’i atar. Default olarak değeri 1’dir. Maximum değeri 3’dür.
Önemli: Eğer siz Virtual SAN’in virtual machine’ler için bir mirror kopyasını tutmasını istemiyorsanız bu seçeneği 0 yapmalısınız. Ancak bu seçeneği 0 yaparsanız maintenance işlemlerinde çeşitli problemler yaşayabilirsiniz. Maintenance işlemlerini başarıyla tamamlayamayabilirsiniz. Bu seçeneğin 0 olması data’nın unprotected durumda olduğunu gösterir.
Eğer storage policy oluştururken Number of failures to tolerate seçeneğinde bir değer belirtmezseniz, Virtual SAN virtual machine’ler için tek bir mirror kopyası oluşturur. Birden fazla bileşen arızalanırsa veri kaybetme riskiniz bulunur.
Object space reservation:
Logical size yüzdesidir. VMDK’nin veya thick provisioned olarak ayarlanan virtual machine’lerin logical yüzdesidir. Default değeri %0 ‘dır. Maximum değeri %100’dür. Normal şartlarda kullanılmaması gerekir.
Disable object checksum:
Eğer bu seçenek No olarak işaretlenirse, data’nın veri bütünlüğünün bilgisini hesaplar. Bu seçenek Yes olarak işaretlenirse herhangi bir hesaplama yapılmaz. Virtual SAN, bir dosyanın her kopyasının kaynak dosya ile aynı olduğunu onaylamak için end-to-end sağlama yapar. Virtual SAN read/write işlemleri sırasında veri geçerliliğini denetler ve eğer bir hata tespit edilrse bu data repair edilir veya report edilir. Eğer checksum yaparken bir uyumsuzluk tespit edilirse bu Virtual SAN tarafından otomatik olarak repair edilir ve hatalı veri üzerine doğru veri yazılır. Checksum hesaplama ve hata düzeltme işlemleri arka planda yapılmaktadır. Default olarak bu değer tüm cluster’da No olarak işaretledir yani checksum enable durumdadır.
Failure tolerance method:
Performans veya kapasite için data replikasyon methodunu belirtilir. Eğer burada RAID-1 (Mirroring) – Performance seçerseniz, Virtual SAN nesnelerin bileşenlerini yerleştirmek için daha fazla disk alanı kullanır ve nesnelere ulaşmak için daha iyi performans sağlar. RAID-5/6 (Erasure Coding) – Capacity, Virtual SAN az disk alanı kullanır ancak buna bağlı olarak performans azalır. Burada RAID-5/6 seçerek RAID 5 özelliklerini kullanabilirsiniz. Bunun için 4’den fazla fault domain var ve Number of failures to tolerate 1 olarak ayarlanabilir. RAID 6 kullanmak için 6’dan fazla fault domain var ve Number of failures to tolerate 2 olarak ayarlanabilir.
IOPS limit for object:
VMKDK için IOPS sınırını tanımlar. I/O operasyonları hesaplanarak IOPS hesaplanır. Ancak burada ince bir nokta var. IOPS hesaplanmasında sadece read ve write operasyonları kabul edilir. Cache hit ratio ve squentiality kabul edilmez. Bir disk IOPS sınırını aşarsa I/O durdurma işlemleri uygulanır. Eğer IOPS limiti 0 olarak ayarlandırsay herhangi bir limite takılmaz.
Bir sonraki bölümde bu policy’lerin nasıl oluşturulacağını anlatacağım.
Umarım faydalı olmuştur.