РАЗВЕРТЫВАНИЕ ВИРТУАЛЬНОЙ МАШИНЫ НА ХОСТЕ НА ОСНОВЕ ОПИСАНИЯ ХАРАКТЕРИСТИК РАБОЧЕЙ НАГРУЗКИ
DEPLOYING VIRTUAL MACHINE ON HOST BASED ON WORKLOAD CHARACTERISATION

Область техники, к которой относится изобретение
Настоящее изобретение имеет отношение к выбору хоста для виртуальной машины на основе описания характеристик рабочей нагрузки каждого из множества хостов, а также описания характеристик рабочей нагрузки виртуальной машины. Аналогичным образом, настоящее изобретение имеет отношение к определению того, должна или может ли физическая машина быть преобразована в виртуальную машину и быть развернута на хосте, в данном случае на основе описания характеристик рабочей нагрузки типичного хоста, а также описания характеристик рабочей нагрузки физической машины.
Предшествующий уровень техники
Как следует понимать, виртуальная машина ("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.
Следует отметить, что не все из упомянутого выше фактически может представлять собой жесткие требования при любых обстоятельствах. В одном примере возможности процессора необязательно должны являться жестким требованием, если ухудшенная производительность из-за нехватки достаточных возможностей считается допустимой. В другом примере возможности сети аналогично необязательно являются жестким требованием, если ухудшенная пропускная способность из-за нехватки достаточных возможностей считается допустимой.
Мягкое требование может быть определено как требование, которое следует удовлетворить для достижения хорошего или допустимого уровня производительности потенциальной виртуальной машины (VM) 12, развернутой на любом конкретном потенциальном хосте 14. Таким образом, мягкое требование следует удовлетворить, но если оно не будет удовлетворено, развернутая потенциальная виртуальная машина (VM) 12 по-прежнему будет работать, хотя и с ухудшенным уровнем обслуживания.
Перед созданием упомянутой выше оценки для каждого потенциального хоста 14 относительно потенциальной виртуальной машины (VM) 12 и как показано на фиг.4, блок оценки в одном варианте воплощения настоящего изобретения выполняет функции, включающие в себя:
- масштабирование потребления процессора потенциальной виртуальной машины (VM) 12 к эквивалентному потреблению процессора потенциального хоста 14 (этап 401). Например, если потенциальная виртуальная машина (VM) 12 требует 20% своего процессора, но процессор потенциального хоста 14 оказывается быстрее, может случиться, что потенциальная виртуальная машина (VM) 12 вместо этого потребует лишь 8% такого процессора такого потенциального хоста 14. Следует понимать, что тогда необходимо масштабирование для сравнения в эквивалентных единицах потребления процессора, требуемого потенциальной виртуальной машиной (VM) 12, с потреблением процессора, доступного от потенциального хоста 14. Следует понимать, что такое масштабирование может быть выполнено блоком 18 оценки любым подходящим образом без отступления от сущности и объема настоящего изобретения. Например, можно упомянуть эквивалентное ранжирование процессора потенциальной виртуальной машины (VM) 12 и процессора потенциального хоста 14. Ранжирование по производительности процессора может не являться частью модельных данных, принятых блоком 18 оценки от блока 20 сбора данных. Вместо этого блок 18 оценки может поддерживать библиотеку конфигураций процессоров, которая включает в себя ранжирование по производительности. Если библиотека не содержит процессор при оценке, то ранжирование для такого процессора может быть приближено с использованием алгоритма, который учитывает ранжирование аналогичных конфигураций процессоров в библиотеке;
- учет накладных расходов виртуализации (этап 403). В частности, когда физическая машина 10 преобразовывается в виртуальную машину (VM) 12, следует понимать, что хост 14 при размещении виртуальной машины (VM) 12 должен иметь возможности не только для виртуальной машины (VM) 12, но и для дополнительной работы или "накладных расходов", связанных с виртуализацией такой виртуальной машины (VM) 12. Такие накладные расходы налагаются любой виртуальной машиной (VM) 12 и являются результатом эмуляции устройств, разделения ресурсов и других ресурсов, которые должны быть израсходованы для осуществления виртуализации виртуальной машины (VM) 12. Следует понимать, что количество накладных расходов изменяется в зависимости от типа рабочей нагрузки, которая может быть связана с потенциальной виртуальной машиной (VM) 12. Например, если потенциальная виртуальная машина (VM) 12 требует доступа к сети 16, должны быть понесены накладные расходы для транслирования виртуальных сетевых запросов в фактические запросы. Аналогично, если потенциальная виртуальная машина (VM) 12 требует доступа к запоминающему устройству, должны быть понесены накладные расходы для транслирования запросов к диску в фактические запросы. В любом случае накладные расходы могут быть охарактеризованы блоком 18 оценки на основе соответствующих показателей, таких как тип работы, которую потенциальная виртуальная машина (VM) 12 должна выполнять, количество ожидаемых запросов к диску, количество ожидаемых сетевых запросов, количество ожидаемых графических запросов, количество обращений к памяти, количество прерываний процессора, количество выполняемых процессов и т.п. Следует понимать, что учет накладных расходов может быть выполнен блоком 18 оценки любым подходящим образом без отступления от сущности и объема настоящего изобретения;
- моделирование выполнения потенциальной виртуальной машины (VM) 12 на потенциальном хосте 14 после масштабирования и учета накладных расходов (этап 405). В частности, блок 18 оценки помещает "фиктивную" виртуальную машину (VM) 12 на потенциальном хосте 14 с параметрами использования, которые по меньшей мере приблизительно соответствуют потенциальной виртуальной машине (VM) 12, развернутой и работающей на потенциальном хосте 14, чтобы определить, приемлемо ли размещает потенциальный хост 14 такую фиктивную виртуальную машину (VM) 12. Такое моделирование с помощью такой фиктивной виртуальной машины (VM) 12 выполняется в попытке подтвердить, что потенциальный хост 14 действительно может разместить потенциальную виртуальную машину (VM) 12, по меньшей мере представленную фиктивной виртуальной машиной (VM) 12. По существу размещение фиктивной виртуальной машины (VM) 12 на потенциальном хосте 14 объединяет требования к ресурсам потенциальной виртуальной машины (VM) 12 посредством фиктивной виртуальной машины (VM) 12 с текущим использованием ресурсов на потенциальном хосте 14, чтобы получить в результате потребление ресурсов, которое может получиться в результате размещения потенциальной виртуальной машины (VM) 12 на потенциальном хосте 14.
Следует отметить, что фиктивная виртуальная машина (VM) 12, размещенная на потенциальном хосте 14, может быть развернута фактически или, как альтернатива, может быть развернута концептуально. В частности, относительно последнего случая фактическое размещение/развертывание фиктивной виртуальной машины (VM) 12 может являться недопустимым, поскольку такая фиктивная виртуальная машина (VM) 12 использовала бы фактические ресурсы на потенциальном хосте 14 и, таким образом, могла бы затронуть другие виртуальные машины (VM) 12 и т.п. на таком потенциальном хосте 14, которые выполняют фактическую работу. Вместо этого может быть выполнено концептуальное развертывание посредством вычисления, и при этом требования к рабочим характеристикам потенциальной виртуальной машины (VM) 12 и показатели производительности потенциального хоста 14 будут объединены, чтобы спроектировать потребление на потенциальном хосте 14 посредством такой потенциальной виртуальной машины (VM) 12, развернутой на нем.
Относительно упомянутых выше накладных расходов виртуализации следует также отметить, что, поскольку такие накладные расходы являются такими переменными и зависят от типа рабочей нагрузки потенциальной виртуальной машины (VM) 12, в одном варианте воплощения настоящего изобретения может быть определен фиксированный набор эталонных рабочих нагрузок, по одной для каждого типа рабочей нагрузки. Такие типы рабочих нагрузок и соответствующие эталоны могут включать в себя, но без ограничения: сервер базы данных, веб-сервер и терминальный сервер. Каждый тип рабочей нагрузки имеет заданное описание характеристик, которое позволяет оценивать накладные расходы для процессора, памяти, запоминающего устройства и сети и т.п., связанные с типом рабочей нагрузки. В общем случае, более интенсивные рабочие нагрузки на запоминающее устройство и на сеть подвержены более крупным накладным расходам для процессора из-за стоимости виртуализации таких ресурсов.
Следует отметить, что оценка накладных расходов виртуализации может быть дополнительно усовершенствована. В частности, стоимостное выражение процессора может быть связано с передачей одного байта при сетевых и дисковых операциях ввода-вывода между потенциальной виртуальной машиной (VM) 12 и потенциальным хостом 14. Если модельные данные, принятые от блока 20 сбора данных, включают в себя дисковую и сетевую рабочую нагрузку при вводе-выводе, то блок 18 оценки может применить стоимостное выражение процессора для одного байта к таким данным рабочей нагрузки, чтобы получить общие накладные расходы процессора. В случаях, где стоимостное выражение процессора получено от процессора, который отличается от оцениваемого процессора, стоимостное выражение может быть масштабировано точно так же, как описано на этапе 401. Такое масштабирование уменьшает усилия, требуемые для моделирования накладных расходов виртуализации через множество конфигураций процессоров.
Выходная информация блока 18 оценки для каждого потенциального хоста 14, как было изложено выше, представляет собой оценку, которая характеризует, насколько хорошо потенциальный хост 14 может разместить потенциальную виртуальную машину (VM) 12, с учетом ресурсов, требуемых потенциальной виртуальной машиной (VM) 12, и накладных расходов, требуемых для виртуализации потенциальной виртуальной машины (VM) 12 на потенциальном хосте 14. В одном варианте воплощения настоящего изобретения такая оценка вычисляется блоком 18 оценки следующим образом.
Во-первых, если любое из упомянутых выше жестких требований не удовлетворено, то есть потенциальный хост 14 не имеет в наличии необходимых ресурсов, оценка равна 0. Кроме того, если использование какого-либо ресурса потенциальной виртуальной машиной (VM) 12 на потенциальном хосте 14 приводит к тому, что потенциальный хост 14 превышает порог, установленный для использования такого ресурса, оценка равна 0 (этап 407). Как будет более подробно изложено ниже, каждый ресурс на потенциальном хосте 14 имеет предопределенный порог использования, вне которого использование не рекомендуется. Таким образом, такой порог фактически определяет резерв ресурса, который должен быть доступным для потенциального хоста 14, чтобы обрабатывать ситуации, в которых потребление является выше ожидаемого. Если оценка установлена равной 0, поскольку потенциальная виртуальная машина (VM) 12 приводит к тому, что потенциальный хост 14 нарушает жесткое требование или порог, процесс останавливается. В ином случае процесс продолжается посредством вычисления значения для оценки (этап 409).
В одном варианте воплощения настоящего изобретения для каждого из нескольких ресурсов на потенциальном хосте 14 вычисляется промежуточная оценка (этап 411). Такие ресурсы могут представлять собой любые ресурсы без отступления от сущности и объема настоящего изобретения, например потребление процессора, потребление памяти, потребление запоминающего устройства, потребление сети и т.п.
Промежуточная оценка для каждого ресурса вычисляется на основе порога, установленного для ресурса, выраженного в процентах потребления, вычисленного для ресурса на основе собранных данных, и весового коэффициента, назначенного ресурсу, следующим образом:
Промежуточная оценка = (Порог - Потребление) × Весовой коэффициент.
Порог и весовой коэффициент могут быть выбраны администратором и т.п. на основе любых соответствующих показателей без отступления от сущности и объема настоящего изобретения. Порог, который является изложенным выше порогом, может быть выражен как процентная доля и соответствует упомянутому выше резерву, определенному для ресурса. Такой резерв может быть определен достаточно произвольно, но в общем случае должен быть установлен для обеспечения разумного запаса дополнительных возможностей при обстоятельствах. В качестве примера, если ресурс представляет собой запоминающее устройство на потенциальном хосте 14, резерв может быть определен как 20% емкости запоминающего устройства на потенциальном хосте 14, и в этом случае порог составляет 80%. Аналогично, например, резерв величиной в 15% установит порог равным 85%. Весовой коэффициент служит для того, чтобы давать больший акцент или меньший акцент ресурсу по сравнению с другими ресурсами при вычислении полной оценки. Таким образом, если все ресурсы рассматриваются как имеющие равную важность, всем таким ресурсам можно дать одинаковый вес, например, равный 5. Соответствующим образом, если один ресурс рассматривается как вдвое более важный, чем другой, этому ресурсу можно дать вес, вдвое больший, чем вес другого ресурса, например 6 и 3 соответственно.
Немаловажно, что выраженное в процентах потребление для ресурса вычисляется на основе соответствующих данных, собранных блоком 20 сбора данных и/или интерфейсом 22 данных, в зависимости от обстоятельств, и после того, как такие данные, возможно, были масштабированы и/или скорректированы с учетом накладных расходов, как на этапах 401 и 403, вновь в зависимости от обстоятельств. Вычисление такого выраженного в процентах потребления, выполняемое блоком 18 оценки, может быть выполнено любым соответствующим образом без отступления от сущности и объема настоящего изобретения. Обычно выраженное в процентах потребление, вычисленное для любого конкретного ресурса потенциального хоста 14, представляет, какое количество ресурса в процентах используется потенциальным хостом 14, когда на нем развертывается потенциальная виртуальная машина (VM) 12 и когда потенциальный хост 14 выполняет все другие функции, которые выполнялись до развертывания потенциальной виртуальной машины (VM) 12. Таким образом и в качестве примера, если потенциальный хост 14 до развертывания потенциальной виртуальной машины (VM) 12 использовал 20% доступной пропускной способности сети и если предполагается, что потенциальный хост 14 после развертывания потенциальной виртуальной машины (VM) 12 будет использовать 45% этой доступной пропускной способности сети (то есть дополнительные 25%, свойственные для потенциальной виртуальной машины (VM) 12), то выраженное в процентах потребление сетевых ресурсов для потенциального хоста 14 равно 45%.
Графически выраженное в процентах потребление представлено на фиг.5. В частности, как показано, для некоторого конкретного ресурса потенциальный хост до развертывания на нем потенциальной виртуальной машины (VM) 12 имел ранее существующее потребление хоста, равное 25%, которое представляет другие виртуальные машины (VM) 12, уже развернутые на таком потенциальном хосте 14, а также все другие операции хоста. После развертывания потенциальной виртуальной машины (VM) 12, как показано, дополнительное потребление потенциальной виртуальной машиной (VM) 12 было определено равным 40%, что дает в результате полное потребление, равное 65%. Как показано, для такого ресурса был установлен резерв, равный 20%, что дает в результате порог, составляющий 80% (100-20), и что после развертывания потенциальной виртуальной машины (VM) 12 15% ресурса останутся свободными (80-65). Таким образом, промежуточная оценка для такого ресурса составит 80-процентный порог минус 65% для полного потребления, что составляет 15% оставшегося свободным ресурса, умноженные на любой весовой коэффициент, установленный для этого ресурса. Тогда в итоге выраженное в процентах потребление любого ресурса наиболее близко соответствует проценту ресурса, остающегося свободным после того, как потенциальная виртуальная машина (VM) 12 развернута на потенциальном хосте 14, имеющем такой ресурс.
Во всяком случае, как только промежуточная оценка вычислена для каждого рассматриваемого ресурса потенциального хоста 14, такие промежуточные оценки объединяются, чтобы получить в результате оценку для потенциального хоста 14 (этап 413), следующим образом:
Оценка = Сумма промежуточных оценок/ Сумма весовых коэффициентов промежуточных оценок/ Нормировочное значение.
Следует отметить, что дополнительное значение, например 0,5, может быть добавлено к вычислению оценки, с тем чтобы оценка никогда не была меньше такого дополнительного значения. Такая оценка также может быть округлена до ближайшего значения 0,5, что в результате дает число между 0 и максимальным значением, например 5. Следует понимать, что нормировочное значение выбирается для того, чтобы сжать диапазон оценки между 0 и максимальными значениями. Например, если Сумма промежуточных оценок/ Сумма весовых коэффициентов промежуточных оценок имеет максимальное значение и максимальная оценка должна быть равна 5, нормировочное значение будет составлять 20, что равно 100/5.
Безусловно, оценка для каждого потенциального хоста 14 и его промежуточные оценки также могут быть вычислены любым другим соответствующим образом без отступления от сущности и объема настоящего изобретения, безусловно предполагая, что оценка дает разумное представление того, насколько хорошо потенциальный хост 14 может разместить потенциальную виртуальную машину (VM) 12, развернутую на нем, учитывая все другие виртуальные машины (VM) 12, уже развернутые на потенциальном хосте 14, и другие операции, уже выполняемые потенциальным хостом 14. Например, хотя показанная здесь оценка фактически придает значение тому, сколько свободных ресурсов будет иметь потенциальный хост 14 после развертывания на нем потенциальной виртуальной машины (VM) 12, такая оценка может вместо этого придавать значение тому, сколько таких ресурсов используется на потенциальном хосте 14.
После того как блок 18 оценки вычислил оценку для каждого потенциального хоста 14 для потенциальной виртуальной машины (VM) 12, блок оценки может предоставить оценки администратору и т.п. (этап 415), после чего администратор может делать выбор среди оцененных потенциальных хостов 14 (этап 417). Следует отметить, что администратор вероятно сделает выбор среди потенциальных хостов 14 на основе одной из двух стратегий развертывания - выравнивание нагрузки и максимизация потребления ресурсов. При выравнивании нагрузки администратор пытается развернуть потенциальную виртуальную машину (VM) 12 на потенциальном хосте 14 с наибольшими ресурсами после такого развертывания (то есть свободными), с тем чтобы в конечном счете развертывание виртуальных машин (VM) 12 на всех хостах 14 происходило приблизительно с одинаковой нагрузкой сбалансированным образом. Напротив, при максимизации потребления ресурсов администратор пытается максимизировать использование каждого хоста 14 и, таким образом, пожелает развернуть потенциальную виртуальную машину (VM) 12 на потенциальном хосте 14 с наименьшим количеством ресурсов (то есть свободных ресурсов) после такого развертывания.
Таким образом, выравнивание нагрузки пытается оставить все хосты 14 одинаково используемыми после развертывания, в то время как максимизация потребления ресурсов пытается использовать все доступные ресурсы на одном хосте 14 перед тем, как начать использовать следующий хост 14. Следует понимать, что поскольку вычисленная выше оценка придает значение свободным ресурсам потенциального хоста 14, администратор, выполняющий выравнивание нагрузки, вероятно выберет для развертывания потенциальной виртуальной машины (VM) 12 потенциальный хост 14 с наиболее высокой оценкой, который по определению, собственно говоря, будет иметь наибольшие свободные ресурсы после такого развертывания. Напротив, администратор, выполняющий максимизацию потребления ресурсов, вероятно выберет для развертывания потенциальной виртуальной машины (VM) 12 потенциальный хост 14 с наименьшей ненулевой оценкой, который по определению, собственно говоря, будет иметь наименьшие свободные ресурсы после такого развертывания.
Как только потенциальный хост 14 был выбран, на выбранном хосте 14 может быть выполнено резервирование ресурсов, возможно посредством виртуальной машины (VM) 12 резервирования, которая создается и развертывается на выбранном хосте 14 (этап 419). Следует понимать, что виртуальная машина (VM) 12 резервирования является "пустой" виртуальной машиной (VM) 12 без какой-либо самостоятельной функциональности или информационного содержания. Такая виртуальная машина (VM) 12 резервирования описывает аппаратную конфигурацию и требования к ресурсам потенциальной виртуальной машины (VM) 12, но исключает из рассмотрения память, данные и запоминающее устройство потенциальной виртуальной машины (VM) 12. Следует понимать, что виртуальная машина (VM) 12 резервирования обеспечивает важную проверку, что развертывание потенциальной виртуальной машины (VM) 12 фактически возможно, поскольку в особенности некоторые требования развертывания могут быть известны только базовому программному обеспечению виртуализации, а не блоку 18 оценки, и требования развертывания могут отличаться между разными версиями, выпусками или поставщиками систем виртуализации. Кроме того, типичная виртуальная машина (VM) 12 может являться относительно большой, возможно порядка нескольких гигабайтов или больше, и копирование такой виртуальной машины (VM) 12 на хост 14, особенно по медленной сети 16, могло бы занять несколько часов, если не больше. Таким образом, виртуальная машина (VM) 12 резервирования развертывается гораздо быстрее, а также резервирует ресурсы хоста для потенциальной виртуальной машины (VM) 12 в течение времени, когда потенциальная виртуальная машина (VM) 12 фактически развертывается на выбранном хосте 14 (этап 421). Следует отметить, что резервирование ресурсов на этапе 419 также может быть достигнуто посредством дебетования использования ресурсов от выбранного хоста 14, с тем чтобы последующие дополнительные развертывания приняли во внимание, что развертывание потенциальной виртуальной машины (VM) 12 будет использовать ресурсы.
Хотя настоящее изобретение до сих пор излагалось в терминах отдельных потенциальных хостов 14, такое изобретение также может быть осуществлено относительно групп хостов и т.п. аналогичным образом. Следует понимать, что группа хостов представляет собой коллекцию хостов 14, каждый из которых может разместить конкретную потенциальную виртуальную машину (VM) 12, если она будет фактически развернута на такой группе хостов. Следует отметить, тем не менее, что ресурсы для группы хостов могут быть описаны немного иным образом, например, на основе среднего представителя группы хостов, или на основе коллективного представления группы хостов, или на основе наименее оборудованного хоста 14 из группы и т.п.
Кроме того, хотя настоящее изобретение до сих пор описывалось в терминах потенциальной виртуальной машины (VM) 12, которая может быть развернута на хосте 14, такое изобретение также может быть осуществлено относительно потенциальной виртуальной машины (VM) 12, уже развернутой на одном хосте 14, но переносимой на потенциальный хост 14. Следует понимать, что в таком случае происходит та же самая процедура оценки, хотя некоторые данные относительно потенциальной виртуальной машины (VM) 12 могут быть получены из несколько иных источников, и развертывание потенциальной виртуальной машины (VM) 12 достигается посредством переноса потенциальной виртуальной машины (VM) 12 с одного хоста 14 на выбранный хост 14.
Аналогично, хотя настоящее изобретение до сих пор излагалось в терминах отдельных потенциальных виртуальных машин (VM) 12, такое изобретение также может быть осуществлено относительно потенциального множества виртуальных машин (VM) 12, которые могут быть развернуты на потенциальном хосте 14, а также на группе потенциальных хостов. Развертывание "много машин на один хост" включает в себя оценку гипотетического использования потенциального хоста 14 на основе добавления многих виртуальных машин (VM) 12 вместо только одной. Как следует понимать, ресурсы для потенциального множества виртуальных машин (VM) 12 представляются коллективно.
Особенно следует отметить, что развертывание "много машин на много хостов" является более сложным. Требующий меньшего объема вычислений способ выполнения развертывания "много машин на много хостов" состоит в том, чтобы просто выбрать произвольное упорядочение виртуальных машин (VM) 12 и выполнять развертывание на основе такого упорядочения. Однако глобально оптимальное развертывание не достигается, поскольку другое упорядочение виртуальных машин (VM) 12 могло бы дать в результате более хорошее полное развертывание. Для улучшения упорядочения может быть применена эвристика, например упорядочение может быть выполнено на основе от самой большой виртуальной машины (VM) 12 к самой маленькой виртуальной машине (VM) 12, выбираемых на основе взвешенного объединения потребления различных ресурсов. Безусловно, полностью оптимальное решение состояло бы в том, чтобы испробовать все возможные упорядочения виртуальных машин (VM) 12, хотя такое решение могло бы являться чрезвычайно дорогостоящим в вычислительном отношении, а также в значительной степени ненужным, поскольку упомянутая выше эвристика вероятно приводит к приемлемым результатам.
Как было изложено выше, процесс определения оценки для описания развертывания потенциальной виртуальной машины (VM) 12 на потенциальном хосте 14 может использоваться не только относительно уже виртуализированной виртуальной машины (VM) 12, но также и относительно физической машины 10, которая является кандидатом на виртуализацию. Таким образом, одна потенциальная виртуальная машина (VM) 12 была оценена блоком 18 оценки относительно одного или более потенциальных хостов 14. Следует отметить, тем не менее, что блок 18 оценки также может оценить множество потенциальных виртуальных машин (VM) 12 относительно конкретного потенциального хоста 14, относительно представителя доступных потенциальных хостов 14, относительно множества потенциальных хостов 14 и т.п. В первых двух случаях блок 18 оценки фактически использовался бы для определения того, какая из множества потенциальных виртуальных машин (VM) 12 лучше всего подходит для развертывания на потенциальном хосте 14, в то время как в третьем случае блок 18 оценки фактически использовался бы для определения того, какая из множества потенциальных виртуальных машин (VM) 12 и на каком из потенциальных хостов 14 лучше всего подходит для развертывания. В частности, относительно первых двух случаев блок 18 оценки, таким образом, может использоваться для выбора среди множества потенциальных физических машин 10, представленных соответствующими виртуальными машинами (VM) 12, которые могут быть виртуализированы и развернуты на потенциальном хосте 14.
Данные потенциальной виртуальной машины (VM) 12,
потенциального хоста 14 для блока 18 оценки
Как упоминалось выше, в зависимости от того, виртуализирована ли уже потенциальная виртуальная машина (VM) 12 из физической машины 10 или пока еще не виртуализирована, данные для потенциальной виртуальной машины (VM) 12, которые предоставляются блоку 18 оценки и используются им, могут быть получены из разных источников. Следует отметить, что потенциальная виртуальная машина (VM) 12 может являться совершенно новой и не основываться на какой-либо физической машине 10, и в этом случае администратор или т.п. может определить данные для такой потенциальной виртуальной машины (VM) 12 на основе ожидаемых требуемых ресурсов, в том числе ресурсов процессора, памяти, сети и хранения и т.п. При этом данные для потенциальной виртуальной машины (VM) 12, полученные от физической машины 10, и данные для потенциального хоста 14 могут быть получены из информации о конфигурации и данных о производительности, собранных от физической машины 10 и потенциального хоста 14 соответственно, чтобы более точно представить такую потенциальную виртуальную машину (VM) 12 и потенциальный хост 14 для блока 18 оценки.
Относительно доступных данных о производительности, в частности, либо для виртуальной машины (VM) 12, либо для хоста 14, такие данные могут быть собраны как выборки или т.п. и объединены любым подходящим образом посредством блока 20 сбора данных и интерфейса 22 данных или т.п. без отступления от сущности и объема, предполагая, что такое объединение, в частности, создает разумное представление о потреблении ресурсов. В частности, с учетом того что потребление ресурсов обычно является относительно низким, но в пиковое время является относительно высоким, среднее потребление не является особенно хорошим представлением о таком потреблении. Вместо этого в одном варианте воплощения настоящего изобретения потребление представляется как среднее значение от относительно более интенсивного потребления. В соответствии с этим объединение выборок данных для получения такого среднего более интенсивного потребления может быть выполнено для нескольких уровней времени. В частности, на каждом уровне усредняются несколько наибольших значений выборок данных.
Например, как показано на фиг.6, может иметь место, что конкретные данные использования организованы в три уровня, первый, второй и третий, которые соответственно представляют почасовые, ежедневные и еженедельные данные, где:
- почасовые данные на первом уровне выбираются как почасовые выборки данных использования (этап 601),
- ежедневные данные на втором уровне представляют собой объединение почасовых данных на первом уровне, а именно среднее значение трех наибольших выборок таких почасовых данных (этап 603),
- еженедельные данные на третьем уровне представляют собой объединение ежедневных данных на втором уровне, а именно среднее значение трех наибольших выборок таких ежедневных данных (этап 605),
- окончательное значение данных, которое будет использоваться блоком 18 оценки, представляет собой объединение еженедельных данных на третьем уровне, а именно среднее значение трех наибольших выборок таких еженедельных данных (этап 607).
Безусловно, для получения окончательного значения также могут использоваться любое количество уровней и любой другой способ объединения от уровня к уровню без отступления от сущности и объема настоящего изобретения.
Заключение
Программирование, необходимое для реализации процессов, выполняемых в связи с настоящим изобретением, является относительно прямолинейным и должно быть понятно для специалистов в области программирования. В соответствии с этим такое программирование не прилагается к настоящему документу. Любое конкретное программирование может быть использовано для реализации настоящего изобретения без отступления от его сущности и объема.
В предшествующем описании можно заметить, что настоящее изобретение содержит новую и полезную систему и способ, которые позволяют администратору и т.п. развертывать физические машины 10 и т.п. как виртуальные машины (VM) 12 на хостах 14. Такая система и способ эффективным образом находят соответствие между определенной рабочей нагрузкой и набором совместимых физических ресурсов для обслуживания рабочей нагрузки, таким образом, облегчая совместимое, эффективное развертывание, принимающее во внимание требования к ресурсам, в том числе к работе с сетями, хранению данных, мощности процессора, памяти и т.п. Однако следует понимать, что это изобретение не ограничено конкретными раскрытыми вариантами воплощения, но предусматривает охват модификаций в пределах сущности и объема настоящего изобретения, которые определены приложенной формулой изобретения.