1. Anasayfa
  2. VMware ESXi

VMware vSphere 8.0 Update 3 NVMe Tiering Kullanımı Raporları


VMware vSphere 8.0 Update 3 ile tanıtılan NVMe Tiering özelliği etkinleştirildikten sonra bu yapılandırmanın detaylarına ulaşmak için VMware vSphere ortamındaki bir ESXi sunucusuna gitmeniz gerekmektedir. Burada Configure -> Hardware -> Memory bölümüne girdiğinizde NVMe Tiering yapılandırmanız hakkında önemli bilgilere ulaşabilirsiniz.

Bu makalemede bu yapılandırmanın önemli noktalarını ve ilgili vSphere API‘leri kullanarak bu bilgileri nasıl elde edebileceğinizi inceleyeceğiz;

NVMe Tiering Özelliği Nedir?
NVMe Tiering VMware ESXi sunucularında bellek hiyerarşisini optimize ederek, DRAM (Tier 0) ve NVMe tabanlı bellek (Tier 1) arasında bellek katmanlaması yapmayı sağlar. Bu düşük maliyetli NVMe cihazlarının daha fazla bellek sağlayarak DRAM kullanımını azaltmasını hedefler.

Memory Tiering özelliği sayesinde daha uygun maliyetli cihazları bellek olarak kullanır. VMware vSphere 8.0 Update 3 ile VMware vSphere PCIe tabanlı Flash NVMe cihazlarını bellek için ikinci bir katman olarak kullanır ve bu VMware ESXi sunucusunda mevcut bellek miktarını artırır. NVMe üzerinden bellek katmanlama sanal makinelerin bellek tahsislerini ya NVMe cihazlarına ya da sunucudaki daha hızlı dinamik rastgele erişim belleği (DRAM) ile yönlendirerek performansı optimize eder. Bu bellek kullanımını ve iş yükü kapasitesini artırırken toplam sahip olma maliyetini (TCO) düşürür.

Memory Tiering bir VMware vSphere Cluster yapısında her bir sunucuda yapılandırılır ve tüm sunucuların vSphere 8.0U3 sürümünü çalıştırıyor olması gerekir. Varsayılan yapılandırmada DRAM ve NVMe oranı 4:1 olarak ayarlanmıştır ancak bellek olarak daha fazla NVMe kaynağı kullanmak amacıyla bu oran değiştirilebilir.

Ayrıca, Memory Tiering bellek ile işlemci çekirdeği arasındaki dengesizlikleri giderir ve iş yükü ile sanal makine konsolidasyonuna yardımcı olur.

VMware ESXi sunucu üzerinde MemoryTiering özelliğinin etkin olup/olmadığını kontrol edebilirsiniz. Memory Tiering alanı üç farklı değere sahip olabilir. Bu değerler;

  • No Tiering (Tiering yok)
  • Hardware Memory Tiering (Intel Optane aracılığıyla donanımsal tiering)
  • Software Memory Tiering (NVMe Tiering)

Bu bilgiyi vSphere API’de bulunan memoryTieringType özelliği aracılığıyla alabilirsiniz. İşte bu veriyi VMware PowerCLI kullanarak VMware ESXi sunucusundan alınabilir. Bu işlem için aşaüıdaki PowerCLI komutunu kullanabilirsiniz.

(Get-VMHost "esx01.kadirkozan.com").ExtensionData.Hardware.MemoryTieringType

Tier 0 DRAM

VMware ESXi sunucusunda mevcut olan toplam fiziksel DRAM belleğini temsil eder. Bu bilgiyi memoryTierInfo özelliğinden alabilirsiniz. Aşağıdaki PowerCLI komutu ile DRAM belleği bilgilerini alabilirsiniz.

((Get-VMHost "esx01.kadirkozan.com").ExtensionData.Hardware.MemoryTierInfo | where {$_.Type -eq "DRAM"}).Size

Tier 1 NVME

Tier 1, VMware ESXi sunucusunda NVMe Tiering tarafından sağlanan toplam belleği ifade eder. Bu bilgiyi de yine memoryTierInfo özelliğinden alabilirsiniz. NVMe belleği için PowerCLI komutunu kullanabilirsiniz.

((Get-VMHost "esx01.kadirkozan.com").ExtensionData.Hardware.MemoryTierInfo | where {$_.Type -eq "NVMe"}).Size

Bu komut çıktısında hem DRAM hem de NVMe belleği birleştirerek toplam belleği hesaplamanıza olanak tanır.

NVMe Tiering için yapılandırılan cihazı öğrenmek için Configure -> Storage -> Storage Devices bölümüne giderek depolama cihazlarını inceleyebilirsiniz. Burada, Datastore sütununda “Consumed for Memory Tiering” değeri olan cihazları bulmanız gerekir. Bu bilgiyi usedByMemoryTiering özelliğinden çekebilirsiniz. İşte bu bilgiyi elde etmek için aşağıdaki PowerCLI komutunu kullanabilirsiniz.

$storageSystem = Get-View (Get-vmhost "esx01.kadirkozan.com").ExtensionData.ConfigManager.StorageSystem
($storageSystem.StorageDeviceInfo.ScsiLun | where {$_.UsedByMemoryTiering -eq $true}).CanonicalName

NVMe Tiering Oranı;

Varsayılan olarak DRAM ile NVMe bellek arasındaki oran %25‘tir. Bu oran VMware ESXi’deki Mem.TierNvmePct adlı gelişmiş ayar ile yapılandırılmıştır. Aşağıdaki PowerCLI komutu ile bu oranı görüntüleyebilirsiniz;

(Get-vmhost "esx01.kadirkozan.com" | Get-AdvancedSetting -Name Mem.TierNvmePct).Value

Tüm bu bilgileri toplamak ve VMware ESXi sunucularınızda NVMe Tiering yapılandırmasını hızlıca görmek için bir PowerCLI scirpt’i hazırlayabilirsiniz. Aşağıdaki PowerCLI betiği bir vSphere Cluster’daki tüm ESXi sunucular için özet rapor oluşturabilir ve hangi sunucularda NVMe Tiering’in yapılandırıldığını hızlıca görmenize olanak tanır.


$clusterName = "Cluster"

$results = @()
foreach ($vmhost in Get-Cluster -Name $clusterName | Get-VMhost | Sort-Object -Property Name) {
    $tieringType = $vmhost.ExtensionData.Hardware.memoryTieringType

    $totalMemory = [math]::round($vmhost.ExtensionData.Hardware.MemorySize /1GB,2).ToString() + " GB"
    $tieringRatio = ($vmhost | Get-AdvancedSetting Mem.TierNvmePct).Value.toString() + "%"

    $tieringEnabled = $false
    if($tieringType -eq "softwareTiering") {
        $tieringEnabled = $true

        $dramTotal = [math]::round(($vmhost.ExtensionData.Hardware.MemoryTierInfo | where {$_.Name -eq "DRAM"}).Size /1GB,2).ToString() + " GB"
        $nvmeTotal = [math]::round(($vmhost.ExtensionData.Hardware.MemoryTierInfo | where {$_.Name -eq "NVMe"}).Size /1GB,2).ToString() + " GB"

        $storageSystem = Get-View $vmhost.ExtensionData.ConfigManager.StorageSystem
        $nvmeDevice = ($storageSystem.StorageDeviceInfo.ScsiLun | where {$_.UsedByMemoryTiering -eq $true}).CanonicalName

    } else {
        $dramTotal = $totalMemory
        $nvmeTotal = 0
        $nvmeDevice = "N/A"
    }

    $tmp = [pscustomobject] @{
        VMHost = $vmhostName
        TieringEnabled = $tieringEnabled
        TieringRatio = $tieringRatio
        DRAMMemory = $dramTotal
        NVMeMemory = $nvmeTotal
        TotalSystemMemory = $totalMemory
        NVMeDevice = $nvmeDevice
    }
    $results+=$tmp
}

$results | FT

vSphere 8.0 Update 3 ile gelen NVMe Tiering özelliği bellek yönetiminde büyük avantajlar sunar. Bu makalemde ilgili API’ler ve PowerCLI komutları kullanılarak VMware ESXi sunucularındaki NVMe Tiering yapılandırmalarını nasıl kontrol edebileceğinizi ve raporlayabileceğinizi açıkladık. Özellikle büyük veri merkezleri ve yoğun bellek gereksinimi olan ortamlarda bu tür yapılandırmaların etkin kullanımı verimliliği artırmada önemli bir rol oynayacaktır.