В нашей компании мы используем разные платформы виртуализации Citrix XenServer и Gentoo / Xen. В общем, мы используем XenServer там, где у нас есть общее хранилище (SAN, iSCSI или что-то еще), и Gentoo / Xen, где мы хотим использовать локальное хранилище.
С XenServer мы можем получить подробную статистику использования как Dom0, так и различных DomU на платформе. Мы также отслеживаем DomU через SNMP (Cacti). Мы можем получить статистику от Gentoo / Xen DomU, используя SNMP, SAR или что-то еще, но мы не можем получить хорошую статистику использования от Dom0. Без этого мы не сможем оценить, насколько эффективно мы используем оборудование и когда нам нужно рассмотреть возможность строительства.
Я уверен, что это решенная проблема, но мой Google-Fu меня несколько подвел, поэтому я надеюсь, что у кого-то здесь могут быть идеи.
Ура
Дэйв
Ваши вопросы немного неясны относительно того, какую статистику вы надеетесь собрать с dom0, но я думаю, что вы ищете понимание того, как распределяются ваши существующие аппаратные ресурсы.
Мы очень успешно используем привязки Python для libvirt для получения этой информации. Вот фрагмент сценария 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))
Может быть, если вы сообщите нам, какой именно тип статистики использования вы ищете, это поможет вам выбрать нужный инструмент (ы). Я полностью понимаю, почему вам нужна статистика DomU, но я не совсем понимаю, зачем вам нужна подробная информация о Dom0. Думаю, если бы я точно знал, что вы ищете, я бы понял :-)