ВИРТУАЛЬНАЯ АРХИТЕКТУРА НЕОДНОРОДНОЙ ПАМЯТИ ДЛЯ ВИРТУАЛЬНЫХ МАШИН

1. Способ, содержащий:
прием запроса на создание экземпляра виртуальной машины (240), причем запрос включает в себя характеристику виртуальной машины (240);
выбор топологии виртуального NUMA узла для виртуальной машины (240) на основании характеристики, причем топология виртуального NUMA узла включает в себя множество виртуальных NUMA узлов (606-608);
создание экземпляра виртуальной машины (240) на вычислительной системе (606), причем виртуальная машина включает в себя множество виртуальных NUMA узлов; и
подстройку, на основании нагрузки на память в конкретном виртуальном NUMA узле (606) из упомянутого множества, объема гостевой памяти, назначенной конкретному виртуальному NUMA узлу.
2. Способ по п.1, дополнительно содержащий:
определение, что нагрузка на память во втором виртуальном NUMA узле (608) из множества, больше заранее заданного значения; и
перемещение второго виртуального NUMA узла (608) на второй NUMA узел (704) вычислительной системы (700).
3. Способ по п.1, в котором подстройка объема гостевой памяти дополнительно содержит:
возврат, по меньшей мере, одного блока памяти гостевой памяти от конкретного виртуального NUMA узла (606) и
передачу возвращенного, по меньшей мере, одного блока памяти в гостевой памяти второму виртуальному NUMA узлу (608).
4. Способ по п.1, в котором подстройка объема гостевой памяти дополнительно содержит:
определение, что, по меньшей мере, один блок гостевой памяти конкретного виртуального NUMA узла (606) является развязанным с системной памятью; и
отображение, по меньшей мере, одного блока памяти в гостевой памяти, по меньшей мере, на один блок памяти в системной памяти.
5. Способ по п.1, дополнительно содержащий:
отображение конкретного виртуального NUMA узла (606) на первый NUMA узел вычислительной системы (702) и
перемещение конкретного виртуального NUMA узла (606) на второй NUMA узел вычислительной системы (704).
6. Способ по п.1, дополнительно содержащий:
добавление виртуального процессора (230B) к конкретному виртуальному NUMA узлу (606).
7. Способ по п.1, дополнительно содержащий:
прием запроса на исполнение виртуального процессора (230A) виртуальной машины (240), причем виртуальный процессор (230A) назначен логическому процессору (212A), логический процессор (212A) назначен NUMA узлу и виртуальный процессор назначен виртуальному NUMA узлу (702);
определение, что логический процессор (230A) не может исполнять виртуальный процессор (212A); и
выбор второго логического процессора (230E) для исполнения виртуального процессора (230A), причем второй логический процессор из второго NUMA узла (704).
8. Вычислительная система, содержащая:
схему для исполнения виртуальной машины (240), причем виртуальная машина (240) имеет топологию, которая включает в себя множество виртуальных NUMA узлов (606-608), причем топология виртуальной машины (240) формируется независимо от физической топологии вычислительной системы (700);
схему для определения нагрузки на память в каждом виртуальном NUMA узле (606-608) из упомянутого множества и
схему для подстройки, на основании нагрузки на память в каждом виртуальном NUMA узле (606-608) из упомянутого множества, гостевой памяти, назначенной, по меньшей мере, одному виртуальному NUMA узлу (606) из упомянутого множества.
9. Вычислительная система по п.8, дополнительно содержащая:
схему для посылки виртуальной машины (240) на вторую вычислительную систему (510).
10. Вычислительная система по п.8, дополнительно содержащая:
схему для отображения первого виртуального NUMA узла (606) из упомянутого множества на первый NUMA узел (702) вычислительной системы (700) и
схему для отображения второго виртуального NUMA узла (608) из упомянутого множества на первый NUMA узел (702) вычислительной системы (700).
11. Вычислительная система по п.8, дополнительно содержащая:
схему для отображения первого виртуального NUMA узла (606) множества на первый NUMA узел (702) вычислительной системы (700) и
схему для отображения второго виртуального NUMA узла (608) множества на второй NUMA узел (704) вычислительной системы (700).
12. Вычислительная система по п.10, дополнительно содержащая:
схему для определения, что нагрузка на память во втором виртуальном NUMA узле (608) больше заранее заданного значения; и
схему для перемещения второго виртуального NUMA узла (608) на второй NUMA узел вычислительной системы (704).
13. Вычислительная система по п.11, дополнительно содержащая:
схему для определения, что нагрузка на память второй виртуальной машины (242) больше заранее заданного значения; и
схему для перемещения второго виртуального NUMA узла (608) виртуальной машины (240) на первый NUMA узел (704) вычислительной системы (700).
14. Читаемый компьютером носитель информации, включающий в себя исполняемые процессором команды, при этом читаемый компьютером носитель информации содержит:
команды для исполнения первой виртуальной машины (240), причем виртуальная машина (240) имеет топологию, которая включает в себя множество виртуальных NUMA узлов (606-608), и каждый виртуальный NUMA узел множества включает в себя виртуальный процессор (230A-C) и гостевые физические адреса, причем топология виртуальной машины (240) формируется независимо от физической топологии вычислительной системы (700); и
команды для добавления дополнительного виртуального процессора (230D) к виртуальному NUMA узлу из упомянутого множества (608).
15. Читаемый компьютером носитель информации по п.14, дополнительно содержащий:
команды для определения нагрузки на память в каждом виртуальном NUMA узле (606-608) из упомянутого множества и
команды для подстройки, на основании нагрузки на память в каждом виртуальном NUMA узле (606-608) из упомянутого множества, гостевой памяти, назначенной, по меньшей мере, одному виртуальному NUMA узлу из упомянутого множества (606).
16. Читаемый компьютером носитель информации по п.14, дополнительно содержащий:
команды для удаления виртуального процессора (230D) из виртуального NUMA узла из упомянутого множества (608).
17. Читаемый компьютером носитель информации по п.14, дополнительно содержащий:
команды для предоставления отчета о NUMA отношениях для множества виртуальных NUMA узлов (606-608) на гостевую операционную систему.
18. Читаемый компьютером носитель информации по п.14, дополнительно содержащий:
команды для перемещения виртуальной машины (240) из первого NUMA узла (606) в множество NUMA узлов (606-608).
19. Читаемый компьютером носитель информации по п.15, в котором команды для подстройки гостевой памяти дополнительно содержат:
команды для возврата памяти от первого виртуального NUMA узла (606) из упомянутого множества на основании определения, что текущая нагрузка на память виртуального NUMA узла (606) ниже целевой пороговой величины.
20. Читаемый компьютером носитель информации по п.15, в котором команды для подстройки гостевой памяти дополнительно содержат:
команды для передачи памяти первому виртуальному NUMA узлу (606) из упомянутого множества на основании определения, что текущая нагрузка на память гостевой операционная система (220) больше целевой пороговой величины.