5 votes

Suivi des performances et de l'utilisation de Xen Dom0

Dans notre entreprise, nous utilisons un mélange de plateformes de virtualisation Citrix XenServer et Gentoo/Xen. En général, nous utilisons XenServer lorsque nous avons un stockage partagé (SAN, iSCSI ou autre) et Gentoo/Xen lorsque nous voulons utiliser un stockage local.

Avec XenServer, nous pouvons obtenir des statistiques d'utilisation détaillées tant pour le Dom0 que pour les différents DomUs de la plateforme. Nous surveillons également les DomUs via SNMP (Cacti). Nous pouvons obtenir des statistiques des DomUs Gentoo/Xen en utilisant SNMP ou SAR ou autre, mais nous ne sommes pas en mesure d'obtenir de bonnes statistiques d'utilisation du Dom0. Sans cela, nous ne sommes pas en mesure d'évaluer l'efficacité de l'utilisation du matériel et le moment où nous devons envisager une extension.

Je suis sûr qu'il s'agit d'un problème résolu, mais mon Google-Fu m'a quelque peu laissé tomber, alors j'espère que quelqu'un ici aura quelques idées.

Prost

Dave

2voto

Armend Krasniqi Points 61

Votre question est un peu floue quant au type de statistiques que vous espérez collecter à partir du dom0, mais je pense que ce que vous recherchez est une compréhension de la façon dont vos ressources matérielles existantes sont allouées.

Nous avons beaucoup de succès en utilisant les liaisons Python de libvirt pour obtenir ces informations. Voici un extrait de Python script qui illustre l'idée :

#!/usr/bin/env python

import sys
import libvirt

def main(options,args):
    hypervisors = sys.argv[1:]

    print "%16s%18s%18s%18s" % ("dom0 IP", "Free Memory (MB)", "Disk Used (GB)", "Disk Free (GB)")
    for ip in hypervisors:
        # this assumes "remote" connection to libvirtd using TCP
        url = "xen+tcp://%s" % (ip)

        conn = libvirt.open(url)
        # you may want to do more error handling here
        if conn == None:
            continue

        mem = conn.getFreeMemory() / 1048576 #convert bytes -> megabytes
        pool = conn.storagePoolLookupByName('vol0')
        # a refresh() is necessary because libvirtd's internal information isn't
        # always in sync with the host.
        pool.refresh(0)
        disk_info = pool.info()
        disk_used = disk_info[2] / 1073741824 #convert bytes -> gigabytes
        disk_free = disk_info[3] / 1073741824 #convert bytes -> gigabytes
        print "%16s%18d%18s%18d" % (ip, mem, disk_used, disk_free)

if __name__ == '__main__':
    sys.exit(main(options,args))

0voto

Steven Fisher Points 2201

Peut-être que si vous nous disiez exactement quel type de statistiques d'utilisation vous recherchez, nous pourrions vous guider vers le ou les bons outils. Je comprends parfaitement pourquoi vous voulez les statistiques de DomU mais je ne comprends pas pourquoi vous voulez des informations détaillées sur Dom0. Je suppose que si je savais exactement ce que vous recherchez, je pourrais comprendre :-)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X