Автоматизированное профилирование использования ресурса
Иллюстрации
Показать всеИзобретение относится к вычислительным устройствам, используемым в коммуникационных сетях для обмена данными. Технический результат заключается в обеспечении конфигурирования системы вычислительных устройств с заданными эксплуатационными показателями. Эксплуатационные профили для потребителей вычислительных ресурсов могут быть автоматически определены на основе анализа измерений фактического использования ресурса и других эксплуатационных показателей. Измерения могут быть выполнены в то время, как потребитель, такой как экземпляр виртуальной машины, использует вычислительные ресурсы, например предоставленные хостом. Профиль может быть динамически определен на основе указанных измерений. Профили могут быть обобщены таким образом, что группы потребителей с подобными профилями использования связаны с одиночным профилем. Решения о назначении могут быть приняты на основании профилей, и вычислительные ресурсы могут быть перераспределены или повторно использованы, если профили указывают, что потребители вряд ли полностью используют ресурсы, зарезервированные для них. Повторно использованные ресурсы могут быть отслежены, и потребители могут быть переданы другим провайдерам ресурса, если соперничество за ресурсы является слишком напряженным. 2 н. и 13 з.п. ф-лы, 8 ил.
Реферат
УРОВЕНЬ ТЕХНИКИ
[0001] Известные вычислительные устройства используют коммуникационную сеть или последовательность коммуникационных сетей для обмена данными. Компании и организации управляют сетями ЭВМ, которые связывают ряд вычислительных устройств для поддержки операций или оказывают услуги третьим лицам. Вычислительные системы могут быть расположены в одном географическом местоположении или расположены во множестве различных географических местоположений (например, связаны посредством частных или общедоступных коммуникационных сетей). В частности, центры обработки данных или дата-центры, в настоящей заявке в целом называемые как "центры обработки данных", могут включать достаточное количество связанных вычислительных систем для предоставления вычислительных ресурсов пользователям центра обработки данных. Центры обработки данных могут представлять собой центры конфиденциальных данных, которыми управляют от имени организации, или общедоступные центры обработки данных, которыми управляют от имени или в пользу широкого круга лиц.
[0002] Для облегчения повышенного использования ресурсов центра обработки данных могут быть использованы виртуализационные технологии, которые могут обеспечить возможность размещения в одиночном физическом хост-компьютере одной или большего количества экземпляров конфигураций экземпляра виртуальной машины, которые образуются и действуют как независимые вычислительные устройства для пользователей центра обработки данных. С использованием виртуализации одиночный физический хост-компьютер может создавать, поддерживать, удалять экземпляры виртуальной машины или иным образом управлять экземплярами виртуальной машины динамическим способом. В свою очередь, пользователи могут запрашивать одиночные вычислительные устройства или конфигурацию сетевых вычислительных устройств и получать изменяющиеся количества ресурсов виртуальной машины.
[0003] Вычислительные ресурсы, предоставленные хост-компьютерами, могут включать вычислительную производительность, пространство памяти и других хранилищ, полосу пропускания, и т.п. В среде центра обработки данных с тысячами хост-компьютеров экземпляр виртуальной машины может быть скопирован в случайном хост-компьютере, пока целевой хост-компьютер удовлетворяет техническим условиям, таким как достаточные и доступные ресурсы вычислительного устройства (например, процессоры, запоминающие устройства, и т.п. ). После копирования экземпляра виртуальной машины в физическом хост-компьютере заданное количество одного или большего количества вычислительных ресурсов может быть зарезервировано для использования экземпляра виртуальной машины. Провайдер вычислительного ресурса или другой оператор среды центра обработки данных может гарантировать экземпляры виртуальной машины, доступ к зарезервированному количеству вычислительных ресурсов на целевом вычислительном устройстве.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0004] На всех чертежах ссылочные номера могут быть использованы многократно для указания соответствия между снабженными ссылочным номером элементами. Чертежи представлены для показа подходящих вариантов реализации, описанных в настоящей заявке, и не предназначены для ограничения объема описания.
[0005] На Фиг. 1 показана блок-схема иллюстративной сетевой вычислительной среды, включая компонент управления, множество хост-компьютеров и множество клиентов.
[0006] На Фиг. 2 показана блок-схема иллюстративного компонента управления, содержащего различные блоки и компоненты хранения.
[0007] На Фиг. 3 показана блок-схема иллюстративного способа автоматического профилирования использования вычислительного ресурса.
[0008] На Фиг. 4 показана блок-схема иллюстративного хост-компьютера, в котором размещены виртуальные машины, использующие вычислительные ресурсы, предоставленные вычислительным устройством.
[0009] На Фиг. 5 показана блок-схема иллюстративного способа, согласно которому запускают виртуальные машины в хост-компьютерах, распределяют и перераспределяют вычислительные ресурсы и переносят исполняемые в текущий момент виртуальные машины для дополнительной оптимизации использования вычислительных ресурсов.
[0010] На Фиг. 6 показана блок-схема иллюстративного хост-компьютера, в котором различные вычислительные ресурсы перераспределены, и избыточная производительность остается доступной.
[0011] На Фиг. 7 показана блок-схема иллюстративного хост-компьютера, в котором различные вычислительные ресурсы по существу перераспределены из-за минимального использования ресурса каждой виртуальной машины, исполняемой в хост-компьютере.
[0012] На Фиг. 8 показана блок-схема иллюстративного переноса виртуальной машины из одного хост-компьютера в другой хост-компьютер по причине повторного использования и недостаточности доступной производительности вычислительного ресурса.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0013] Описанное выше в общих чертах настоящее изобретение относится к использованию вычислительных ресурсов. В частности, настоящее изобретение относится к автоматическому определению использования ресурса и профилей эксплуатационных показателей для потребителей вычислительных ресурсов на основании анализа измерений фактического использования ресурсов и других эксплуатационных показателей. Согласно некоторым вариантам реализации потребитель вычислительных ресурсов, такой как экземпляр виртуальной машины, скопированный в соответствии со спецификациями клиента (например, экземпляр виртуальной машины, скопированный из образа виртуальной машины, оснащенный операционной системой и прикладной программой в соответствии со спецификациями клиента), может быть создан (инстанцирован) на физическом хост-компьютере. Экземпляр виртуальной машины может потреблять различные вычислительные ресурсы на основании необходимости исполнения одной или большего количества компьютерных программ или других рабочих нагрузок, созданных экземпляром виртуальной машины. Затем экземпляр виртуальной машины может завершить исполнение или может быть сконфигурирован иным способом для другой цели.
[0014] Для конкретных субъектов, таких как клиент или набор клиентов, процесс создания экземпляров виртуальной машины может быть повторен. В качестве части обработки жизненного цикла экземпляров виртуальной машины, поставщик услуг, связанный с обеспечением экземпляров виртуальной машины, может наблюдать и регистрировать потребление ресурсов. Затем поставщик услуг может определить профиль использования ресурсов экземпляров и эксплуатационных показателей виртуальной машины на основании измерений обработки потребления ресурсов и других данных, относящихся к эксплуатационному показателю.
[0015] Дополнительные аспекты настоящего изобретения относятся к обобщению профилей использования ресурсов и эксплуатационных показателей, в целом называемых эксплуатационными профилями. Например, тысячи или большее количество экземпляров виртуальных машин могут быть созданы и могут использовать ресурсы в вычислительной среде одиночной сети, такой как центр обработки данных. Вместо определения и поддерживания отдельных индивидуализированных эксплуатационных профилей для каждого экземпляра виртуальной машины, экземплярам виртуальной машины могут быть назначены обобщенные эксплуатационные профили или эксплуатационные профили по умолчанию. Соответственно, группы экземпляров виртуальной машины могут быть категоризированы в соответствии с множеством организационных критериев и назначены одному и тому же эксплуатационному профилю. В некоторых случаях эксплуатационные профили могут быть иерархическими таким образом, что конкретная конфигурация экземпляра виртуальной машины ассоциирована с конкретным эксплуатационным профилем, а также с более общим эксплуатационным профилем, который самостоятельно ассоциирован с множеством конфигураций экземпляра виртуальной машины. В указанной иерархии может иметься множество уровней с потенциальным количеством в несколько тысяч конфигураций экземпляра виртуальной машины, связанных с одиночным общим эксплуатационным профилем или небольшим количеством высокоуровневых эксплуатационных профилей, и увеличенным количеством более конкретных эксплуатационных профилей на каждом уровне в иерархии. На самом нижнем уровне иерархии может находиться конкретный эксплуатационный профиль, связанный с одиночной конфигурацией экземпляра виртуальной машины, используемой конкретным клиентом.
[0016] Дополнительные аспекты настоящего изобретения относятся к идентификации целевого хост-компьютера для обеспечения вычислительных ресурсов для экземпляров виртуальной машины на основании автоматически определенного эксплуатационного профиля. Согласно некоторым вариантам реализации конкретные физические хост-компьютеры могут быть сконфигурированы для обеспечения целевых вычислительных ресурсов для множества экземпляров виртуальной машины одновременно. Заранее заданная величина вычислительного ресурса может быть зарезервирована для использования одиночного экземпляра виртуальной машины. Если эксплуатационный профиль для экземпляра виртуальной машины указывает, что экземпляр виртуальной машины скорее всего не будет потреблять ресурсы вычислительного устройства, которые зарезервированы для этой копии, хост-компьютер может скопировать дополнительные экземпляры виртуальной машины. Дополнительные экземпляры виртуальной машины могут быть связаны с ресурсами хост-компьютера или иметь доступ к ним одновременно с ранее созданными экземплярами виртуальной машины. Кроме того, если любая из экземпляров виртуальной машины потребляет или иным способом ограничивает доступ к ресурсу таким образом, что потребление соответствует одному или большему количеству порогов или превышает эти пороги, указанные в эксплуатационном профиле для экземпляра виртуальной машины, одна или большее количество экземпляров виртуальной машины могут быть переданы другому хост-компьютеру. Например, может быть передан экземпляр виртуальной машины, связанный с потреблением, которое превышает порог, или могут быть переданы другие экземпляры виртуальной машины.
[0017] Некоторые вычислительные ресурсы необязательно предоставляются хост-компьютерами, а скорее являются ресурсами вне хоста. Например, топология сети может потребовать осуществления связи от одного хост-компьютера ко второму хост-компьютеру для создания одного или большего количества каналов (например, сетевых соединений между коммутаторами и другими сетевыми компонентами). Количество каналов может быть другим для связи с третьим хост-компьютером. Данные относительно трафика канала и количества каналов, которые будут поддерживаться при осуществлении такой связи между хост-компьютерами, могут быть зарегистрированы как измерение потребления ресурса или эксплуатационный показатель. Указанные данные могут быть использованы в будущем для определения того, на каком хост-компьютере лучше создать экземпляр виртуальной машины, который может связываться с другим хост-компьютером. Кроме того, потребление некоторых вычислительных ресурсов необязательно уменьшает величину ресурса, которая доступна для других экземпляров виртуальной машины или потребителей в целом. Например, функциональный признак, обеспеченный хост-компьютером, такой как конкретный набор команд, в целом может быть назван вычислительным ресурсом. Однако использование набора команд необязательно уменьшает доступность указанного набора команд для другого экземпляра виртуальной машины, приложения или другого потребителя.
[0018] Несмотря на то что аспекты вариантов реализации, описанные в настоящей заявке, сосредоточены с целью иллюстрации на соотношениях и взаимодействиях между компонентом управления, серверными вычислительными устройствами и виртуальными машинами, которые воплощены на серверных вычислительных устройствах от имени клиентов, специалисту понятно, что способы, описанные в настоящей заявке, могут быть применены к любому количеству аппаратных средств или процессов программы или приложений. Например, поскольку экземпляры виртуальной машины в настоящем описании в целом использованы в качестве демонстрационного потребителя вычислительного ресурса, они могут быть замещены другими программами или рабочими нагрузками, такими как прикладная программа, операционные системы, узлы сети хранения данных (SAN) и т.п. Кроме того, поскольку вычислительные ресурсы, такие как запоминающее устройство, производительность центрального процессора и пропускная способность сети, использованы в качестве демонстрационных вычислительных ресурсов, они могут быть замещены другими вычислительными ресурсами, такими как трафик сетевого канала, время задержки, наборы команд процессора и т.п. Кроме того, несмотря на то что различные аспекты настоящего изобретения описаны ниже со ссылкой на иллюстративные примеры и варианты реализации, специалисту понятно, что описанные варианты реализации и примеры не должны быть истолкованы как ограничение. Ниже описаны различные аспекты настоящего изобретения со ссылкой на некоторые примеры и варианты реализации, которые предназначены для объяснения, но не ограничения настоящего изобретения.
[0019] На Фиг. 1 показан пример сетевой вычислительной среды 100, в которой могут быть осуществлены автоматизированное профилирование использования ресурса и назначение ресурсов на основании полученных профилей. Эксплуатационные профили и назначение ресурсов могут быть осуществлены на основании предварительных измерений фактического использования ресурса и других эксплуатационных показателей, а также на прогнозе будущего использования ресурсов. Сетевая вычислительная среда 100 может содержать компонент 102 управления и любое количество физических хост-компьютеров 104a-104n, связанных линиями связи посредством сети 110. Один или большее количество клиентов 122 могут быть связаны с компонентами сетевой вычислительной среды 100 посредством сети 120.
[0020] Сетевые вычислительные среды 100, такие как показанная на Фиг. 1, могут быть реализованы в центрах обработки данных и других средах, в которых множество хост-компьютеров 104a-104n предоставляют вычислительные услуги и ресурсы внутренним или внешним клиентам 122. Как описано более подробно ниже, каждый клиент 122 может быть соединен с компонентом 102 управления или некоторым другим компонентом внутри сетевой вычислительной среды 100 для инициирования вычислительных процессов. Инициирование вычислительных процессов может включать в себя создание экземпляра виртуальной машины на хост-компьютере 104 или конфигурирование операционной среды и одного или большего количества программных приложений. Экземпляр виртуальной машины может действовать от имени пользователя, потребляя вычислительные ресурсы хост-компьютера 104, сети 110, и т.п. Поскольку настоящее описание сосредоточено только с целью иллюстрации, на работе сетевой вычислительной среды 100, предоставляющей вычислительные услуги внешним или внутренним клиентам 122 с использованием виртуальных машин, системы и процессы, описанные в настоящей заявке, могут быть применены к любому варианту реализации сетевой вычислительной среды 100, включая вариант реализации без разделения объектов клиента 122 или без использования виртуальной машины.
[0021] Каждый хост-компьютер 104 может быть сервером, таким как одноплатный сервер (блейд-сервер). Дополнительно хост-компьютером 104 может быть среднеуровневое вычислительное устройство, основной компьютер, настольный компьютер или любое другое вычислительное устройство, сконфигурированное для одновременного предоставления вычислительных услуг и ресурсов множеству потребителей, таких как экземпляр виртуальной машины. В типичном варианте реализации хост-компьютер 104 может быть сконфигурирован для связи с другими хост-компьютерами 104, компонентом 102 управления или некоторым другим компонентом сетевой вычислительной среды 100 посредством сети 110.
[0022] Сетью 110 может быть локальная сеть (LAN), региональная сеть (WAN), некоторая другая сеть или комбинация вышеперечисленного. Кроме того, сетевая вычислительная среда 100 может быть соединена с другой сетью 120, такой как корпоративная сеть или университетская сеть, или группа сетей, которой управляют независимые объекты, такая как сеть Интернет. Клиенты 122 сетевой вычислительной среды 100 могут связываться с хост-компьютерами 104 посредством комбинации сетей 120, 110. Согласно некоторым вариантам реализации клиенты 122 могут давать команду вычислительному устройству 102 на запуск экземпляра виртуальной машины для исполнения различных вычислительных операций в интересах клиента 122 или от его имени. В одиночном хост-компьютере 104 в любой данный момент времени могут работать любое количество экземпляров виртуальной машины. Кроме того, различные экземпляры виртуальной машины, работающие на хост-компьютере 104, могут быть связаны с одиночным клиентом 122 или с множеством различных клиентов 122.
[0023] Компонент 102 управления может быть реализован в форме аппаратных средств или комбинации аппаратных средств и программного обеспечения. Например, компонентом 102 управления может быть вычислительная система из одного или большего количества вычислительных устройств, сконфигурированных для исполнения одной или большего количества программ для выполнения функций, описанных в настоящей заявке. Согласно некоторым вариантам реализации компонент управления может включать одно или большее количество хост-компьютеров 104a-104n.
[0024] На Фиг. 2 показан пример компонента 102 управления более подробно. Компонент 102 управления может содержать блок 202 определения профиля, блок 204 размещения, блок 206 переноса, хранилище 208 данных эксплуатационных показателей и хранилище 210 данных профиля. Согласно некоторым вариантам реализации компонент 102 управления может содержать большее или меньшее количество блоков и хранилищ данных, чем показано на Фиг. 2. Например, в компоненте управления может отсутствовать отдельный блок 206 переноса данных, если признак переноса не осуществлен или осуществлен блоком 204 размещения. Согласно другому подходящему варианту реализации компонент 102 управления может содержать дополнительные хранилища данных для обобщенных профилей клиента.
[0025] При использовании блок 202 определения профиля может получать эксплуатационные данные относительно эксплуатационных показателей и использования ресурсов экземплярами конкретной конфигурации экземпляра виртуальной машины в конкретное время, всех экземпляров виртуальной машины, связанных с конкретным клиентом 122, и т.п. Блок 202 определения профиля может анализировать эксплуатационные данные и разрабатывать эксплуатационный профиль вычислительных ресурсов, используемых экземпляром виртуальной машины или группой экземпляров виртуальных машин, которые должны быть профилированы. Например, эксплуатационные данные могут включать в себя накопленные (исторические) измерения относительно объема используемой памяти, использования центрального процессора (CPU), величины переданного или принятого трафика сети, величины используемого пространства жесткого диска, количества дисковых операций, количества использованной электроэнергии (например, количества, использованного хост-компьютером 104, которое может относиться к экземпляру виртуальной машины), величины инициированного трафика сетевого канала, и т.п. Затем, блок 202 определения профиля может определить среднее значение для каждого из результатов измерений, относящихся к экземплярам конкретной конфигурации экземпляра виртуальной машины или группе конфигураций экземпляров виртуальных машин, и сохранить указанные средние значения в эксплуатационном профиле. Эксплуатационный профиль необязательно должен быть ограничен средними значениями результатов измерений. Например, эксплуатационный профиль может включать в себя другие статистические анализы, такие как срединное значение, среднеквадратичное отклонение, гистограмму использования или любые другие соответствующие или пригодные для использования данные. Согласно некоторым вариантам реализации эксплуатационный профиль дополнительно может быть охарактеризован в соответствии с временными характеристики использования, такими как время дня, день года и т.п.
[0026] Эксплуатационный профиль также может быть охарактеризован в соответствии с ожидаемыми измерениями и эксплуатационными показателями. Например, в эксплуатационный профиль может быть включено отличие от ожидаемых эксплуатационных показателей, которое может наблюдаться и которое в целом называется флуктуацией. Такие данные могут быть использованы для определения того, удовлетворены ли требования целей проекта, соглашений сервисного уровня и других обещаний потребителю или обязательств перед потребителем, или определения того, как часто указанные требования оказываются неудовлетворенными. Блок 204 размещения может учитывать флуктуацию эксплуатационного показателя при принятии решений о будущих размещениях и предпринимает попытки удерживания данного эксплуатационного показателя в пределах ожидаемого диапазона или иным способом обеспечивает возможность удовлетворения обязательств перед потребителем. Согласно некоторым вариантам реализации эксплуатационный профиль может содержать другие данные, такие как предпочтительное или необходимое время задержки, предпочтительный или необходимый набор инструкций, и т.п. Такие данные могут быть предоставлены потребителями или определены путем анализа работы экземпляров виртуальной машины, выполненного блоком 202 определения профиля.
[0027] Например, поставщик услуг может предоставить виртуальные машины трех классов: малого, среднего и большого. Каждый класс может быть связан с заранее заданным количеством каждого вычислительного ресурса, который будет зарезервирован для использования экземплярами виртуальной машины (например, малые виртуальные машины могут иметь ОЗУ объемом 2 ГБ, средние виртуальные машины могут иметь ОЗУ объемом 8 ГБ, большие виртуальные машины могут иметь ОЗУ объемом 32 ГБ). Клиенты могут копировать экземпляры виртуальной машины, оснащенные операционной системой и прикладным программным обеспечением, такие как большая виртуальная машина, оснащенная серверным программным обеспечением для сети Интернет. Могут быть зарегистрированы результаты измерений относительно использования вычислительных ресурсов экземпляром большой виртуальной машины, оснащенной серверным программным обеспечением для сети Интернет. Затем, блок 202 определения профиля может вычислить ожидаемое количество использования ресурсов для будущих экземпляров конфигурации экземпляра виртуальной машины, например, при ее использовании в качестве web-сервера. Ожидаемое количество использования ресурсов может сформировать основу эксплуатационного профиля, определяемого блоком 202 определения профиля. Затем, блок 202 определения профиля может модифицировать эксплуатационный профиль, когда будет построен набор данных, содержащий результаты измерения фактического использования ресурсов по времени.
[0028] Данные профиля, которые используются в блоке 202 определения профиля, могут быть получены из множества источников. Как описано выше, данные могут быть получены от субъекта, связанного с виртуальной машиной. Данные также могут быть получены непосредственно из компонента анализа рабочей нагрузки хост-компьютера 104, на котором воплощен экземпляр виртуальной машины. Согласно некоторым вариантам реализации данные могут быть получены из хранилища 208 данных эксплуатационных показателей. Хранилище 208 данных эксплуатационных показателей может быть встроено в компонент 102 управления, как показано на Фиг. 2, или оно может быть физически расположено на отдельном вычислительном устройстве, таком как выделенный сервер для системы управления реляционной базой данных (RDBMS). Эксплуатационные профили, определенные блоком 202 определения профиля, могут быть сохранены в хранилище 210 данных профиля. Подобно хранилищу 208 данных эксплуатационного показателя хранилище 210 данных профиля может быть встроено в компонент 102 управления или расположено в отдельном вычислительном устройстве, таком как выделенный сервер RDBMS.
[0029] В некоторых сетевых вычислительных средах 100 могут иметься тысячи или больше экземпляров виртуальных машин, подлежащих профилированию, и каждый эксплуатационный профиль может быть выполнен, например, на основании анализа данных использования, уникальных для конкретных конфигураций экземпляров виртуальных машин, или данных использования для конкретного клиента. Для эффективного использования эксплуатационных профилей для принятия решения о размещении созданных экземпляров виртуальных машин на хост-компьютерах 104a-104n эксплуатационные профили могут быть обобщены. Соответственно, множество различных конфигураций экземпляра виртуальной машины могут быть связаны с одними и теми же или по существу подобными эксплуатационными профилями, даже если имеются различия в фактическом использовании ресурса, связанного с каждой конфигурацией экземпляров виртуальной машины. Например, блок 202 определения профиля может связать конфигурацию экземпляра виртуальной машины с заранее заданным ожидаемым количеством использования вместо сохранения индивидуализированного эксплуатационного профиля для каждой конфигурации экземпляра виртуальной машины. Заранее заданный эксплуатационный профиль может включать диапазоны использования для каждого измеренного вычислительного ресурса. Кроме того, эксплуатационные профили могут быть иерархическими таким образом, что конкретная конфигурация экземпляра виртуальной машины связана с конкретным эксплуатационным профилем, а также с более общим эксплуатационным профилем, который самостоятельно связан с множеством конфигураций экземпляров виртуальной машины.
[0030] Согласно некоторым вариантам реализации, эксплуатационные профили могут быть дополнительно объединены в категории. Например, многие конфигурации экземпляров виртуальной машины, каждая из которых связана с разным количеством использования сети, могут быть категоризированы как "легкие сетевые приложения" или "тяжелые сетевые приложения" в зависимости от того, превышает или не превышает результат измерения использования некоторый порог. В такой схеме классификации конфигурация экземпляра виртуальной машины, которая, когда она создана, прежде всего выполняет локальные вычислительные операции и редко использует сетевое соединение, может быть распределена в ту же самую категорию "легких сетевых приложений" в качестве конфигурации экземпляра виртуальной машины, которая часто использует сетевое соединение, но только для передач весьма небольшого объема, которые могут считаться нулевыми по сравнению с общей пропускной способностью сети, доступной для хост-компьютеров 104a-104n, на которых размещен экземпляр виртуальной машины. Такие обобщенные эксплуатационные профили также могут быть созданы на основании составленной из двух или большего количества категорий, таких как "легкое сетевое приложение/тяжелое процессорное приложение" и "легкое сетевое приложение/легкое процессорное приложение". Возвращаясь к предыдущему примеру, две конфигурации экземпляра виртуальной машины могут быть связаны с различными категориями. Конфигурация экземпляра виртуальной машины, которая после создания, прежде всего, выполняет локальные вычислительные операции и редко использует сетевое соединение, может быть категоризирована как "легкое сетевое приложение/тяжелое процессорное приложение", в то время как конфигурация экземпляра виртуальной машины, которая после ее копирования часто инициирует небольшие передачи по сети, может быть категоризирована как "легкое сетевое приложение/легкое процессорное приложение", если использование центрального процессора экземпляром виртуальной машины ниже порога.
[0031] Как описано выше, эксплуатационные профили, конкретные для конфигурации экземпляра виртуальной машины или обобщенные для многих конфигураций экземпляров виртуальной машины, могут быть использованы для идентификации хост-компьютера 104a-104n для размещения экземпляров виртуальной машины. Блок 204 размещения может быть задействован, когда клиент 122 инициирует вычислительный сеанс или когда виртуальная машина воплощена иным способом. Блок 204 размещения может определить, какой эксплуатационный профиль связан с экземпляром виртуальной машины в данный момент времени. Например, эксплуатационный профиль может быть индивидуализированным профилем, содержащим измерения фактического использования ресурса, связанного с экземпляром виртуальной машины в данный момент времени суток, в течение текущего месяца года и т.п. В некоторых случаях измерения могут быть конкретизированы для конкретного клиента таким образом, что может быть создан и доступен эксплуатационный профиль для конкретного клиента. Клиентоориентированный эксплуатационный профиль может быть применен к конкретной конфигурации экземпляра виртуальной машины, или он в целом может быть применен к множеству различных конфигураций экземпляра виртуальной машины. Дополнительно, эксплуатационный профиль может быть обобщен на основании общего характера использования ресурса, связанного с экземпляром виртуальной машины, который также может быть обобщен на основании текущего времени суток и т.п. Затем блок 204 размещения виртуальной машины может выбрать хост-компьютер 104 для запуска экземпляров виртуальной машины на основании доступности ресурсов хост-компьютеров 104a-104n и ожидаемого использования ресурса экземпляра виртуальной машины, определенного из эксплуатационного профиля.
[0032] Использование ресурса может быть динамическим в течение всего времени существования одиночного экземпляра конкретной конфигурации экземпляра виртуальной машины и по множеству экземпляров конкретной конфигурации экземпляра виртуальной машины. Блок переноса 206 компонента 102 управления может отслеживать использование ресурса каждого исполняющегося экземпляра виртуальной машины и хост-компьютера 104, на котором исполняется данный экземпляр виртуальной машины. Когда использование ресурса изменяется, блок 206 переноса, подобно блоку 204 размещения виртуальной машины, описанному выше, может выбрать соответствующий хост-компьютер 104 для размещения экземпляра виртуальной машины. Новый экземпляр виртуальной машины может быть запущен на выбранном хост-компьютере 104, и состояние исполнения экземпляра виртуальной машины (оперативная память, исходные данные, и т.п. ) может быть скопировано в новый экземпляр виртуальной машины. Когда новый экземпляр виртуальной машины готов к началу исполнения, предыдущий экземпляр виртуальной машины может быть завершен без потери данных и без существенной потери рабочих характеристик. Новый экземпляр виртуальной машины может исполняться более эффективно благодаря доступным ресурсам.
[0033] Согласно некоторым вариантам реализации вместо создания нового экземпляра виртуальной машины на другом хост-компьютере и завершения предыдущей копии, ресурсы могут быть перераспределены. Когда использование ресурса или эксплуатационные характеристики изменяются, конкретной виртуальной машине может быть выделены дополнительные ресурсы (например, память). Например, ресурс может быть перераспределен от других виртуальных машин, которые, как ожидается, полностью не используют данный ресурс.
[0034] На Фиг. 3 показана блок-схема способа 300 определения эксплуатационного профиля для конфигурации экземпляра виртуальной машины. Способ 300 может быть осуществлен компонентом 102 управления. Компонент 102 управления может принять запрос от клиента 122 или может быть извещен иным способом для создания экземпляра виртуальной машины. После создания экземпляра виртуальной машины, идентификации созданного экземпляра виртуальной машины или запуска созданной виртуальной машины компонент 102 управления 102 может отслеживать или иным способом принимать эксплуатационные данные относительно использования вычислительного ресурса, связанного с данным экземпляром виртуальной машины. На основании данных использования ресурса и эксплуатационного показателя компонент 102 управления может определить или обновить эксплуатационный профиль для конфигурации экземпляра виртуальной машины, или обновить существующий эксплуатационный профиль. Предпочтительно эксплуатационный профиль может быть сравнен с другими эксплуатационными профилями и обобщен, а конфигурация экземпляра виртуальной машины может быть ассоциирована с категорией использования ресурса.
[0035] Способ 300 начинается на этапе 302. Способ 300 может быть начат автоматически, например, в ответ на прием запроса создания экземпляра виртуальной машины. Например, способ 300 может быть выполнен в форме ряда исполняемых программных команд и сохранен на дисковом машиночитаемом носителе вычислительной системы, с которой связан компонент 102 управления 102. После инициирования способа 300 исполняемые программные команды могут быть загружены в запоминающее устройство, такое как ОЗУ, и исполнены одним или большим количеством процессоров вычислительной системы. Согласно некоторым вариантам реализации вычислительная система может содержать множество вычислительных устройств, таких как серверы, и способ 300 может быть исполнен множеством серверов последовательно или параллельно.
[0036] На этапе 304 компонент 102 управления или некоторый другой компонент запускает экземпляр виртуальной машины. Как подробно описано ниже со ссылкой на Фиг. 5, компонент управления может выбрать хост-компьютер 104 для запуска экземпляра виртуальной машины на основании ожидаемого потребления ресурсов экземпляра виртуальной машины и ресурсов, которые в настоящее время имеются в наличии в хост-компьютерах 104a-104n. Ресурсы, ожидаемые к потреблению экземпляра виртуальной машины или доступные для экземпляра виртуальной машины, могут быть определены из существующего эксплуатационного профиля, из данных, принятых от клиента 122 или другого субъекта, требующего, чтобы экземпляр виртуальной машины был запущен, и т.п.
[0037] Способ 300 может перейти к этапу 306 для недавно запущенного экземпляра виртуальной машины для получения эксплуатационных показателей и создания или модификации эксплуатационного профиля. При осуществлении способа 300 на этапе 304 могут быть запущены и/или размещены любое количество дополнительных экземпляров виртуальной машины на основании того же самого эксплуатационного профиля, существовавшего изначально или модифицированного во время исполнения способа 300 для ранее запущенных экземпляров виртуальной машины. Таким образом, способ 300 может быть выполнен в любом количестве параллельных копий, в целом соответствующем количеству экземпляров виртуальной машины, связанных с эксплуатационным профилем (или, в случае иерархии профилей, профилем, имеющим наиболее высокий уровень в иерархии), которые могут быть исполнены в конкретное время.
[0038] На этапе 306 ресурсы, используемые экземпляры виртуальной машины, могут быть отслежены, могут быть получены результаты измерения использования ресурса и других эксплуатационных показателей. На этапе 308 могут быть зарегистрированы эксплуатационные показатели. Отслеживание может выполняться компонентом 102 управления или некоторым другим компонентом, таким как компонент 421 анализа рабочей нагрузки хост-компьютера 104, на котором исполняется экземпляр виртуальной машины. Эксплуатационные показатели могут быть сохранены в хранилище 208 данных эксплуатационных показателей. Согласно вариантам реализации, в которых использован компонент 421 анализа рабочей нагрузки, указанный компонент 421 анализа рабочей нагрузки может кратковременно или долгосрочно сохранять эксплуатационные показатели. Компонент анализа рабочей нагрузки может передавать данные относитель