VMware ESXi 7 LUN Round Robin Politikasını Değiştirme

Merhaba arkadaşlar,

Bu yazımda sizlere round robin olarak yapılandırılmış FC ortamlarınızda SAN tarafında hiç bir sorun görmemenize rağmen latency sorunu yaşıyorsanız yardımcı olabilecek bir çözüm yöntemini anlatacağım. Varsayılan olarak ESXi 7’de round robin policy, latecy (Latency Based Path Selection Policy) modunda gelmektedir. Path seçimini HBA portundaki latency’e göre yapmaktadır. ESXi 7 öncesinde bunu iops bazında yapmaktaydı ve varsayılan olarak kullanılan pathte 1000 iops olmadan diğer path’e geçiş yapmıyordu. Storage üreticim Pure Storage resmi sitesinde bunu 1 e düşürmemi öneriyordu. İlgili yazıya BURADAN erişebilirsiniz.

Ama ortamımı ESXi 7’ye upgrade ettikten sonra performans sorunları yaşamaya başladım. Araştırmaya koyuldum ve aklıma ilk olarak sorunun 1000 iops limiti olduğu geldi. Pure Storage best practice linkine tekrar ulaştım. Orada ESXi 7 ile ilgili şu ifade ile karşılaştım: “Enhanced Round Robin Load Balancing is configured by default on ESXi 7.0 and later. No configuration changes are required.” Bunu okuduğumda şaşırdım çünkü ortamda latency sorunu vardı ve değişene tek şey ESXi versiyonuydu. Ardından emin olmak için alttaki komutu çalıştırdım:

esxcli storage nmp device list

Ve alttaki sonucu gördüm:

naa.624a9370a78d60e6c9c74f5700012013
Device Display Name: PURE Fibre Channel Disk (naa.624a9370a78d60e6c9c74f5700012013)
Storage Array Type: VMW_SATP_ALUA
Storage Array Type Device Config: {implicit_support=on; explicit_support=off; explicit_allow=on; alua_followover=on; action_OnRetryErrors=off; {TPG_id=0,TPG_state=AO}{TPG_id=1,TPG_state=AO}}
Path Selection Policy: VMW_PSP_RR
Path Selection Policy Device Config: {policy=latency,latencyEvalTime=180000,samplingCycles=16,curSamplingCycle=16,useANO=0; CurrentPath=vmhba65:C0:T6:L237: NumIOsPending=0,latency=0}
Path Selection Policy Device Custom Config:
Working Paths: vmhba64:C0:T3:L237, vmhba64:C0:T6:L237, vmhba64:C0:T2:L237, vmhba64:C0:T5:L237, vmhba64:C0:T1:L237, vmhba64:C0:T4:L237, vmhba64:C0:T0:L237, vmhba64:C0:T7:L237, vmhba65:C0:T2:L237, vmhba65:C0:T5:L237, vmhba65:C0:T1:L237, vmhba65:C0:T4:L237, vmhba65:C0:T0:L237, vmhba65:C0:T7:L237, vmhba65:C0:T3:L237, vmhba65:C0:T6:L237
Is USB: false

Burada kullandığı policy latency modundaydı. Ben de Pure Storage’in daha önce önerdiği modu kullanmayı denemeye karar verdim. Alttaki komutu çalıştırdım ve round robin türünü iops ve 1 iops olarak değiştirdim:

esxcli storage nmp psp roundrobin deviceconfig set --type=iops --iops=1 --device=naa.624a9370a78d60e6c9c74f5700012013

Bu şekilde daha iyi çalıştığını fark ettim. Ardından diğer lunlara da da yapmaya karar verdim.

for i in `esxcfg-scsidevs -c |awk '{print $1}' | grep naa.62`; do esxcli storage nmp psp roundrobin deviceconfig set --type=iops --iops=1 --device=$i; done

Ve sonuç olarak tüm latency sorunlarım çözüldü. Daha iyi bir fikri olan varsa lütfen yorum olarak yazsın. Umarım sizin de işinize yarar.

Not: yukarıdaki komutları çalıştırdıktan sonra hostlarınızı reboot yapmanıza gerek yoktur. Aynı anda etki etmeye başlayacaktır.

İyi günler