vSphere VAAI, XCOPY, WRITE_SAME, ATS Nedir?

Merhaba,

VMware vSphere Storage APIs Array Integration (VAAI) nedir? Ne işe yarar? XCOPY , WRITE_SAME, ATS, UNMAP konularına VMware perspektifinden bir bakış yapacağım. Uzun zamandır yazmak istediğim ve elimin altında olması gereken bir döküman olacağına inanıyorum. Öncelikle VAAI ile başlayıp, sonrasında diğer 4 özelliği ve o özelliklerinde alt parametrelerini anlatacağım. Duruma göre sonradan detaylandırabilir veya her bir alt özelliği ayrı ayrı yazabilirim. Şimdilik hazırsak başlayalım.

VAAI Nedir?

VAAI Sanallaştırılmış bir ortamda ESXi host ile Storage katmanı arasındaki entegrasyonu sağlayan ve kaynak yönetimi konusunda ESXi host’un üzerinden ciddi bir yük kaldıran clone, copy, snapshot gibi operasyonların storage katmanında olup bitmesine aracılık ederek normalden daha performanslı gerçekleşmesini sağlayan bir plugin olarak nitelendirilebilir. VMware vSphere Storage APIs – Array Integration, ya da hardware acceleration, hardware offload APIs isimleriyle anılmaktadır.

VAAI’nin en temel amacı ise storage vendor’lara VMware I/O operasyonlarının daha efektif bir şekilde gerçekleştirilmesi için yardım etmektir. VAAI olmadan bir clone işlemi yapıldığında bu işlemi VMkernel Data Mover yönetir ve okuma/yazma yapabilmek için hosttan hem kaynak diske hem de hedef diske I/O yaratır. VAAI olan bir senaryoda ise API primitive olarak adlandırılan XCOPY, ATS gibi özellikler operasyonu eğer mümkünse(destekleniyorsa) storage katmanına bindirir. Bu durumda ilgili işlem için komut verildiğinde artık iş storage katmanındadır ve işlem storage processor tarafından yapılır.

Tek bir senaryoda iki durumu incelemek gerekirse : Senaryomuz aynı storage katmanında bulunan bir VMDK bir datastore’dan başka bir datastore’a kopyalanacak. Temel olarak yük akışı aşağıda özetlediğim gibidir. Bu durumda VAAI ile host üzerinde oluşacak olan gereksiz trafikten kurtulurken, host’un tam olarak yapması gereken işi yapmasını sağlıyoruz yani computing ve kaynak yönetimi.

VAAI’siz : Komut –> LUN x –read–> Host –write–> LUN y

VAAI ile  : Komut –> LUN x –read/write–> LUN y

full-copy-vaai-xcopy

VAAI Bize Hangi özellikleri sağlar ve bunlar nedir?

       1.Hardware Offloaded Copy / XCOPY

10 kata kadar daha hızlı VM deployment, clone ve svMotion! VAAI’nin bizlere kattığı ve bir datacenter admininin işine en fazla yarayacak özellik. XCOPY ile yukarıda verdiğim örnekte anlattığım şekilde kopyalama klonlama taşıma işlemleri çok daha hızlı gerçekleşirken, host ve storage arasındaki veri akışı da önemli seviyede düşecektir. Hardware offload copy olarak neredeyse her yerde karşımıza çıkacak bu özellik ile ilgili Bob Planker tarafından yapılmış bir test sonucunu paylaşmak isterim :

50GB bir eagerzerothick template’i XCOPY açık ve kapalı durumda deploy ediyoruz :

VAAI’siz : 19 dakika ve ortalama 1,200-1,600 IOPS

VAAI’ile : 6 dakika (burada ölçememiş IOPS’u)

       2.Write Same/Zero 

Bu özelliği test etmenin en kolay yolu bir eagerzerothick disk yaratmaktır. Belirttiğim yapıda bir disk yaratırken uzun bekleme sürelerini göze almak gerekmektedir çünkü bu yapı yaratılırken zero-out işlemi yapılmaktadır. Bu  işlem yapılırken host aynı SCSI komutunu defalarca storage array’e göndererek işlemin tamamlanmasını sağlar. Write_same özelliği ile storage array gönderilen komutu alıp tekrarlayarak host üzerindeki yükü kaldırmakla kalmaz, olayı array içerisinde döndürerek ve gereksiz zaman döngülerine hapis olmayarak çok daha hızlanması ile sonuçlandırır. Bu özelliği LAB ortamınızda çok basit bir senaryo ile deneyebilirsiniz.  WRITE SAME açık ve kapalı şekilde 200GB bir eagerzerothick disk yaratın ve süreleri gözönünde bulundurun. Yine Planker tarafından yapılmış bir testi paylaşacağım :

50GB bir eagerzerothick diski write_same açık ve kapalı durumda yaratıyoruz :

VAAI’siz : 10 dakika ve ortalama 750 write IOPS

VAAI’ile : 1 dakika 30 saniye (burada ölçememiş IOPS’u)

      3.Hardware Assisted Locking / ATS

Atomic Test & Set kısa adıyla ATS veya ATS Locking, sistem sağlığı açısından aslında en kritik özellik. Diğer özellikleri kullanmayarak sadece zaman kaybederken, bu özelliği kullanmayarak işimizi kaybetmemiz pek mümkün 🙂 ATS locking baş ağrıtıcı SCSI reservation conflictleri, locking mekanizmasını hardware yani storage array’e offload ederek, oluşabilecek performans ve potansiyel downtime durumlarının önüne geçen bir mekanizma ve günümüz şartlarında hemen her storage vendor’u tarafından tamamiyle destekleniyor. Klasik SCSI2 locking mekanizması ile bir işlem yapılacağında metadata korunumu için ilgili LUN tamamiyle lock edilir ve tam o anda başkasından gelen başka bir işlem isteği varsa lock release edilene kadar bekler (performans problemidir). ATS Locking ile LUN lock edilmek yerine sadece update edilecek veri bloğuna lock koyularak metadata update gerçekleştirilir.

Peki hangi işlemler metadata update gerektirir?

  • VMFS datastore yaratma
  • VMFS datastore’u genişletme/uzatma işlemleri
  • VM power-on
  • Dosya lock işlemleri
  • Dosya silme/yaratma
  • Template yaratma
  • Template’den VM deploy etme
  • Yeni VM yaratma
  • vMotion ile VM taşıma
  • Büyüyen dosyalar.. Örneğin Snapshot veya thin vmdk.

Eğer ki hardware tarafından destekleniyorsa VMFS SCSI2 locking yerine ATS Locking mekanizmasını kullanacaktır. ATS locking ile bir LUN üzerine deploy edilebilecek VM sayısı kritik düzeyde artacaktır. Storage array destekliyorsa kesinlikle kullanılmalıdır. Bu özelliği test etmek için aynı LUN üzerinde konuşlanmış örneğin 10 tane VM’i tek seferde power on etmeyi deneyebilirsiniz.

4. UNMAP Nedir?

Basit olarak space reclamation veya daha açık bir dille thin vmdk üzerinde silinen verinin storage array tarafından geri alınması geri eklenmesi olarak özetleyebiliriz. Bu konu özel bir ilgi istediğinden başka bir makalede anlatıyor olacağım ancak bununda bir VAAI primitive olduğunu bilelim..

Yukarıdakı başlıkları içeren bir makale daha hazırlıyorum kısa zamanda paylaşıyor olacağım.

Teşekkürler.

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. 21 Ekim 2018

    […] vSphere VAAI, XCOPY, WRITE_SAME, ATS Nedir? […]

Bir cevap yazın

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