[Sysadmins] Не работает cgroup на ядре с OpenVZ

Васюк Максим Анатольевич vaksim на gmail.com
Пт Дек 11 06:13:26 MSK 2015


04.12.2015 19:56, Васюк Максим Анатольевич пишет:
> Привет, Всем!
>
> Есть у меня Хост с KVM на t7
>
> # uname -r
> 3.10.32-std-def-alt1
>
> В конфиге гостя было выставлено:
> <vcpu placement='static' cpuset='1'>1</vcpu>
>
> И оно срабатывало.
>
> Появился второй Хост с KVM и OpenVZ на t7
> # uname -r
> 2.6.32-ovz-el-alt137
>
> При переезде гостя с хоста где был один KVM на хост где KVM и OpenVZ при
> загрузке гостя сразу заругалось:
> # virsh -c qemu:///system start tw1
> ошибка: Не удалось запустить домен tw1
> ошибка: Unable to set cpuset.cpus: Permission denied

Проблема в следующем:
OpenVZ сам монтирует cgroup в /proc/vz/fairsched
Libvirt видит это и начинает использовать
в /proc/vz/fairsched/0/libvirt
Из-за того что файл /proc/vz/fairsched/0/cpuset.cpus
пустой, у libvirt не получается заполнить свой cpuset.cpus для себя и 
раздавать уже гостям:
# echo 2-7> /proc/vz/fairsched/0/libvirt/cpuset.cpus
bash: echo: ошибка записи: Отказано в доступе

Делаю руками:
# echo 0-7> /proc/vz/fairsched/0/cpuset.cpus
затем опять руками
# echo 2-7> /proc/vz/fairsched/0/libvirt/cpuset.cpus
затем
# echo 2-7> /proc/vz/fairsched/0/libvirt/qemu/cpuset.cpus

и после этого в конфиг гостя добавляю:
<vcpu placement='static' cpuset='2'>1</vcpu>

После этого гость стартует и использует только указанное ядро.

Может кто подскажет, почему OpenVZ сам не заполняет файл 
/proc/vz/fairsched/0/cpuset.cpu и как это можно исправить?

-- 
С уважением,
Васюк Максим


Подробная информация о списке рассылки Sysadmins