VMware UNMAP Nedir? Nasıl Kullanılır?

Merhaba arkadaşlar, uzun süredir yazamıyordum. Sizlerden gelen istekler doğrultusunda ilerlemeye çalışıyorum bu doğrultuda bugün UNMAP nedir? ve nasıl kullanılmalıdır, ESXi versiyonları arasında hangi farklılıklar bulunmaktadır optimum olarak nasıl ayarlanmalıdır konularına değinmeye çalışacağım.
Okumadıysanız öncelikle VAAI’nin diğer 3 özelliğini anlattığım yazıma şuradan ulaşabilirsiniz : http://vmfs6.com/vsphere-vaai/

Yukarıda verdiğim başlıklar doğrultusunda öncelikle unmap’in ne olduğunu ve ne işe yaradığını anlatmakla başlamak gerekiyor sonrasında vSphere ortamımızda bunu kullanarak ne gibi yararlar edinebiliriz bunları irdeliyor olacağız.

Unmap Nedir?

Unmap vSphere Storage APIs Array Integration (VAAI) özelliklerinden birisidir ve temel olarak thin disk kullanılan bir yapıda taşınan/silinen verinin storage array tarafından geri alınmasını sağlar. Unmap çalışmayan bir ortamda storage array Örneğin Guest Operating System içerisinde silinen bir verinin farkında değildir bu da alanın etkisiz kullanımına neden olmaktadır. Ancak bir SCSI komutu ile bunu storage array’e bildirmek ve atadığı alanı geri almasını sağlamak mümkündür. İşte tam olarak UNMAP thin provision disklerin değerini bu işi yaparak artırmaktadır. VMFS dosya sistemi ile biçimlendirilmiş bir diskte eğer VMFS versiyonu 5 ise UNMAP işlemi manuel 6 ise otomatik olarak yapılmaktadır.

UNMAP Nasıl Kullanılır?

UNMAP esxcli yardımıyla veya Guest Operating System içerisinden gönderilen komutlarla uygulanabilir. Bu durum VMFS6’da tamamiyle desteklense de VMFS5 için kısıtlı bir destek bulunmaktadır.
Burada halihazırda kullanım oranı çok yüksek olmayan VMFS5 konusunda yazmaktansa VMFS6 da UNMAP’in nelere kadir olduğundan bahsedeceğim. Nasıl kullanılacağı konusuna gelmeden önce de VMFS6’da nasıl çalıştığına bakalım:

Asenkron iade VMFS6’da UNMAP’in çalışma şeklidir ve şu özelliklere sahiptir:

  1. UNMAP komutları sabit ve aralıklı sayılarda gönderilir ve bu storage arrayde ani bir yüklenme olmasının önüne geçer.
  2. Boşaltılan bloklar toplanır ve hep birlikte iade edilir.
  3. Kontrol edilebilen ve uyum sağlayan parametrelere sahiptir.

Storage Array’in UNMAP’i destekleyip desteklemediğini öğrenmek için şu komutu çalıştırın: Delete Status yazan satır bakmanız gereken yer.

esxcli-vaai

Space reclamation granularity

Bu değer storage tarafından geri alınabilecek miktarı bytes cinsinden gösteren minimumdur. Storage array bu değerin altındaki sektörleri reclaim yapamayacaktır.
VMFS6’da granularity blok boyutuna eşittir. Eğer blok boyutunu 1MB yaparsanız granularity otomatik olarak 1MB gelecektir ve 1MB altındaki storage sektörleri reclaim(iade) olmayacaktır.
Aşağıdaki ekran görüntüsünde bu değer için örnek bir çıktı görebilirsiniz.

unmap granularity

Örnek kullanım şekli :

esxcli storage vmfs reclaim config get -l volume-ismi

Volume ismi veya UUID için “esxcli storage vmfs extent list” komutunu kullanabilirsiniz.

Bazı storage array’ler uygun seviyede(optimal) granularity önerebilir. Eğer önerilen seviye 1MB’dan büyük ise ESXi otomatik olarak unmap yapmayacaktır. Optimal olarak 1MB veya bölenleri seviyesinde optimal granularity varsa otomatik olarak unmap çalışacaktır. Örneğin: 64K 4K 512Bytes.

Reclaim Method :

Reclaim(geri alma/iade) işlemi için iki seçenek mevcuttur. Birincisi priority ikincisi ise fixed’dir. Priority methodunda VMFS5 için 2 mod VMFS6 için 4 aktif mod bulunur. Fixed modda ise MBps cinsinden bir bandwidth belirlenerek işlemin sürekli bu seviyede yapılması amaçlanır.

Reclaim Priority Mod: 

Aşağıdaki tabloda 1.kolon modları 2.kolon açıklamasını ve 3.kolon nereden ayarlanabileceğini göstermektedir.

NONE kapalıdır ve işlem yapılmaz vSphere Client ve ESXCLI
LOW(varsayılan) düşük(x) seviyede unmap yapılır. Ort: 25-50MBps vSphere Client ve ESXCLI
MEDIUM orta(2x) seviyede unmap yapılır. Ort: 50-100MBps ESXCLI
HIGH yüksek(3x) seviyede unmap yapılır. Ort: 100MBps üzeri. ESXCLI

vSphere Web Client aracılığı ile sadece none veya low seviyelerinde ayarlama yapabilirsiniz. Bu seviyeleri yükseltmek isterseniz ESXCLI kullanmak durumunda olduğunuzu unutmayın! vSphere 6.5 medium ve high değerlerini desteklememektedir.

Örneğin fix bir bandwidth ayarlamak için şöyle bir komut çalıştırabilirsiniz :

esxcli storage vmfs reclaim config set -l datastore_ismi –reclaim-method fixed -b 100

burada -l logical volume name ve – b MB cinsiden saniyelik bant genişliğini temsil eder.

Tüm Komutlar için : https://docs.vmware.com/en/VMware-vSphere/6.7/space-reclamation

Manuel UNMAP

Eğer storage array’de UNMAP latency’e sebep oluyorsa firmware desteği konusunda sıkıntılar varsa vb birçok konuda endişelere sahipseniz ve otomatik UNMAP’i kullanamıyorsanız o zaman bunu manuel olarak uygulamak gerekecektir. Bunun içinde ESXi hosta SSH istemcisi ile bağlanıp şu komutu uygulamanız yeterli olacaktır:

esxcli storage vmfs unmap -l datastore_ismi -n 100

Bu komutta dikkat edilmesi gereken parametre -n’dir. Bu parametre her iterasyonda kaç VMFS bloğunun unmap edileceğini belirler. Eğer birşey yazmazsanız default olarak 200 çalıştırır. Bu parametrenin çok yüksek olması soruna yol açabileceğinden storage vendor’a danışarak optimum değeri istemenizi öneririm. Komutu uyguladıktan sonra /var/log/vmkernel.log dosyasında unmap diye aratırsanız işleme dair çıktıları görüyor olacaksınız.

Sonuç ve Yorumlar:

Sonuç olarak unmap, kullanıldığında ve storage array’de düzgün handle edildiğinde thin provisioning için güzel sonuçlar verecek bir özelliktir. Eğer Guest Operating System veya ESXi seviyesinde verilen UNMAP komutları size latency olarak geri dönüyorsa veya APD/PDL I/O durması gibi sonuçlara neden oluyorsa burada incelenmesi gereken ilk yer storage array ve firmware olmalıdır. ESXi’ın eski sürümlerinde UNMAP’in çok çok iyi çalışmadığını ve manuel olduğunu biliyoruz ancak VMware bu konuya önem vermekte ve VMFS6/ESXi 6.5 ile birlikte uygun bir calışma biçimi elde etmiş bulunmakta. 6.7’de gelen ve geliştirilen yeni özellikler ile ise bu uygunluğu taçlandırmakta.
Onlarca farklı storage array bulunduğundan nasıl uygulamalısınız sorusuna verilecek tek bir cevap ne yazık ki yok. Bu yüzden sizin için uygun değerleri storage vendor ile birlikte çalışarak kendi ortamınızı test ederek bulmanızı ve bu VAAI özelliğini kullanmanızı öneririm.

Tolgahan Yılmaz

👋 Hi, I’m @tylmz. A virtualization and Software Defined Networking Expert interested in Cloud Computing, virtualization, performance tuning of distributed systems and Process Automation 🌱 Currently learning python and shell 💞️ Looking to collaborate on DevOps and process automation 📫 How to reach me; tolgahan_y [at] yahoo.com.tr.

1 Response

  1. 9 Mart 2020

    […] VAAI desteği nasıl kontrol edilir? […]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.