web-dev-qa-db-ja.com

XenDom0のパフォーマンスと使用率の監視

当社では、CitrixXenServerとGentoo/Xen仮想化プラットフォームの混合バッグを実行しています。一般に、共有ストレージ(SAN、iSCSIなど)がある場合はXenServerを使用し、ローカルストレージを使用する場合はGentoo/Xenを使用します。

XenServerを使用すると、プラットフォーム上のDom0とさまざまなDomUの両方の詳細な使用率統計を取得できます。また、SNMP(Cacti)を介してDomUを監視します。 SNMPやSARなどを使用してGentoo/Xen DomUから統計を取得できますが、Dom0から適切な使用統計を取得することはできません。これがないと、ハードウェアをどれだけ効果的に使用しているか、いつ構築するかを検討する必要があるかどうかを評価できません。

これは解決された問題であるに違いないと確信していますが、私のGoogle-Fuは私をやや失望させたので、ここの誰かがいくつかのアイデアを持っていることを願っています。

乾杯

デイブ

5
Gentoo_Koala

Dom0からどのような統計を収集したいかについての質問は少し不明確ですが、探しているのは、既存のハードウェアリソースがどのように割り当てられているかを理解することだと思います。

LibvirtのPythonバインディングを使用してこの情報を取得することで、大きな成功を収めています。これは、アイデアを説明するPythonスクリプトスニペットです。

#!/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))
2
Paul Lathrop

たぶん、あなたが探している使用率統計のタイプを正確に知らせてくれれば、それはあなたを正しいツールに導くのに役立つでしょう。 DomU統計が必要な理由は完全に理解していますが、Dom0の詳細情報が必要な理由についてはよくわかりません。私はあなたが探しているものを正確に知っていれば私は理解するかもしれないと思います:-)

0
jemmille