Можно ли контролировать / ограничивать пропускную способность для гостей KVM? Я хотел бы предоставить людям виртуальные машины на моем сервере, но я хочу быть осторожным, чтобы не превысить свой месячный лимит пропускной способности. Единственные места, где я могу найти эту поддержку, - это «облачные» фреймворки. Я предполагаю, что либо мне не хватает чего-то простого в Linux, либо мне нужно поговорить с маршрутизатором над мной (к которому у меня нет доступа).
Я рекомендую использовать libvirt для управления виртуальными машинами KVM. Это делает все это намного проще, чем простой QEMU / KVM, а также обеспечивает хороший процессор, ввод-вывод и сетевая статистика. Вам понравятся такие инструменты, как virt-top и виртуальный менеджер которые работают поверх libvirt фреймворк.
Чтобы собрать статистику интерфейса виртуальной машины из скрипта, вы можете использовать вирш интерфейс командной строки для libvirt или некоторые языковые API. Формат вирш команда выглядит следующим образом:
virsh domifstat VMNAME IFNAME
.. где VMNAME - это имя вашей виртуальной машины, а IFNAME - имя (виртуального) сетевого интерфейса. Чтобы узнать имя сетевого интерфейса, вы можете:
virsh dumpxml VMNAME
В полученном XML-выходе найдите определение (я) сетевого интерфейса. Найдите такую строку:
<target dev='vnet0'/>
В этом случае ваше IFNAME будет "vnet0".
В качестве альтернативы вы можете использовать демон сбора статистики, например собирать который поддерживает мониторинг libvirt статистика, но в этом случае может быть достаточно простого сценария оболочки, который иногда сохраняет вывод "virsh domifstat".