Развертывание виртуальной машины на хосте на основе описания характеристик рабочей нагрузки
Иллюстрации
Показать всеИзобретение относится к области развертывания виртуальных машин на хостах. Техническим результатом является повышение эффективности развертывания потенциальной виртуальной машины (VM) на потенциальном хосте за счет учета ресурсов, доступных от потенциального хоста, и ресурсов, требуемых потенциальной виртуальной машиной (VM). Для этого вычисляется промежуточная оценка для каждого из нескольких ресурсов, доступных от потенциального хоста, где промежуточная оценка для ресурса соответствует количеству ресурса, который остается свободным после того, как потенциальная виртуальная машина (VM) будет развернута на потенциальном хосте. После этого из вычисленных промежуточных оценок вычисляется оценка, чтобы охарактеризовать, насколько хорошо потенциальный хост может разместить потенциальную виртуальную машину (VM). Оценка для потенциального хоста предоставляется блоку выбора, который определяет, следует ли развертывать потенциальную виртуальную машину (VM) на потенциальном хосте, на основе его оценки. 3 н. и 15 з.п. ф-лы, 6 ил.
Реферат
Область техники, к которой относится изобретение
Настоящее изобретение имеет отношение к выбору хоста для виртуальной машины на основе описания характеристик рабочей нагрузки каждого из множества хостов, а также описания характеристик рабочей нагрузки виртуальной машины. Аналогичным образом, настоящее изобретение имеет отношение к определению того, должна или может ли физическая машина быть преобразована в виртуальную машину и быть развернута на хосте, в данном случае на основе описания характеристик рабочей нагрузки типичного хоста, а также описания характеристик рабочей нагрузки физической машины.
Предшествующий уровень техники
Как следует понимать, виртуальная машина ("VM") является программной конструкцией или т.п., работающей на вычислительном устройстве или т.п. (то есть "хосте") с целью эмуляции аппаратной системы. Как правило, хотя необязательно, виртуальная машина (VM) является прикладной программой или т.п. и может использоваться на хосте для создания экземпляра используемой прикладной программы или т.п., одновременно изолируя такую используемую прикладную программу от такого устройства хоста или от других прикладных программ на таком хосте. В одной типичной ситуации хост может разместить множество развернутых виртуальных машин (VM), причем каждая виртуальная машина (VM) выполняет некоторую предопределенную функцию посредством ресурсов, доступных от хоста. Особенно следует отметить, что каждая виртуальная машина (VM) во всех отношениях является вычислительной машиной, хотя и в виртуальной форме, и, таким образом, представляет себя таковой и для своих используемых прикладных программ, и для внешнего мира.
Как правило, хотя необязательно, хост развертывает каждую свою виртуальную машину (VM) в отдельном разделе. Такой хост может включать в себя уровень виртуализации с монитором виртуальных машин (VM) или т.п., который действует в качестве прикладной программы "надзирателя" или "гипервизора", причем уровень виртуализации наблюдает и/или иным образом управляет контролирующими аспектами каждой виртуальной машины (VM) хоста и действует как возможная линия связи между каждой виртуальной машиной (VM) и внешним миром.
Один признак виртуальной машины (VM) состоит в том, что виртуальная машина (VM) как виртуальная конструкция может быть по желанию остановлена и повторно запущена, а также в том, что виртуальная машина (VM) после ее остановки может быть сохранена и извлечена таким же образом, как файл и т.п. В частности, виртуальная машина (VM), экземпляр которой создан на конкретном вычислительном устройстве, представляет собой отдельную программную конструкцию, которая может быть аккуратно упакована, поскольку программная конструкция включает в себя все данные, имеющие отношение к такой виртуальной машине (VM), в том числе рабочие данные и информацию о состоянии, имеющие отношение к виртуальной машине (VM). В результате виртуальная машина (VM) на первом хосте может быть перемещена или "перенесена" на второй хост посредством остановки виртуальной машины (VM) на первом хосте, перемещения остановленной виртуальной машины (VM) на второй хост и повторного запуска перенесенной виртуальной машины (VM) на втором хосте и т.п. В более общем смысле виртуальная машина (VM) аналогичным образом может быть перенесена с первой платформы на вторую платформу, где платформы представляют собой разные хосты, разные конфигурации одного и того же хоста и т.п. В последнем случае, как следует понимать, вычислительное устройство может иметь другую конфигурацию, если, например, добавлена дополнительная память, заменен процессор, обеспечено дополнительное устройство ввода данных, удалено устройство выбора и т.д.
Виртуализация посредством виртуальных машин (VM) может использоваться, чтобы дать возможность относительно мощной компьютерной системе действовать в качестве хоста для набора независимых, изолированных виртуальных машин (VM). Также виртуальные машины (VM) на хосте сосуществуют на одной и той же аппаратной платформе и работают, как если бы каждая виртуальная машина (VM) имела эксклюзивный доступ к ресурсам, доступным на хосте и посредством него. В соответствии с этим виртуализация дает возможность оптимального использования каждого хоста, а также дает возможность переноса виртуальных машин (VM) среди набора хостов/платформ на основе необходимости, потребностей, требований, возможностей, доступности и других типичных ограничений.
Виртуализация также позволяет пользователю с физическими машинами, каждая из которых работает с прикладными программами, объединить такие прикладные программы в набор хостов, тем самым уменьшая общие аппаратные потребности. Таким образом и в качестве лишь одного примера, пользователь с несколькими физическими машинами, каждая из которых действует как сервер или т.п., может определить, что каждый физический сервер может быть преобразован (виртуализирован) в виртуальную машину (VM) и что несколько таких виртуальных машин (VM) могут находиться на одном хосте. Хотя это колеблется в широких пределах, известно, что с помощью таких виртуальных машин (VM) один хост может разместить эквивалент пяти, или десяти, или более физических машин. В итоге виртуализация приводит к тому, что пользователь способен более полно воспользоваться существующими аппаратными средствами посредством намного более интенсивного использования таких аппаратных средств. Фактически, поскольку типичный пользователь может потреблять только приблизительно в среднем 15% доступных аппаратных ресурсов при развертывании физических серверов, виртуализация может быть использована для обеспечения трех-, четырех- и возможно даже пяти- и шестикратного увеличения такого потребления, безусловно давая возможность для резервной мощности и накладных расходов, связанных с размещением виртуальных машин (VM).
В частности, типичный пользователь имеет много серверных машин или т.п., выполняющих различные рабочие нагрузки, которые полностью не используют базовое аппаратное обеспечение. Кроме того, некоторое аппаратное обеспечение приближается к концу срока службы, и может быть трудно обосновать обновление аппаратных средств до более современной, более быстрой системы, когда существующее аппаратное оборудование полностью не используется. Таким образом, пользователь извлек бы выгоду из использования виртуализации для предоставления возможности решения, которое объединяет серверы и т.п. в виде виртуальных машин (VM) в набор хостов. Однако существенным образом такому пользователю требуется инструмент управления, который может направлять такого пользователя при выборе того, какие серверы или т.п. следует виртуализировать, а также при выборе того, какой хост должен разместить каждую виртуальную машину (VM).
Другими словами, пользователю требуется инструмент управления, который может направлять такого пользователя при размещении серверов и т.п. в виде виртуальных машин (VM) на наборе хостов. Обычно развертывание сталкивается с эффективным подбором соответствия между определенной рабочей нагрузкой и набором совместимых физических ресурсов для обслуживания рабочей нагрузки. Если развертывание является неэффективным или позволяет несовместимые соответствия между ресурсами и требованиями, то достичь цель оптимизации использования аппаратного оборудования становится трудно, если вообще возможно. Таким образом, настоящее изобретение способствует совместимому, эффективному развертыванию и принимает во внимание требования к ресурсам, в том числе работу с сетью, хранение, лицензирование, вычислительную мощность, память и т.п.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В настоящем изобретении представлены система и способ, относящиеся к потенциальной виртуальной машине (VM) и потенциальному базовому вычислительному устройству (хосту), на котором потенциально может быть развернута эта потенциальная виртуальная машина (VM). Такие система и способ предназначены для содействия в определении того, следует ли развертывать потенциальную виртуальную машину (VM) на потенциальном хосте, учитывая ресурсы, доступные от потенциального хоста, и ресурсы, требуемые потенциальной виртуальной машиной (VM).
Для каждого из нескольких ресурсов, доступных от потенциального хоста, вычисляется промежуточная оценка, причем промежуточная оценка для ресурса соответствует количеству ресурса, которое остается свободным после того, как потенциальная виртуальная машина (VM) будет развернута на потенциальном хосте. После этого из вычисленных промежуточных оценок вычисляется оценка, чтобы охарактеризовать то, насколько хорошо потенциальный хост может разместить потенциальную виртуальную машину (VM). Оценка для каждого потенциального хоста предоставляется блоку выбора, который определяет, следует ли развернуть потенциальную виртуальную машину (VM) на потенциальном хосте, на основе его оценки. Сделанный выбор потенциального хоста принимается для развертывания на нем потенциальной виртуальной машины (VM), и ресурсы выбранного хоста, требуемые потенциальной виртуальной машиной (VM), резервируются до тех пор, пока потенциальная виртуальная машина (VM) не будет развернута на выбранном хосте. После этого потенциальная виртуальная машина (VM) развертывается на выбранном хосте.
ПЕРЧЕНЬ ФИГУР ЧЕРТЕЖЕЙ
Предшествующее описание сущности изобретения, а также последующее подробное описание вариантов воплощения настоящего изобретения будут лучше понятны при их прочтении совместно с приложенными чертежами. С целью иллюстрации изобретения на чертежах показаны варианты воплощения, которые являются в настоящее время предпочтительными. Однако, как следует понимать, изобретение не ограничено показанными точными расстановками и средствами. На чертежах:
Фиг.1 - блок-схема, представляющая компьютерную систему общего назначения, в которую могут быть включены аспекты настоящего изобретения и/или его частей;
Фиг.2 - блок-схема, показывающая систему физических машин и т.п., которые являются или могут быть преобразованными в виртуальные машины (VM), каждая из которых может быть развернута теоретически на любом хосте из набора хостов 14 в вариантах воплощения настоящего изобретения;
Фиг.3 - блок-схема, показывающая систему для оценки одной или более виртуальных машин (VM), показанных на фиг.2, которые могут быть развернуты на одном или более хостах в соответствии с вариантами воплощения настоящего изобретения;
Фиг.4 - блок схема последовательности операций, показывающая ключевые этапы, выполняемые применительно к системе, показанной на фиг.3, для оценки одной или более виртуальных машин (VM), которые могут быть развернуты на одном или более хостах в соответствии с вариантами воплощения настоящего изобретения;
Фиг.5 - блок-схема, показывающая представление ресурса хоста, показанного на фиг.2, используемого виртуальной машиной (VM), и, в частности, каким образом промежуточная оценка, показанная на фиг.4, соответствует выраженному в процентах потреблению ресурса, остающегося свободным после развертывания виртуальной машины (VM) 12 на хосте;
Фиг.6 - блок-схема последовательности операций, показывающая ключевые этапы, выполняемые при объединении выборок данных для получения данных о потреблении в отношении ресурса, которые, например, могут быть использованы применительно к системе, показанной на фиг.3, в соответствии с вариантами воплощения настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Компьютерное окружение
Фиг.1 и последующее рассмотрение предназначены для того, чтобы дать краткое общее описание подходящего вычислительного окружения, в котором может быть реализовано настоящее изобретение и/или его части. Хотя это не требуется, изобретение описано в общем контексте исполняемых на компьютере команд, таких как программные модули, исполняемые компьютером, например клиентской рабочей станцией или сервером. Обычно программные модули включают в себя подпрограммы, программы, объекты, компоненты, структуры данных и т.п., которые выполняют отдельные задачи или реализуют отдельные абстрактные типы данных. Кроме того, следует понимать, что изобретение и/или его части могут быть осуществлены с помощью других конфигураций компьютерных систем, в том числе переносных устройств, многопроцессорных систем, основанной на микропроцессоре или программируемой бытовой электроники, сетевых персональных компьютеров, миникомпьютеров, универсальных вычислительных систем и т.п. Изобретение также может быть осуществлено в распределенных вычислительных окружениях, в которых задачи выполняются посредством удаленных устройств обработки, которые связаны через систему связи. В распределенном вычислительном окружении программные модули могут быть размещены и в локальных, и в удаленных запоминающих устройствах.
Как показано на фиг.1, иллюстративная вычислительная система общего назначения включает в себя традиционное вычислительное устройство 120, например персональный компьютер, сервер и т.п., содержащее процессор 121, системную память 122 и системную шину 123, которая соединяет различные системные компоненты, в том числе системную память, с процессором 121. Системная шина 123 может представлять собой любой из нескольких типов шинных структур, в том числе шину памяти или контроллер памяти, периферийную шину и локальную шину, с использованием любой из разнообразных шинных архитектур. Системная память включает в себя постоянное запоминающее устройство (ROM; ПЗУ) 124 и оперативное запоминающее устройство (RAM; ОЗУ) 125. Базовая система 126 ввода-вывода (BIOS), содержащая базовые подпрограммы, которые помогают переносить информацию между элементами в персональном компьютере 20, например, во время запуска, хранится в постоянном запоминающем устройстве (ROM; ПЗУ) 124.
Персональный компьютер 120 может также включать в себя накопитель 127 на жестких дисках для чтения и записи на жесткий диск (не показан), на магнитный дисковод 128 для чтения или записи на сменный магнитный диск 129 и оптический дисковод 130 для чтения или записи на сменный оптический диск 131, например компакт-диск, предназначенный только для чтения (CD-ROM), или другие оптические носители. Накопитель 127 на жестких дисках, магнитный дисковод 128 и оптический дисковод 130 соединены с системной шиной 123 посредством интерфейса 132 накопителя на жестких дисках, интерфейса 133 магнитного дисковода и интерфейса 134 оптического дисковода соответственно. Накопители дисководы и соответствующие им машиночитаемые носители предоставляют энергонезависимое хранилище машиночитаемых команд, структур данных, программных модулей и других данных для персонального компьютера 120.
Хотя описанное здесь иллюстративное окружение использует жесткий диск, сменный магнитный диск 129 и сменный оптический диск 131, следует понимать, что в иллюстративном окружении также могут использоваться другие типы машиночитаемых носителей, которые могут хранить доступные для компьютера данные. Такие другие типы носителей включают в себя магнитную кассету, карту флэш-памяти, цифровой видеодиск, картридж Бернулли, оперативное запоминающее устройство (RAM; ОЗУ), постоянное запоминающее устройство (ROM; ПЗУ) и т.п.
Несколько программных модулей может быть сохранено на жестком диске, на магнитном диске 129, на оптическом диске 131, в постоянном запоминающем устройстве (ROM; ПЗУ) 124 или оперативном запоминающем устройстве (RAM; ОЗУ) 125, в том числе операционная система 135, одна или более прикладных программ 136, другие программные модули 137 и программные данные 138. Пользователь может вводить команды и информацию в персональный компьютер 120 через устройства ввода данных, например клавиатуру 140 и координатно-указательное устройство 142. Другие устройства ввода данных (не показаны) могут включать в себя микрофон, джойстик, игровую клавиатуру, спутниковый диск, сканер и т.п. Эти и другие устройства ввода данных часто соединяются с процессором 121 через интерфейс 146 последовательного порта, который соединен с системной шиной, но могут быть соединены посредством других интерфейсов, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 147 или устройство отображения другого типа также соединяется с системной шиной 123 через интерфейс, например видеоадаптер 148. В дополнение к монитору 147 персональный компьютер обычно включает в себя другие периферийные устройства вывода (не показаны), например динамики и принтеры. Иллюстративная система на фиг.1 также включает в себя контроллер 155 сервера, шину 156 интерфейса малых вычислительных систем (SCSI) и внешнее запоминающее устройство 162, соединенное с шиной интерфейса SCSI.
Персональный компьютер 120 может работать в сетевом окружении с использованием логических соединений с одним или более удаленными компьютерами, например с удаленным компьютером 149. Удаленный компьютер 149 может являться другим персональным компьютером, сервером, маршрутизатором, сетевым персональным компьютером, одноранговым устройством или другим общим сетевым узлом и обычно включает в себя многие или все элементы, описанные выше относительно персонального компьютера 120, хотя на фиг.1 проиллюстрировано только запоминающее устройство 150. Логические соединения, изображенные на фиг.1, включают в себя локальную сеть (LAN) 151 и глобальную сеть (WAN) 152. Такие сетевые среды являются обычными в офисах, в компьютерных сетях масштаба предприятия, в интрасетях и в Интернете.
При использовании в окружении локальной сети персональный компьютер 120 соединен с локальной сетью (LAN) 151 через сетевой интерфейс или адаптер 153. При использовании в окружении глобальной сети персональный компьютер 120 обычно включает в себя модем 154 или другие средства установления связи по глобальной сети 152, например Интернет. Модем 154, который может являться внутренним или внешним, соединен с системной шиной 123 через интерфейс 146 последовательного порта. В сетевом окружении программные модули, изображенные относительно персонального компьютера 120, или их части могут храниться в удаленном запоминающем устройстве. Следует понимать, что показанные сетевые соединения являются иллюстративными и могут использоваться другие средства установления линии связи между компьютерами.
Хосты и виртуальные машины
Обращаясь теперь к фиг.2, можно видеть, что настоящее изобретение может иметь конкретное применение в контексте физических машин 10 и т.п., которые являются или могут быть преобразованными в виртуальные машины (VM) 12, каждая из которых может быть соответствующим образом развернута теоретически на любом хосте из набора хостов 14. Здесь следует отметить, что физические машины 10 или т.п., виртуальные машины (VM) 12 и хост 14 могут представлять собой любые подходящие серверы и т.п., виртуальные машины (VM) и хост без отступления от сущности и объема настоящего изобретения. Такие серверы или т.п., виртуальные машины (VM) и хост известны или должны быть понятны специалистам и поэтому не требуют более подробного изложения, кроме того, которое уже предоставлено.
Как было изложено выше, каждая виртуальная машина (VM) 12 является программной конструкцией или т.п., которая при ее развертывании на хосте 14 эмулирует соответствующую физическую машину 10 и т.п. Таким образом, виртуальная машина (VM) 12 может использовать ресурсы хоста 14 для создания экземпляра сервера или другой используемой прикладной программы и т.п., одновременно изолируя такое используемое программное приложение от такого хоста 14 и других прикладных программ на таком хосте 14. Как показано, хост 14 может разместить множество развернутых виртуальных машин (VM) 12, причем каждая виртуальная машина (VM) 12 независимо выполняет некоторую предопределенную функцию. Например, по меньшей мере некоторые из виртуальных машин (VM) 12, развернутых на хосте 14, могут действовать как серверы данных, по меньшей мере некоторые из таких виртуальных машин (VM) 12 могут действовать как сетевые серверы по отношению к сети 16, присоединенной к хосту 14, по меньшей мере некоторые из таких виртуальных машин (VM) 12 могут действовать как почтовые серверы и по меньшей мере некоторые из таких виртуальных машин (VM) 12 могут выполнять функции нижнего уровня, в том числе функции обслуживания, сбор данных, отслеживание аппаратного обеспечения, исправление ошибок, управление файлами и т.п. Следует отметить, что каждая виртуальная машина (VM) 12 во всех отношениях является вычислительной машиной, хотя и в виртуальной форме.
Хост 14 сам по себе может представлять собой соответствующее вычислительное устройство, например настольный компьютер, портативный компьютер, переносной компьютер, карманный компьютер, универсальную вычислительную систему или вычислительное устройство любого другого типа с функциональностью и возможностями, необходимыми для размещения одной или более виртуальных машин (VM) 12. Принимая во внимание, что каждая виртуальная машина (VM) может требовать от хоста 14 существенных объемов памяти, операций ввода-вывода, емкости запоминающего устройства и производительности процессора, однако, также принимая во внимание, что хост 14, как предполагается, может разместить 2, 5, 10, 20 или более виртуальных машин (VM) 12 одновременно, хост 14 должен иметь существенную мощность и ресурсы для того, чтобы быть в состоянии действительно разместить такие виртуальные машины (VM) 12.
В отношении каждой физической машины 10 или т.п. следует понимать, что каждая виртуальная машина (VM) 12 наиболее типично соответствует такой физической машине 10, например серверу, но фактически может соответствовать физическому вычислительному устройству любого типа без отступления от сущности и объема настоящего изобретения. Таким образом, в дополнение к серверу в качестве физической машины 10 каждая виртуальная машина (VM) 12 может соответствовать прикладной физической машине любого другого типа, в том числе, но без ограничения, любой машине для обслуживания, машине для сбора данных, машине для отслеживания аппаратного обеспечения, машине для исправления ошибок, машине для управления файлами и т.п. Кроме того, каждая виртуальная машина (VM) 12 также может соответствовать любой прикладной программе уровня функционального узла, в том числе текстовому процессору, анализатору электронных таблиц, прикладной программе для работы с почтой, прикладной программе для работы с базой данных, графической прикладной программе, прикладной программе для визуализации информационного содержания и т.п.
Оценка развертывания виртуальной машины
Пользователь при принятии решения, следует ли виртуализировать физическую машину 10 или т.п., обычно (1) определяет, является ли физическая машина 10 допустимым кандидатом на виртуализацию, и (2) для хорошего кандидата преобразовывает физическую машину 10 в виртуальную машину VM 12. Преобразование физической машины 10 в виртуальную машину (VM) 12 может быть выполнено любым соответствующим образом без отступления от сущности и объема настоящего изобретения. Поскольку преобразование физической машины 10 в виртуальную машину (VM) 12 является общеизвестным или должно являться понятным для специалиста, подробности его выполнения не требуют более подробного изложения, кроме того, которое предоставлено.
Во всяком случае, когда виртуальная машина (VM) 12, соответствующая физической машине 10, создана, (3) один или более потенциальных хостов 14 идентифицируются как хосты 14, на которых виртуальная машина (VM) может быть развернута эффективным и/или допустимым образом, и (4) такая виртуальная машина (VM) 12 затем может быть развернута на выбранном потенциальном хосте 14. Следует отметить, что настоящее изобретение может использоваться для помощи в принятии решения, выполняемом на этапах (1) и (3). Таким образом, настоящее изобретение обеспечивает систему, посредством которой можно определить, следует и можно ли виртуализировать физическую машину 10 как виртуальную машину (VM) 12 и развернуть ее на хосте 14, на основании описания характеристик рабочей нагрузки типичного хоста 14, а также описания характеристик рабочей нагрузки физической машины 10. Кроме того, этот же инструмент может быть использован для определения того, является ли один или более потенциальных хостов 14 приемлемым для виртуальной машины (VM) 12, вновь на основе описания характеристик рабочей нагрузки каждого потенциального хоста 14, а также описания характеристик виртуальной машины (VM) 12.
На фиг.3 показана система для выполнения настоящего изобретения. В такой системе, как можно видеть, блок 18 оценки принимает данные, относящиеся к модели потенциальной виртуальной машины (VM) 12 и по меньшей мере одного потенциального хоста 14, чтобы определить, имеет ли каждый потенциальный хост 14 возможность разместить потенциальную виртуальную машину (VM) 12, развернутую на нем. Здесь следует отметить, что в контексте определения того, должна и может ли физическая машина 10 быть преобразована в виртуальную машину (VM) 12 и развернута на хосте 14, потенциальная виртуальная машина (VM) 12 является описанием характеристик физической машины 10 как виртуализированной, в то время как один потенциальный хост 14 является составным хостом 14, подразумеваемым для описания характеристик хоста 14, на котором должна быть развернута виртуальная машина (VM) 12. Следует отметить, что такой охарактеризованный хост 14 может представлять собой средний хост, наилучший доступный хост, наилучший средний хост и т.п., как диктуют обстоятельства. В контексте определения того, является ли один или более потенциальных хостов 14 допустимым для виртуальной машины (VM) 12, потенциальная виртуальная машина (VM) 12 является виртуальной машиной (VM) 12, которая может быть развернута на любом из множества потенциальных хостов 14.
В любом случае блок 18 оценки принимает для потенциальной виртуальной машины (VM) 12 модельные данные, включающие в себя базовую конфигурацию процессора для потенциальной виртуальной машины (VM) 12, и определенную характеристику рабочей нагрузки для потенциальной виртуальной машины (VM) 12. Такая базовая конфигурация процессора может, например, представлять, что потенциальная виртуальная машина (VM) 12 имеет конкретный процессор, работающий с конкретной скоростью с конкретными доступными ресурсами. Потенциальная виртуальная машина (VM) 12 обычно имеет связанные с ней модельные данные, которые определяют возможности, требуемые для выполнения рабочей нагрузки такой виртуальной машины (VM) 12 в контексте базовой конфигурации процессора, и, например, могут определить потребление процессора, которое виртуальная машина (VM) 12 совершила бы на заданном базовом процессоре.
Такое описание характеристик рабочей нагрузки может быть основано на различных показателях и поэтому может включать в себя описание характеристик рабочей нагрузки относительно потребления различных ресурсов потенциальной виртуальной машины (VM) 12, таких как процессор (например, выраженное в процентах потребление), память (доступный объем, количество чтений и записей в единицу времени и т.д.), емкость запоминающего устройства (доступный объем, количество чтений и записей в единицу времени и т.д.), сеть 16 (доступная пропускная способность, количество чтений и записей в единицу времени и т.д.) и т.п. Безусловно, такое определение характеристик рабочей нагрузки может быть основано на других показателях без отступления от сущности и объема настоящего изобретения, в том числе на показателях, не имеющих отношения к потреблению, таких как версии программного обеспечения, включенное в состав аппаратное оборудование и т.п.
Кроме того, определение характеристик рабочей нагрузки может быть задано в других терминах без отступления от сущности и объема настоящего изобретения. В этом отношении следует отметить, что рабочая нагрузка может быть задана в разных единицах для разных ресурсов. Например, загруженность процессора может быть задана как выраженное в процентах потребление, в то время как сетевая нагрузка может быть задана в терминах сетевого трафика в байтах в секунду. Следует также отметить, что загруженность запоминающего устройства может включать в себя спецификацию пропускной способности запоминающего устройства, в том числе количество байтов и операций ввода-вывода, которые выполняются виртуальной машиной (VM) 12 в единицу времени. Также следует отметить, что сетевая нагрузка может не обязательно быть задана как пропускная способность, поскольку сетевой трафик может не зависеть от нее. Наконец, следует отметить, что рабочая нагрузка может быть задана в терминах физических ресурсов. Однако, во всяком случае, описывается характеристика рабочей нагрузки, блок 18 оценки соответствующим образом конвертирует такую охарактеризованную рабочую нагрузку в форму, пригодную для вычислений, изложенных ниже. Такие преобразования известны или должны быть понятны специалистам и поэтому не требуют более подробного изложения, кроме того, которое предоставлено.
Следует понимать, что конфигурация процессора и описание характеристик рабочей нагрузки относительно потенциальной виртуальной машины (VM) 12 фактически являются виртуальной конфигурацией и виртуальным описанием характеристик, поскольку потенциальная виртуальная машина (VM) 12 является виртуальным устройством. Однако такая виртуальная конфигурация и виртуальное описание характеристик рабочей нагрузки применимы к определению ресурсов, требуемых от каждого потенциального хоста 14, по меньшей мере, относительно показателей для описания характеристик рабочей нагрузки. В общем случае в настоящем изобретении блок 18 оценки берет в качестве входной информации представление рабочей нагрузки либо для потенциальной виртуальной машины (VM) 12, либо для потенциальной физической машины 10. В каждом случае рабочая нагрузка описывается для блока 18 оценки в соответствии с данными, полученными блоком 20 сбора данных, интерфейсом 22 данных и т.п., как можно видеть на фиг.3. Следует отметить в отношении фиг.3, что такие данные не обязательно получаются из потенциальной виртуальной машины (VM) 12, полученной из потенциальной физической машины 10, но вместо этого могут быть получены непосредственно от потенциальной физической машины 10.
Аналогичным образом блок 18 оценки также принимает для каждого потенциального хоста 14 модельные данные, включающие в себя фактическую конфигурацию процессора для потенциального хоста 14 и фактическое описание характеристик рабочей нагрузки для каждого потенциального хоста 14. Как и ранее, такая фактическая конфигурация процессора может, например, представлять, что потенциальный хост 14 имеет конкретный процессор, работающий с конкретной скоростью с конкретными ресурсами, доступными до развертывания потенциальной виртуальной машины (VM) 12 такому потенциальному хосту 14. Здесь описание характеристик фактической рабочей нагрузки основано на тех же самых показателях, что и описание характеристик рабочей нагрузки потенциальной виртуальной машины (VM) 12, и также может включать в себя описание характеристик фактической рабочей нагрузки относительно использования других ресурсов потенциального хоста 14, например процессора, памяти, емкости запоминающего устройства, сети 16 и т.п.
Следует отметить относительно каждого потенциального хоста 14 и потенциальной виртуальной машины (VM) 12, что по меньшей мере некоторые из данных для показателей описания характеристик рабочей нагрузки могут быть получены на хронологической основе посредством блока 20 сбора данных и т.п., по мере работы потенциального хоста 14, по мере работы виртуальной машины (VM) 12, по мере работы физической машины, соответствующей виртуальной машине (VM) 12 и т.п. Следует понимать, что такой блок 20 сбора хронологических данных может работать любым подходящим образом без отступления от сущности и объема настоящего изобретения. Один способ сбора таких данных изложен ниже. Такой блок 20 сбора хронологических данных известен или должен быть понятен для специалистов и поэтому не требует подробного изложения здесь.
Также следует отметить относительно каждого потенциального хоста 14, что по меньшей мере некоторые из фактических данных для показателей описания характеристик рабочей нагрузки могут быть получены как текущие данные от потенциального хоста 14 посредством интерфейса 22 данных и т.п. по мере работы потенциального хоста 14. Следует понимать, что такой интерфейс 22 данных может работать любым подходящим образом без отступления от сущности и объема настоящего изобретения. Такой интерфейс 22 известен или должен быть понятен для специалистов и поэтому не требует подробного изложения здесь. Также следует отметить, что по меньшей мере в некоторых обстоятельствах подобный интерфейс 22 данных может использоваться для получения по меньшей мере некоторых текущих данных относительно потенциальной виртуальной машины (VM) 12. Например, такой интерфейс 22 может собирать такие текущие данные от физической машины 10, соответствующей потенциальной виртуальной машине (VM) 12, или от потенциальной виртуальной машины (VM) 12, если она уже работает на некотором хосте 14.
Главным образом и в одном варианте воплощения настоящего изобретения, блок 18 оценки работает для выдачи оценки относительно каждого потенциального хоста 14, которая характеризует, может ли потенциальная виртуальная машина (VM) 12 быть развернута на таком потенциальном хосте 14, и если может, насколько хорошо потенциальный хост 14 может разместить потенциальную виртуальную машину (VM) 12. В общем случае, такая оценка отражает на основе конфигурации и описания характеристик рабочей нагрузки, имеет ли потенциальный хост 14 возможность разместить потенциальную виртуальную машину (VM) 12, как развернутую на нем, и если имеет, насколько велика эта возможность в относительных единицах. Например, оценка может быть выдана как число от 0 до 5, где 0 обозначает отсутствие возможности, 5 обозначает максимальную возможность и промежуточные значения обозначают промежуточную относительную величину возможности.
В одном варианте воплощения настоящего изобретения блок 18 оценки работает на основе жестких требований и мягких требований. Жесткое требование может быть определено как требование, которое обязательно должно быть удовлетворено для развертывания потенциальной виртуальной машины (VM) 12 на потенциальном хосте 14. Например, если потенциальная виртуальная машина (VM) 12 требует 2 гигабайта пространства запоминающего устройства на потенциальном хосте 14 и потенциальный хост 14 имеет в наличии только 1 гигабайт, потенциальная виртуальная машина (VM) 12 не должна развертываться на таком потенциальном хосте 14. В общем случае, жесткие требования оцениваются на основе фактических данных, полученных посредством интерфейса 22 данных от каждого потенциального хоста 14. Примеры таких жестких требований обычно вытекают из возможностей, относящихся к изложенным выше показателям рабочей нагрузки, и поэтому могут включать в себя, но без ограничения:
- возможности процессора - потенциальный хост 14 обязательно должен иметь достаточную выраженную в процентах доступность процессора для удовлетворения требованиям потенциальной виртуальной машины (VM) 12, и, кроме того, мультипроцессорная потенциальная виртуальная машина (VM) 12 может выполняться только на потенциальном хосте 14, на котором выполняется подходящая версия программного обеспечения виртуализации;
- возможности запоминающего устройства - потенциальный хост 14 обязательно должен иметь достаточно свободного пространства на запоминающем устройстве и соответствующих ресурсов для хранения и обслуживания потенциальной виртуальной машины (VM) 12;
- возможности памяти - потенциальный хост 14 обязательно должен иметь достаточно памяти, чтобы дать возможность потенциальной виртуальной машине (VM) 12 выполняться как развернутой;
- возможности сети - потенциальный хост 14 обязательно должен иметь в наличии достаточную пропускную способность сети для доступа к сети 16, требуемого потенциальной виртуальной машиной (VM) 12.
Следует отметить, что не все из упомянутого выше фактически может представлять собой жесткие требования при любых обстоятельствах. В одном примере возможности процессора необязательно должны являться жестким требованием, если ухудшенная производительност