Управление вводом-выводом на основе веса для виртуальных машин

13

Я использую KVM для управления своими виртуальными машинами. Я пытаюсь ограничить ресурсы, предоставляемые для виртуальных машин. Я могу ограничить процессор и память, выделенную для виртуальных машин, используя libvirt / cgroups. Теперь я хочу контролировать время на диске, выделенное для каждой виртуальной машины, применяя некоторые веса. Я посмотрел на контроль blkio от cgroups. Поскольку VM - это просто процесс Linux, я смогу использовать cgroups, но я не уверен, будет ли она работать и для асинхронного ввода-вывода. Если нет, может кто-нибудь предложить хорошее альтернативное решение?

Sethu
источник

Ответы:

2

Blkio в терминологии cgroup означает доступ к вводу / выводу на блочных устройствах . Похоже, речь не идет о регулировании всех различных способов, которые разработчики программного обеспечения имеют под рукой для целей, связанных с вводом / выводом.

Похоже, что он предназначен в основном для ввода-вывода на устройствах , а не для доступа программного обеспечения к устройствам. Это может ограничить число iops, пропускную способность или вес с другими процессами, в других вещах. Кажется, что буферизованная запись не поддерживается blockio в данный момент. Это в официальной документации :

В настоящее время подсистема блочного ввода-вывода не работает для буферизованных операций записи. Он в первую очередь предназначен для прямого ввода-вывода, хотя и работает для буферизованных операций чтения.

Если вы посмотрите на эту презентацию Линды Ванг и Боба Коздемба из Red Hat, на странице 20+, вы увидите, что график показывает пропускную способность устройства на виртуальную машину, а не случайные против блокирования и асинхронного ввода-вывода.

Кажется , там была недавняя работа по Red Hat реализовать его непосредственно в virsh. Он был выпущен на прошлой неделе в libvirt 0.9.9. Через несколько месяцев вы сможете сделать что-то подобное в своем любимом дистрибутиве:

virsh blkiotune domA --device-weights /dev/sda,250
virsh blkiotune domB --device-weights /dev/sda,750
Корен
источник
0

Вы можете использовать ionice, это как приятно, но для IO.

Фер Энаф
источник
1
Это ioniceлучшая альтернатива, чем использование blkioиз cgroups? Предоставляет ли он что-то, что не дает нынешнее решение ОП? Вы знаете, как это связано с асинхронным вводом-выводом?
Калеб
Caleb было бы здорово, если бы вы могли просто дать представление о том, что такое асинхронный ввод-вывод и чем он отличается от синхронного ввода-вывода относительно операционной системы.
Сетху
@Caleb: смотри выше.
Фахим Митха