Créez une vraie alarme “disk latency” sur votre vCenter 4.x – MAJ

MAJ 20/02/2011 : La version 4.1 U1 apporte un workaround, “The new trigger now available is VM Max Total Disk latency (ms)”

Pour une raison obscure mais bien réelle, l’alarme “Virtual machine total disk latency” n’est pas fonctionnelle :

The default Virtual Center Alarm for Virtual Machine Total Disk Latency is currently not functioning on VMware vCenter Server 4.0 and VMware vCenter Server 4.1.

There is no workaround at this time.

Grâce au PowerCLI (et aux nombreux posts de Luc), il existe une alternative : le compteur disk.maxTotalLatency.latest

Highest latency value across all disks used by the host. Latency measures the time taken to process a SCSI command issued by the guest OS to the virtual machine. The kernel latency is the time VMkernel takes to process an IO request. The device latency is the time it takes the hardware to handle the request.

Nous avons créé un petit script pour l’occasion qui créer une alarme “custom” afin de détecter une latence trop élevé sur l’un des datastore (en mode block uniquement, par pour le NFS donc) d’un ESX :

Ce script s’utilise comme suit :

.\Set-MaxTotalLatencyAlarm.ps1 -YellowTresh 20 -RedTresh 40

YellowTresh et RedTresh représentent les seuils Warning/Alert de l’alarme (30/50 par défaut si non renseignés à la création de l’alarme).

Il sera nécessaire de supprimer/recréer l’alarme pour changer ces valeurs

Après c’est à vous de jouer pour trouver le datastore qui pose problème…

download

Tags: , , , ,

16 Responses to “Créez une vraie alarme “disk latency” sur votre vCenter 4.x – MAJ”

  1. [...] Ce billet était mentionné sur Twitter par Gregg Robertson, Luc Dekens et Duncan Yellow Bricks, raphael schitz. raphael schitz a dit: Create a *REAL* disk latency alarm on vCenter 4.x http://www.hypervisor.fr/?p=2468 [...]

  2. Très bon ça !

    Cette alerte est configurable pour les actions au niveau de vCenter ? (genre envoi mail, script,…) ou on doit le configurer directement dans le script, au même niveau que :
    $trigger.action = New-Object VMware.Vim.SendSNMPAction
    ?
    Well done en tout cas :p

  3. non ya que les seuils qui sont pas configurables, les actions sont accessibles en GUI ;)

  4. Salut!!

    Je débute en powershell / powercli donc ma question va paraître bête mais voici le résultat que j’obtiens quand j’utilise le script.
    (Note, utilisé “Connect-VIServer monvcenter” avant)

    —–

    [vSphere PowerCLI] C:\Documents and Settings\xxx\Desktop> .\alarme_latency.ps1

    The term ‘measure’ is not recognized as a cmdlet, function, operable program, or script file. Verify the term and try again.

    At C:\Documents and Settings\xxx\Desktop\alarme_latency.ps1:12
    char:104
    + if (($alarmMgr.GetAlarm($entity.moref)|?{(get-view $_).info.name -match “Host Max Lun Latency”}|measure) <<<< .count -eq 0){

    —–

    Sachant que je suis sous windows server 2003 r2 64bits english

  5. c’est un problème d’alias de la commande measure-object, j’ai mis à jour le script pour éviter cette erreur.

  6. Ok de toutes façons j’avais enlevé le test pour réussir à créer l’alarme.

    Par contre chez moi le déclenchement du seuil d’alerte (rouge) ne marche pas. Ca navigue toujours entre le seuil vert et jaune.

  7. Vous pouvez essayer de recréer l’alarme avec des seuils plus bas pour tester le warning

  8. Tien Lam Nguyen Says:
    April 4th, 2011 at 21:55

    Salut Nitro,

    Je veux juste être sûr ce qui mesure ce compteur.

    C’est le “Latency” d’un i/o request du kernel + celui du HBA vers mon unité de SAN ?

    ou

    Juste le “Latency” du kernel ?

  9. Bonne question. Apparemment, ce serait la totale : http://www.vmware.com/support/developer/vc-sdk/visdk41pubs/ApiReference/disk_counters.html (maxTotalLatency)

  10. Tien Lam Nguyen Says:
    April 5th, 2011 at 21:15

    Salut Nitro,

    Super bonne script !!!

    J’ai enlevé l’alerte et j’ai remis une nouvelle alerte avec des seuils plus haut (comme yellow à 80 et red à 100)

    Le problème c’est que l’alerte déclenche toujours avec les anciennes seuils (yellow = 40; red= 50)

    Est-ce que le fait d’enlever l’alerte au niveau de du Virtual Center est assez ou il fait faire d’autres manipulations ?

  11. Non ça suffit, les seuils sont dans l’alarme donc la supprimer suffit. Tu as taper quelle commande pour recréer l’alarme ?

  12. Tien Lam Nguyen Says:
    April 5th, 2011 at 22:53

    Salut Nitro,

    J’ai juste recréer l’alarme avec la m^me commande comme ceci:

    .\Set-MaxTotalLatencyAlarm -yellowTresh “80″ -redTresh “100″

    mais je recois toujours des alertes de l’ancienne seuils comme ceci:

    Target: xxxxxxxxxxx.com
    Previous Status: Gray
    New Status: Red

    Alarm Definition:
    ([Yellow Metric Is above 80Millisecond; Red Metric Is above 100Millisecond])

    Current values for metric/state:
    Metric Highest latency = 59,994Millisecond

    Description:
    Alarm ‘Host Max Lun Latency’ on xxxxxxxxxxxxx.com changed from Gray to Red

  13. si au contraire tu baisse les seuils ça fait quoi ?

  14. Tien Lam Nguyen Says:
    April 6th, 2011 at 18:30

    Salut Nitro,

    en réduisant les seuils cela marche- mais pas quand tu l’augmente.

    voir résultats:

    Target: xxxxxxx.videotron.com
    Previous Status: Green
    New Status: Red

    Alarm Definition:
    ([Yellow Metric Is above 10Millisecond; Red Metric Is above 20Millisecond])

    Current values for metric/state:
    Metric Highest latency = 22Millisecond

    Description:
    Alarm ‘Host Max Lun Latency’ on xxxxx.int.videotron.com changed from Green to Red

    Target: xxxxxxx.videotron.com
    Previous Status: Green
    New Status: Red

    Alarm Definition:
    ([Yellow Metric Is above 80Millisecond; Red Metric Is above 100Millisecond])

    Current values for metric/state:
    Metric Highest latency = 59,993Millisecond

    Description:
    Alarm ‘Host Max Lun Latency’ on xxxxxxx.videotron.com changed from Green to Red

  15. c’est un peu extrême mais tu peux tester en restartant le service vpxd ?

  16. [...] ou HostSystem (et HostSystem uniquement pour les compteurs SIOC). Nous vous avions proposé une solution de contournement, en PowerCLI évidement, grâce au compteur maxTotalLatency mais il restait encore à trouver [...]

Leave a Reply