我们在公司内部运行Citrix XenServer和Gentoo / Xen虚拟化平台。 一般来说,我们使用XenServer共享存储(SAN,iSCSI或其他)和Gentoo / Xen,我们要使用本地存储。
使用XenServer,我们可以获得平台上Dom0和各个DomU的详细利用率统计信息。 我们还通过SNMP(Cacti)监视DomUs。 我们可以使用SNMP或SAR或其他任何方式从Gentoo / Xen Domus获得统计信息,但是我们无法从Dom0中获得良好的使用统计信息。 没有这个,我们无法评估我们如何有效使用硬件,以及何时需要考虑构build。
我相信这肯定是一个解决的问题,但是我的Google-Fu让我有些失望,所以我希望这里有人可能有一些想法。
干杯
戴夫
你的问题有点不清楚,你希望从dom0收集什么types的数据,但是我认为你在寻找的是对现有硬件资源如何分配的理解。
我们使用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))
也许如果你让我们确切地知道你正在寻找哪种types的利用率统计数据,这将有助于指导你使用正确的工具。 我完全理解你为什么要Domu的统计,但我不是很追随为什么你想要Dom0的详细信息。 我想,如果我确切知道你在找什么,我可能会明白:-)