Space Reclamation In-Guest

Bir önceki yazıda, yalnızca sanal makinelerin ve sanal disklerin silinmesi veya taşınmasıyla ortaya çıkan ölü alanın doğrudan bir VMFS volume’de geri kazanılmasından bahsetmeye çalıştım.

ESXi, storage alanını geri kazanmak için doğrudan (guest) konuk işletim sisteminden verilen UNMAP komutlarını destekler. Destek düzeyi ve gereksinimler, sanal makinenin bulunduğu datastore türüne bağlıdır.

Bir sanal makine (guest) içindeki sanal diskte bulunan dosya sistemine veri yazıldığı zaman, sanal diski temsil eden dosya (.vmdk) genişletilerek gerekli kapasite VMFS’ten tahsis edilir. Veriler daha sonra storage’a yazılır.

ESXi’da In-Guest UNMAP

ESXi 6.0 ve hardware version 11’den önce, ESXi SCSI katmanını sanallaştırdığı ve UNMAP yeteneğini konuk işletim sistemine kadar raporlamadığı için konuklar bir sanal diskteki lokal UNMAP özelliklerinden yararlanamıyordu. Bu nedenle, konuk işletim sistemleri lokal olarak UNMAP’ı desteklese bile, sanal diskte bulunan bir dosya sistemine UNMAP komutu gönderemezler.

VMware, ESXi 6.0 ile birlikte bu sorunu çözmüş ve reclamation sürecini kolaylaştırmıştır. In-guest UNMAP desteği ile, hardware version 11 kullanan bir sanal makine içinde çalışan konuk işletim sistemi artık UNMAP komutunu doğrudan sanal disklere gönderebilir. Süreç aşağıdaki gibi ilerler:

  • Bir sanal makinenin içinde, örneğin thin virtual diskteki dosyaları sildiğinizde, depolama alanı boşaltılır.
  • Guest (sanal) işletim sistemi, UNMAP komutunu göndererek boş alan hakkında VMFS’i bilgilendirir.
  • Konuk işletim sisteminden gönderilen UNMAP komutu, VMFS datastore içinde yer açar.
  • Komut daha sonra storage’a ilerler, böylece storage serbest bırakılan blokları geri alabilir. Bunun için VMFS 5 datastore’lar için EnableBlockDelete parametresinin enable edilmesi gerekiyor.

In-guest UNMAP desteği aslında bu parametrenin etkinleştirilmesini gerektirmez. Bu parametrenin etkinleştirilmesi, uçtan uca UNMAP’a veya başka bir deyişle, in-guest UNMAP komutlarının VMFS katmanına aktarılmasına izin verir. Bu nedenle, bu seçeneği etkinleştirmek ESXi 6.x ve sonraki sürümler için best practice’dir.

VMFS3.EnableBlockDelete parametresini VMFS 5 datasore kullanılan ESXi 6.x ve 7.x host’lar üzerinde enable edin. VMFS6 datastore’lar için bu parametreyi enable etmeye gerek yoktur.

ESXi 6.0’da in-guest UNMAP sadece Windows Server 2012 R2 ve sonrası, Windows 8 ve sonrasını destekliyordu. ESXi 6.5 ile birlikte Linux işletim sistemi desteği de eklendi. In-guset UNMAP desteğinin düzgün bir şekilde çalışabilmesi için gereksinimler:

  • Virtual disk thin-provisioned olmalı
  • Windows işletim sistemleri için:
    • ESXi 6.0 ve sonrası
    • VM Hardware Version 11 ve sonrası
    • VMFS 5 datastore’lar için EnableBlockDelete parametresinin enable edilmesi
    • Desteklenen işletim sistemi olmalı
  • Linux işletim sistemi için:
    • ESXi 6.5 ve sonrası
    • VM Hardware Version 13 ve sonrası
  • Change Block Tracking (CBT) enable edilmiş ise, o virtal disk için in-guest UNMAP desteği ESXi 6.5 ile başlar.

In-Guest UNMAP Alignment Gereksinimleri

VMFS 6 için space reclamation kullanıldığında in-guest alignment için aşağıdaki durumlar geçerlidir:

  • VMFS 6, guest işletim sisteminden UNMAP isteğini yalnızca geri alınacak alan 1 MB’a eşit olduğunda veya 1 MB’ın katı olduğunda işleme koyabilir. Geri alınacak alan 1 MB’tan küçükse veya 1 MB’a align edilmişse, UNMAP istekleri işlenmez.
  • Varsayılan SEsparse biçiminde snapshot’ları olan VM’ler için VMFS 6, yalnızca ESXi 6.7 veya sonraki sürümlerinde otomatik space reclamation destekler. VM’leri ESXi 6.5 veya daha eski bir sürüme geçirirseniz, snapshot içeren VM’ler için otomatik space reclamation çalışmayı durdurur.

Leave a Reply