Совместное планирование виртуальных машин и процессов внутри виртуальной машины
Актуальность
При работе нескольких виртуальных машин на одном физическом сервере распределение процессорного времени производится на двух уровнях - «внешний» планировщик выделяет время отдельным виртуальным машинам, «внутренний» планировщик распределяет выделенное данной виртуальной машине время между работающими на ней процессами. В случае, когда каждой ВМ требуется выделить фиксированную долю от мощности физического сервера, такой подход хорош.
Однако опыт эксплуатации виртуальных машин Xen в ЛВК показал, что независимость «внутреннего» и «внешнего» планировщиков на нашей нагрузке приводит к неоптимальному распределению времени. Так, если разместить основной сервер приложений и «проектную» ВМ на одном физическом сервере, и запустить в «проектой» ВМ одну cpu-bound задачу (например компиляцию), то резко ухудшается отзывчивость пользовательских сеансов. Если же снизить приоритет «проектной» ВМ, то её производительность станет неадекватно низкой из-за «паразитных cpu-bound процессов» на сервере приложений (таких как плееры флэш-роликов в веб страницах).
В рамках данной работы хочется разработать систему, в которой можно будет выделять группы процессов, «глобальные» по отношению к физическому серверу, и распределять физическое время между ними. Но при этом сохранить все остальные свойства виртуальных машин как независимых окружений.
Эта задача должна решаться сравнительно легко (а возможно уже решена) для систем виртуализации на уровне ОС, таких как OpenVZ. В рамках данной работы предполагается решить её для системы виртуализации с гипервизовом (Xen), а также возможно для системы аппаратной виртуализации.
План работы
- изучение планировщика CFS, используемого в современных версиях ядра Linux
- изучение механизмов планирования в Xen,
- изучение механизмов планирования в OpenVZ,
- проектирование и реализация системы совместного планирования для Xen.
- тексты с описанием механизмов планирования [вероятно пойдут в «обзорную» часть курсовой работы],
- реализация совместного планирования.