Thin disk mi Thick disk mi?
Merhaba,
Thin disk mi Thick disk mi? adlı yazımda sizlere virtual machine’e vereceğiniz disk tipleri hakkında bilgi vereceğim. Bu konu oldukça merak ediliyor. Ayrıca bu seçenekler arasındaki performans farklarınıda bir çok kişi merak ediyor. Bu makalemde bu sorulara da cevap vereceğim. Bir virtual machine’e disk eklemek istediğinizde karşınıza 3 tane seçenek çıkar.
Bu seçenekler;
- Thick Provision Lazy Zeroed
- Thick Provision Eager Zeroed
- Thin Provision
Thin disk mi Thick disk mi?
Bir virtual machine oluştururken virtual machine’e disk eklemeniz gerekmektedir. Aksi halde zaten işletim sistemini kuramazsınız 🙂 Virtual machine’e disk eklemek istediğinizde karşınıza yukarıda belirtmiş olduğum seçenekler çıkar. Burada hangisini seçerseniz doğru olur? Bu tamamen mimarisel bir karardır. Net bir doğrusu yoktur çünkü kullanmış olduğunuz vmware ortamına göre değişkenlik gösterir. Bir virtual machine’e herhangi bir disk tiplerinden birini verdiğinizde isterseniz bunu daha sonra storage vmotion yöntemi ile farklı bir disk tipine çevirebilirsiniz. Veya virtual machine’in clone’unu alırken farklı bir disk tipine çevirebilirsiniz.
Hardware Acceleration destekleyen VMFS ve NFS datastore’lar yukarıda belirtmiş olduğum disk methodlarını destekler. Hardware acceleration desteklemeyen NFS datastore’larda yanlızca Thin Provision seçeneği kullanılabilir
Thick Provision Lazy Zeroed:
Default olarak Thick formatında bir virtual disk oluştururlur. Disk oluşturulduğunda sanal disk için gereken alan datastore’dan ayrılır. Bu virtual disk oluşturulduğu sırada tüm alanı alan bir disktir, ancak bu alan fiziksel ortamda bazı eski veriler içerebilir.Bu eski veriler silinmez veya üzerine yazılmaz, bu nedenle bloklara yeni veriler yazılabilmesi için sıfırlanması gerekir. Bu tür bir disk daha hızlı oluşturulabilir, ancak yeni bloklar için artan IOPS nedeniyle ilk yazma işlemleri için performans düşük olacaktır.
Thick Provision Eager Zeroed:
Thick Provision Eager Zeroed seçeneğini seçtiğinizde Fault Tolerance’in açık olduğu virtual machine’ler de bunu kullanabilirsiniz. Virtual disk için gereken alan aynı lazy zeroed ‘da olduğu gibi ayrılır. Ancak burada bir fark vardır. Lazy Zeroed seçeneğinde virutal machine oluşturduğunuzda disk hemen oluşurken, Eager Zeroed seçeneğinde virtual disk hemen oluşmaz. Bunun sebebi ise diskin sıfırlanmasından yani disk bloklarına sıfır yazılmasından kaynaklanmaktadır. Bundan dolayı bu disk ilk oluşturulma esnasında uzun sürecektir. Ayrıca bu disk üzerinde extend işlemi yaptığınızda virtual machine üzerinde anlık performans kayıpları yaşayabilirsiniz. Ayrıca en performanslı disk seçeneğidir.
Veri güvenliği nedeniyle, eager zeroed seçeneği daha yaygındır.Neden?Bir VMDK’yi sildiğinizde, datastore’daki veriler tamamen silinmez; işletim sistemi üzerine yazılana kadar bloklar kullanılabilir olarak işaretlenir. Bu datastore üzerinde eager zeroed ile bir virtual disk oluşturursanız, disk alanı tamamen silinir (yani sıfırlanır), böylece kötü niyetli kişilerin herkesin önceki verileri kullanmasını/kurtarmasını önler.
Thin Provision:
Sanallaştırma dünyasında en yaygın kullanılan seçeneklerden birtanesidir. Storage’da bulunan alanınızdak tasarruf etmek için kullanılır. Virtual disk’e yazmış olduğunuz değere göre alan ayrılır ancak içerisine veri geldikçe disk genişler. Yani siz 100GB bir virtual disk oluşturdunuz ve içerisine hiç birşey yazmadınız. Bu disk datastore’da belki 256mb yer kaplayacaktır. Ancak içerisine 10 GB’lık bir veri kopyalarsanız yanlızca 10GB’lık bir alan kaplayacaktır. Yani içerisine veri geldikçe disk kendini genişleticektir. Thin disk daha sonra daha fazla alana ihtiyaç duyarsa, maksimum kapasitesine kadar büyüyebilir ve kendisine sağlanan tüm datastore alanını kaplayabilir. Bu seçeneği seçtiğinizde data bloklarında hiç sıfırlanma olmaz 🙂 Bundan dolayı ufakta olsa performans kayıpları yaşanır.
Şimdi gelelim en çok sorulan soruya. Hangi seçeneği seçersek yüksek performans alırız?
Gelişen storage teknolojilerinde storage’lar okadar hızlı olmaya başladı ki artık sanallaştırma katmanındaki performans farklarını hissedemiyorsunuz bile. Bunda dolayı çok büyük datacenter’larda bile Thin seçeneği seçiliyor. Eğer çok özel bir ihtiyaç var ise, örneğin SQL, SAP gibi özel gereksinimleri olan uygulamalar var ise bunlarda Thick Eager Zeroed seçeneği kullanılabilir. Ancak Thick ve Thin arasında öyle sandığınız gibi büyük bir performans farkı bulunmuyor. Eğer siz storage’ınızda SSD veya NVME diskler kullanıyorsanız, Thin ve Thick arasındaki fark belki %5’in bile altında olacaktır.
Yukarıda yapılan testlerden bir örnek gönderiyorum. Buradaki rakamları incelediğinizde sequential IO taleplerinde aralarında çok büyük fark olmadığını görebilirsiniz ancak Random IO taleplerine baktığınızda Eager Zeroed disk tipinin daha iyi performans verdiğini görebilirsiniz. Yukarıda da belirttiğim gibi spesifik performans isteyen uygulamalarınızda Thick Eager Zeroed seçeneğini kullanabilirsiniz ancak komple sanallaştırma ortamında bu seçeneği kullanmak bana çok mantıklı gelmiyor. Çünkü sanallaştırma yaptığınızda kaynakları verimli bir şekilde kullanmanız gerekiyor. Eğer siz her virtual machine’e vermiş olduğunuz diski rezerve ederseniz yani thick seçeneğini kullanırsanız o zaman storage tarafında bir verimlilik elde edemezsiniz.
https://blogs.vmware.com/vsphere/2014/05/thick-vs-thin-disks-flash-arrays.html
Umarım faydalı olmuştur.
İyi çalışmalar.
Güzel bir bilgi, teşekkürler. SSD Raid yaptım, kendi hatalı sorguları ve sistemlerinin suçunu sanal sunucuya yıkan yazılım firmalarına nasıl cevaplar versek ki artık hebele hübele edemeseler hocam?
Yazılım katmanındaki bir sorunu fiziksel katmanda veya sanallaştırma katmanında konfigurasyon değişikliği ile çözemezsiniz. Bundan dolayı geliştiricinin altyapısına müdahale etmesi gerekir. Herşeyi düzgün yaptığınızdan eminseniz, uygulamanın kontrol edilmesi gerekir.
Oldukça güzel bir anlatım yapmışsınız. Her şey net bir şekilde anlatılmış