Storage I/O Control ve VM Storage Policies

tarafından 1 Ocak 2019 tarihinde VMware, VMware ESXi, VMware vCenter kategorisine yazıldı.

Merhaba,

Bu yazımda sizlere Storage IO Control yani SIOC hakkında bilgiler vereceğim. Storage IO Control aslında çok eski bir özellik olmasına rağmen kullanılmayan özelliklerden birtanesidir. Bu yazımda Storage IO Controller’ın ne işe yaradığını ve ne zaman kullanacağımızı detaylı olarak anlatacağım.

Storage IO Control yani SIOC ilk olarak vSphere 4.1 ile birlikte tanıtıldı. vSphere 4.1 versiyonunda SIOC, Cluster içerisinde bulunan ESXi host’ların üzerinde çalışan virtual machine ‘lerin I/O önceliğini sağlamak için tanıtılmıştır. Evet ilk olarak vSphere 4.1 ile birlikte SIOC duyurusu yapıldı ancak her versiyon ile birlikte sürekli geliştirmeler yapıldı. Hatta vSphere 6.5 sürümü ile birlikte SIOC, VAIO framework kullanılarak tekrar düzenlenmiştir. VAIO terimini ilk defa duymuş olabilirsiniz. vSphere API for IO Filtering‘in kısaltılmasıdır. SIOC sayesinde I/O problemi yaşandığı dönemlerde I/O miktarını kontrol edebilirsiniz. Bir datastore üzerinde SIOC‘u etkinleştirdiğinizde, ESXi bu datastore ile iletişim kurarken latency’i sürekli kontrol eder. Latency belirli bir eşiği aştığında datastore’da performans problemi olduğu kabul edilir ve bu datastore’a erişen tüm virtual machine’lere I/O kaynakları belirlemiş olduğunuz share değerleri ile orantılı olarak dağıtılır. Sahip olduğunuz virtual machine’lerin önemine göre her bir virtual machine veya vmdk için share değeri ayarlayabilirsiniz. Share değeri aslında tüm virtual machine’ler üzerindeki disk bant genişliğini kontrol etmek için girilen temsili bir değerdir. Cluster üzerinde konfigurasyon yapamazsınız. Share değerleri yanlızca ESXi host ile ilgilidir. ESXi host üzerindeki virtual machine’lere atanan share değerlerinin diğer ESXi host üzerinde bulunan virtual machine’lere etkisi yoktur. Shares değeri temsili bir değer olduğu için değeri yüksek olan virtual machine daha yüksek öncelikli kaynak kullanır.

SIOC, Fiber Channel, ISCSI ve NFS datastore‘ları destekler. RDM‘i desteklemez. SIOC’u etkinleştirmek için öncelikle vCenter Server’a login oluyoruz.

vCenter Server‘a login olduktan sonra Storage bölümüne giriyor ve işlem yapacağımız datastore’umuzu seçiyoruz. Daha sonrasında Configure > General > Datastore Capabilities bölümünde edit butonuna basıyoruz.

SIOC‘u etkinleştirdiğinizde default olarak peak throughput değeri %90 için veya latency süresi 30 ms olarak ayarlanmıştır. Bu işlem her 4 saniyede bir kontrol edilir. Şimdi SIOC’u etkinleştirdiğinzde şu soruyu soracaksınız. Ben buradaki değerleri ne olarak belirlemeliyim? Öncelikle şunu söylemem gerekiyor ki burada belireteceğiniz değer sizin virtual machine’lerinizin iş yüküne göre değişkenlik gösterir. Yani her ortamda farklı değerler yazabilirsiniz. Bu tamamen mimarisel bir karardır. Threshold değerlerini düzgün ayarlamaz iseniz virtual machine’lerin performansı olumsuz şekilde etkilenebilir. Burada yüksek bir değer vermeniz datastore’u daha yüksek throughput ile kullanmanızı sağlar. Belirtmiş olduğunuz threshold değerleri aşılmadıkça disklerde herhangi bir kısıtlama olmaz. Eğer throughput, latency’den daha kritikse değeri çok düşük ayarlamamalısınız. Örneğin Fiber Channel diskler için 20ms altındaki bir değer vermeniz throughput ‘u düşürebilir. Çok yüksek bir değer girerseniz 50ms gibi, bu seferde throughput’da çok bir değişme olmaz ancak latency ile karşılaşabilirsiniz. Özet ile burada gireceğiniz değerler hem sizin virtual machine’leriniz üzerindeki iş yükü ile ilgili hemde storage performansınız ile ilgilidir. Bundan dolayı nereye nekadarlık değerler gireceğinizi yanlızca kendiniz bilebilirsiniz.

Eğer ortamda SIOC etkin durumda değil ise ozaman nasıl bir davranış sergilenir?

SIOC etkin durumda değil ise datastore içerisindeki tüm virtual machine’ler kaynak eşit şekilde bölünür. Ancak burada ilk olarak I/O talep eden virtual machine kaynağı öncelikli olarak kullanabilir. SIOC etkin durumda olmadığı için I/O ‘yu datastore düzeyinde düzenleyen hiçbir şey yoktur. SIOC’u etkinleştirdiğinizde mutlaka ve mutlaka disk share değerlerini değiştirmeniz gerekir.

Eğer siz her ESXi host için bu değerleri değiştirmek istemiyor iseniz, vSphere 6.5 ile birlikte Storage IO Control işlemini artık VM Storage Policies üzerinden de ayarlayabileceğiz. Peki Storage Policies ne işe yarıyor biraz bundan bahsedelim. VM Storage Policies sayesinde biz yapımızda bulunan virtual machine’lerin disk değerlerini merkezi bir şekilde yönetebiliyoruz. Örneğin yukarıda disk share değerlerinden bahsetmiştim. VM Storage Policies sayesinde belirlemiş olduğunuz gruptaki virtual machine’lerin share değerlerini toplu halde tanımlayabilirsiniz.

Ben daha önce VSAN ve Storage Policies ile ilgili 2 makale yazmıştım onlarıda inceleyebilrisiniz.

VSAN ve Storage Policies – Bölüm 1

VSAN ve Storage Policies – Bölüm 2

VM Storage Policies ile aşağıdaki değerleri tanımlayabiliyoruz.

IOPS Limit

IOPS Reservation

IOPS Shares

Siz yapınızda bulunan virtual machine’lerin hangi öncelik ile disk kullanacağını, bunların hangisinde IOPS limiti olacağını veya hangisinde IOPS rezervasyonu olacağını kendiniz belirlemelisiniz. Daha sonrasında VM Storage Policies bölümünden ilgili policy’leri oluşturup bunlara virtual machine’leri atayabilirsiniz. Virtual machine’e policy atadığınız zaman, policy’de belirmiş olduğunuz değer artık o virtual machine için geçerli olur.

Bunun için öncelikle, Home > Policies and Profiles > VM Storage Policies bölümüne giriş yapıyoruz. Burada Create VM Storage Policy bölümünden yeni bir Storage Policy oluşturuyoruz.

Yeni bir VM Storage Policy oluşturmak için ilk olarka Policy ismini belirtiyoruz. Description bölümününe isterseniz detaylı açıklama girebilirsiniz. Next ile devam ediyoruz.

Common Rules bölümünde Storage I/O Control bölümü altında default olarak tanımlanmış değerler vardır. Siz burada isterseniz varolan değerleri kullanabilir istersenizde custom değerini kullanıp kendi share değerlerini kendiniz belirleyebilir hatta burada IOPS limit, IOPS reservation, IOPS share değerleride belirtebilirsiniz. Ben burada High IO shares allocation değerini seçiyorum.

High IO shares allocation değerinin özelliklerini gördükten sonra Next ile devam ediyoruz.

Oluşturduğumuz Storage Policy’i tamamlamak için Finish butonunu kullanıyoruz.

Oluşturduğumuz Storage Policy’i bir virtual machine’e eklemek için virtual machine üzerinde sağ click VM Policies > Edit VM Storage Policies seçeneğine giriş yapıyoruz.

Edit VM Storage Policies bölümünde oluşturduğumu Storage Policy’i seçiyoruz ve Apply to all butonuna basıyoruz. Ardından Ok butonuna basarak bu bölümden ayrılıyoruz.

Virtual machine’e storage policy ataması yaptıktan sonra virtual machine’in summary bölümünde yer alan VM Storage Policies bölümünden bu virtual machine’in hangi storage policy’de çalıştığını görebilirsiniz.

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-2019, VCP4/5/6, VCP5-DT, VCP-Cloud ve MCSE sertifikalarına sahiptir.Twitter 'dan @tayfundeger veya RSS ile sitedeki değişiklikleri takip edebilirsiniz.

Kimler Neler Demiş?

avatar
  Subscribe  
Bildir