Обновление виртуальной машины при помощи вставки или подобного
Иллюстрации
Показать всеИзобретение относится к области обновления виртуальных машин. Техническим результатом является повышение надежности обновления виртуальных машин. Каждая из множества виртуальных машин (VM) хранится в остановленной форме в библиотеке для извлечения из библиотеки и перезапуска на хосте. Каждая перезапущенная VM включает в себя множество конструкций программного обеспечения, каждая из которых является по меньшей мере потенциально нетекущей и требует обновления программного обеспечения. Для обновления нетекущей VM такая VM извлекается и перезапускается на хосте поддержания, и для каждой нетекущей конструкции программного обеспечения позволяется обновление посредством получения требуемого обновления программного обеспечения от соответствующего источника обновлений как вставки. Альтернативно, VM устанавливается на вычислительном устройстве, составляющие компоненты установленной VM исследуются для определения того, является ли каждая ее конструкция программного обеспечения текущей, и каждая нетекущая конструкция программного обеспечения обновляется посредством получения требуемого обновления программного обеспечения от соответствующего источника обновлений как вставки и ее применения к установленной VM. 2 н. и 12 з.п. ф-лы, 5 ил.
Реферат
ОБЛАСТЬ ТЕХНИКИ
Изобретение относится к обновлению виртуальной машины или ее компонента при помощи вставки (заплаты) для поддержания виртуальной машины или компонента. В частности, данное изобретение относится к системе и способу, который обновляет такую виртуальную машину в библиотеке или подобном и, таким образом, в отключенном от сети состоянии (офлайн). Более конкретно, данное изобретение относится к такой системе и способу, который развертывает виртуальную машину из библиотеки в онлайновое состояние для применения вставки, или который устанавливает виртуальную машину в виде накопителя с файлами для применения вставки.
УРОВЕНЬ ТЕХНИКИ
Как должно быть понятно, виртуальная машина (“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 и сохранить остановленную 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 исследуются для определения того, является ли каждая конструкция программного обеспечения VM текущей, и каждая нетекущая конструкция программного обеспечения обновляется посредством получения требуемого обновления программного обеспечения из соответствующего источника обновлений как по меньшей мере одной вставки и применения каждой вставки к установленной VM.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Вышеприведенная сущность изобретения, а также следующее подробное описание вариантов осуществления данного изобретения, будут лучше поняты при чтении в сопряжении с прилагаемыми чертежами. С целью иллюстрации изобретения в чертежах показаны варианты осуществления, которые являются в настоящее время предпочтительными. Следует понимать, однако, что изобретение не ограничено показанными точными компоновками и средствами.
На чертежах:
Фиг.1 является блок-схемой, представляющей универсальную компьютерную систему, в которой могут быть заключены аспекты данного изобретения и/или его части.
Фиг.2 является блок-схемой, показывающей систему с библиотекой виртуальных машин (VM), каждая из которых может быть перезапущена в хосте поддержания или установлена на вычислительном устройстве для обновления в соответствии с вариантами осуществления данного изобретения.
Фиг.3-5 являются блок-схемами, показывающими ключевые этапы, выполняемые в соединении с системой фиг.2 в соответствии с вариантами осуществления данного изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Компьютерная среда
Фиг.1 и следующее обсуждение предназначены для обеспечения краткого общего описания подходящей вычислительной среды, в которой может быть реализовано данное изобретение и/или его части. Хотя это и не требуется, изобретение описывается в общем контексте исполняемых компьютером команд, таких как программные модули, исполняемые компьютером, таким как рабочая станция клиента или сервер. Обычно программные модули включают в себя подпрограммы, программы, объекты, компоненты, структуры данных и тому подобное, которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Кроме того, следует понимать, что изобретение и/или его части могут практиковаться с другими конфигурациями компьютерной системы, включающими в себя карманные устройства, многопроцессорные системы, основанную на микропроцессоре или программируемую потребительскую электронику, сетевые ПК, мини-компьютеры, мэйнфреймы и т.п. Изобретение может также практиковаться в распределенных вычислительных средах, где задачи выполняются удаленными обрабатывающими устройствами, которые связаны через сеть связи. В распределенной вычислительной среде программные модули могут быть расположены как в локальных, так и в удаленных запоминающих устройствах.
Как показано на фиг.1, примерная универсальная вычислительная система включает в себя стандартный персональный компьютер 120 и тому подобное, включающий в себя процессор 121, системную память 122 и системную шину 123, которая связывает различные системные компоненты, включающие в себя системную память, с процессором 121. Системной шиной 123 может быть любой из нескольких типов структур шин, включающих в себя шину памяти или контроллер памяти, периферийную шину и локальную шину, использующих любую из разнообразия архитектур шин. Системная память включает в себя ПЗУ (ROM) 124 и память с произвольным доступом (RAM) 125. Базовая система 126 ввода/вывода (BIOS), содержащая базовые подпрограммы, которые помогают переносить информацию между элементами в пределах персонального компьютера 120, как, например, во время запуска, хранится в ПЗУ 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 шине 156.
Персональный компьютер 120 может работать в сетевой среде с использованием логических подключений к одному или нескольким удаленным компьютерам, таким как удаленный компьютер 149. Удаленным компьютером 149 может быть другой персональный компьютер, сервер, маршрутизатор, сетевой ПК, равноправное устройство или другой обычный сетевой узел и обычно включает в себя многие или все элементы, описанные выше относительно персонального компьютера 120, хотя на фиг.1 было показано только запоминающее устройство 150. Логические подключения, изображенные на фиг.1, включают в себя локальную вычислительную сеть (LAN) 151 и глобальную сеть (WAN) 152. Такие сетевые среды являются обычными в офисах, компьютерных сетях предприятий, интранет и Интернет.
При использовании в сетевой среде LAN персональный компьютер 120 подключен к LAN 151 через сетевой интерфейс или адаптер 153. При использовании в сетевой среде WAN, персональный компьютер 120 обычно включает в себя модем 154 или другое средство для установления связи по глобальной сети 152, такой как Интернет. Модем 154, который может быть внутренним или внешним, подключен к системной шине 123 через интерфейс 146 последовательного порта. В сетевой среде программные модули, изображенные относительно персонального компьютера 120 или его частей, могут храниться в удаленном запоминающем устройстве. Будет ясно, что показанные сетевые подключения являются примерными и могут использоваться и другие средства установления линии связи между компьютерами.
Хост и библиотека виртуальных машин
С обращением к фиг.2 видно, что данное изобретение может иметь конкретную применимость в контексте библиотеки 10 виртуальных машин (VM) 12, каждая из которых хранится в остановленной форме и наиболее вероятно в форме останова в такой библиотеке 10 и может быть извлечена из библиотеки 10 и перезапущена на хосте 14 соответствующим образом. Отметим здесь, что библиотекой 10, VM 12 и хостом 14 может быть любая подходящая библиотека, VM и хост, не выходящие за рамки сущности и объема данного изобретения. Такая библиотека, VM и хост известны или должны явствовать для соответствующей публики и, следовательно, не нуждаются в сколько-нибудь подробном изложении здесь сверх того, что уже обеспечено.
Как было изложено выше, каждая VM 12 в библиотеке 10 является конструкцией программного обеспечения или тому подобным, которая при перезапуске на хосте 14 эмулирует систему аппаратного обеспечения. Таким образом, 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 может быть любой вид библиотеки на любом виде вычислительного устройства, не выходящего за рамки сущности и объема данного изобретения. Например, библиотека 10 может находиться на сервере достаточной емкости для поддержания всех VM 12 такой библиотеки 10 или может просто находиться на соответствующем накопителе на дисках такой достаточной емкости. В последнем случае накопитель на дисках может быть даже частью хоста 14. Отметим, однако, что в случае, когда имеются множественные хосты 14, такая библиотека 10 вероятно физически отделена от таких хостов 14, но связана с ними. Как можно представить, библиотека 10 могла бы сама находиться на виртуальной машине.
Как было отмечено выше, каждая VM 12 как виртуальная конструкция может быть остановлена и перезапущена по желанию и после остановки может быть сохранена в библиотеке 10 и извлечена из нее как файл и тому подобное. В частности, каждая VM 12 является особенной конструкцией программного обеспечения, которая может быть кратко упакована, так как конструкция программного обеспечения включает в себя все данные относительно такой VM 12, включающие в себя рабочие данные и информацию состояния относительно VM 12. Таким образом, VM 12 на первом хосте 14 может быть перемещена или «перенесена» среди хостов 14 просто посредством остановки VM 12 в первом хосте 14, перемещения остановленной VM 12 на второй хост 14 и перезапуска перемещенной VM 12 на втором хосте 14.
Обычно, хотя и необязательно, система фиг. 2 включает в себя VM контроллер 18, работающий на соответствующем вычислительном устройстве и тому подобном. В основном, как может быть ясно, таким VM контроллером 18 управляют для извлечения хранимой VM 12 из библиотеки 10 и развертывания извлеченной VM 12 путем ее перезапуска на конкретном хосте 14, а также для остановки развернутой VM 12 и сохранения остановленной VM 12 в библиотеке 10, все при соответствующем руководстве пользователя или подобного. Таким образом, пользователь или подобное, нуждающийся в конкретном сценарии обработки, может просматривать библиотеку 10 посредством VM контроллера 18 в поисках подходящей VM 12, которая адресует к сценарию, и после нахождения такой VM 12 пользователь может применить VM контроллер 18 для извлечения и перезапуска VM 12. Подобным же образом, пользователь или подобное, который развернул VM, может в любой подходящий момент остановить VM и сохранить остановленную VM в библиотеке для более позднего извлечения, и тогда хранимая VM после извлечения из библиотеки может быть перезапущена для продолжения обработки. Отметим здесь, что VM контроллером 18 может быть любой подходящий VM контроллер, не выходящий за рамки сущности и объема данного изобретения. Такой VM контроллер 18 известен или должен явствовать для соответствующей публики и, следовательно, не нуждается в сколько-нибудь подробном изложении здесь сверх того, что уже обеспечено.
Обновление при помощи вставки
Как было отмечено выше, каждая VM 12 в библиотеке 10 сама является конструкцией программного обеспечения в физическом смысле, но в виртуальном смысле сама VM 12 включает в себя множество конструкций программного обеспечения, включающих в себя операционную систему с реестром или подобное, одно или несколько приложений использования, различные драйверы устройств и библиотеки устройств и т.п. (т.е. вместе «конструкции программного обеспечения»). Особенно, каждая конструкция программного обеспечения любой VM 12 может время от времени требовать обновления программного обеспечения в форме вставки или подобного. Такое обновление программного обеспечения в форме вставки 20 или подобного известно или должно явствовать для соответствующей публики и, следовательно, не нуждается в сколько-нибудь подробном изложении здесь. Как можно понять, такое обновление может быть выполнено по любой из нескольких причин, включающих в себя поддержание конструкции программного обеспечения текущей, обеспечение конструкции дополнительной функциональностью, адресация к вопросам безопасности относительно конструкции или подобное. Соответственно, данное изобретение может работать, не учитывая какое-либо конкретное обновление программного обеспечения или вставку 20 (далее «вставку 20») или ее тип.
Обычно вставка 20 может быть применена к конструкции программного обеспечения, такой как конструкция программного обеспечения VM 12 по меньшей мере частично автоматизированным способом. Как таковая, конструкция может включать в себя функциональность обновления, которая периодически запрашивает один или несколько источников 22 обновлений на любые новые вставки 20, и, если доступно, то функциональность обновления получает каждую новую вставку 20 от источника 22 обновлений и устанавливает их, возможно с помощью и/или одобрением пользователя или подобного. Функциональность обновления в соединении с конструкцией или подобным известна или должна явствовать для соответствующей публики и, следовательно, не нуждается в сколько-нибудь подробном изложении здесь. Соответственно, данное изобретение может работать, не учитывая какую-либо конкретную функциональность обновления.
Отметим, однако, что для работы функциональности обновления какой-либо конкретной конструкции VM 12 сама VM 12 должна быть развернутой и работающей. Другими словами, VM, которая остановлена и сохранена в библиотеке или подобном, не может выполнять какую-либо обработку, и, таким образом, функциональность обновления конструкции такой остановленной и сохраненной VM не способна получить и установить вставку 20 из источника 22 обновлений. В итоге, тогда конструкция программного обеспечения VM 12, которая находится в библиотеке 10, не может быть обновлена. В результате, конструкция программного обеспечения должна фактически ожидать обновления, пока VM 12 не извлечена из библиотеки 10 и не перезапущена на хосте 14.
Отметим, однако, что это может иметь место, когда значительное обновление, такое как обновление безопасности, выпущено относительно конкретной конструкции VM 12, хранимой в библиотеке 10. В такой ситуации VM 12 не защищена от угрозы безопасности, от которой обновление безопасности предназначено защищать, и таким образом, не должна быть развернута на каком-либо хосте 14 с конструкцией в таком незащищенном состоянии. В частности, и особенно если хост 14 имеет доступ к какой-либо сети, такой как сеть 16, то развертывание такой незащищенной VM 12 могло бы позволить любую из множества серьезных ситуаций безопасности, включая сюда брешь в защите сети 16, хоста 14, других хостов 14 в сети 16 и т.п.
Таким образом, и со ссылкой все еще на фиг.2, в одном варианте осуществления данного изобретения VM контроллер 18 развертывает VM 12 на хосте 14m поддержания, где хост 14m поддержания имеет доступ к источнику 22 обновлений посредством соответствующего коммуникативного связывания, но не имеет доступа к какому-либо хосту 14 посредством сети 16 или иным способом. В частности, и со ссылкой теперь на фиг.3, VM контроллер 18 может работать на основе планировщика 24 (фиг.2) для периодического развертывания каждого одного или нескольких VM 12 на хосте 14m поддержания для обновления (этап 301). Как можно теперь понять, в хосте 14m поддержания одна или несколько конструкций программного обеспечения каждой развернутой VM 12 обновляются при помощи соответствующим образом полученных вставок 20 (этап 305), после чего обновленная VM 12 останавливается и сохраняется в библиотеке 10 в обновленной форме для ожидания следующего разворачивания в хосте 14 (этап 307). Конструкции программного обеспечения развернутой VM 12 могут быть обновлены на основе процессов, запускаемых такими конструкциями программного обеспечения (этап 303а), или могут быть обновлены на основе процессов, запускаемых VM контроллером 18 (этап 303b). В последнем случае, VM контроллер 18 может использовать подходящие известные интерфейсы для выполнения такого запуска.
Отметим здесь, что планировщиком 24 может быть любой подходящий планировщик, такой как, например, планировщик задач, который является частью VM контроллера 18 и может планировать обновление каждой VM 12 на основе любых подходящих критериев, не выходя за рамки сущности и объема данного изобретения. Например, планировщик 24 может работать для того, чтобы привести к развертыванию VM контроллером 18 каждой VM 12 на хосте 14 поддержания один раз каждую неделю, один раз каждые две недели и т.п. Такой планировщик и такое планирование известны или должны явствовать для соответствующей публики и, следовательно, не нуждаются в сколько-нибудь подробном изложении здесь. Отметим также, что хостом 14m поддержания может быть любой соответствующий хост, не выходящий за рамки сущности и объема данного изобретения, подчиняющийся требованию, что хост поддержания изолирует или защищает иным образом каждую развернутую на нем VM 12 от других хостов 14 и только позволяет доступ к источнику 22 обновлений.
Как можно понять, VM контроллер 18, работающий по способу, показанному на фиг.3, на основе планировщика 24 фиг. 2, является несколько неэффективным в том, что каждая VM 12 развертывается в хосте 14m поддержания без учета того, требуются ли обновления для VM 12. Соответственно, в одном варианте осуществления данного изобретения, со ссылкой теперь на фиг.4, вместо первоначального развертывания каждой запланированной VM 12 на хосте 14m поддержания, VM контроллер 18 устанавливает VM 12 на вычислительное устройство, такое как хост 14m поддержания, библиотеку или подобное, так что могут быть исследованы составляющие компоненты VM 12 (этап 401). Установка такой VM 12 для ее исследования известна или должна явствовать для соответствующей публики и, следовательно, не нуждается в сколько-нибудь подробном изложении здесь. Соответственно, любая конкретная форма установки может быть выполнена, не выходя за рамки сущности и объема данного изобретения. Например, такая VM 12 может быть установлена таким образом, что составляющие ее компоненты могут быть исследованы способом накопителя на дисках или подобного, имеющего множество файлов или подобное.
После установки VM контроллер 18 может исследовать различные части VM 12 для определения того, являются ли различные конструкции VM 12 текущими (этап 403). В частности, как можно понять, такое определение может быть сделано VM контроллером 18 путем просмотра информации от установленной VM 12, такой как версии файлов, информация реестра и другие данные, которые обычно используются для определения того, требуется ли обновление одной или несколькими вставками 20. В предположении, что одна или несколько вставок 20 в самом деле необходимы, VM контроллер 18 может затем выполнить получение каждой такой вставки 20 от соответствующего источника 22 обновлений (этап 405) и ее применение к VM 12. Особенно, такие вставки 20 могут применяться либо к VM 12, как установленной (этап 407а), либо, если это необходимо, к VM 12, как развернутой на хосте 14m поддержания (этап 407b).
В первом случае на этапе 407а, VM контроллер 18 применил бы каждую вставку 20 путем замены файлов на установленной VM 12, модификации файлов и т.п. Любые необходимые модификации реестра могут быть выполнены посредством нахождения файла из группы файлов, составляющих системный реестр, на установленной VM 12 и последующей загрузки локализованной группы файлов, составляющих системный реестр, на хост 14m поддержания, в библиотеку 10 или подобное, модификации загруженной группы файлов, составляющих системный реестр, и сохранения модифицированной группы файлов, составляющих системный реестр, в качестве замены для соответствующей локализованной группы файлов, составляющих системный реестр. В последнем случае, как на этапе 407b, VM контроллер 18 сначала демонтировал бы VM 12 с хоста 14m поддержания или подобного, а затем развернул бы ее на таком хосте 14m поддержания. Наконец, после того, как VM 12 была обновлена всеми требуемыми вставками 20, VM контроллер 18 может затем переместить обновленную VM 12 обратно в библиотеку 10, либо путем демонтирования VM 12 с хоста 14m поддержания или подобного и сохранения демонтированной VM 12 в библиотеке 10 (этап 409а), либо путем остановки развернутой VM 12 и сохранения остановленной VM 12 в библиотеке 10 (этап 409b).
Как можно понять, VM контроллер 18, работающий по способу, показанному на фиг.4, может иногда быть неэффективным в том, что каждая VM 12 обновляется без учета того, собирается ли пользователь или подобное использовать VM 12. А именно, каждая VM 12 обновляется, даже если VM 12 развертывается редко, если это вообще имеет место. Соответственно, в одном варианте осуществления данного изобретения, со ссылкой теперь на фиг.5, вместо фактического обновления каждой нетекущей VM 12, VM контроллер 18 отмечает VM 12 как нетекущую, и VM 12 фактически обновляется только перед тем, как быть фактически развернутой. В частности, как и прежде, VM контроллер 18 определяет, является ли каждая запланированная VM 12 текущей (этап 501), например, посредством установки VM 12 таким образом, что могут быть исследованы составляющие компоненты VM 12, как на этапе 401. Здесь, однако, каждая нетекущая VM 12 отмечается как таковая соответствующим образом (этап 503), например, посредством включения соответствующей записи с VM 12 в библиотеку 10. Таким образом, когда пользователь выбирает каждую VM 12 из библиотеки 10 для развертывания (этап 505), VM контроллер 18 сначала проверяет, отмечена ли выбранная VM 12 как нетекущая (этап 507). Если нетекущая, то VM 12 сначала развертывается или устанавливается на хосте 14m поддержания и обновляется, как на этапах 301 и далее или 401 и далее (этап 509), после чего нетекущая VM 12 развертывается на хосте 14 для использования выбирающим пользователем (этап 511).
Заключение
Программирование, необходимое для выполнения процессов, выполняемых в связи с данным изобретением, является относительно прямым и должно явствовать для соответствующей программирующей публики. Соответственно, такое программирование не приложено здесь. Любое конкретное программирование затем может быть использовано для выполнения данного изобретения, не выходя за рамки его сущности и объема.
В вышеприведенном описании можно видеть, что данное изобретение содержит новую и полезную систему и способ применения обновления к VM 12, которые хранятся в библиотеке 10. Следует понимать, что изменения могли бы быть сделаны для вариантов осуществления, описанных выше, не выходя за рамки концепции изобретения. Следует понимать, следовательно, что данное изобретение не ограничено описанными конкретными вариантами осуществления, а предназначено для охвата модификаций в пределах сущности и объема данного изобретения, заданного в прилагаемой формуле изобретения.
1. Способ, используемый в компьютерной системе для обновления виртуальной машины (VM) или ее компонента при помощи вставки для поддержания виртуальной машины или компонента, в котором вычислительная система содержит хостовое вычислительное устройство, присоединенное к сети, библиотеку, которая не имеет доступа к сети, и хостовое вычислительное устройство поддержания, которое не имеет доступа к сети, при этом сеть может представлять угрозу безопасности хостовому вычислительному устройству и виртуальной машине (VM), развернутой на хостовом вычислительном устройстве, заключающийся в том, что:сохраняют VM в остановленной форме в библиотеке;извлекают VM из библиотеки;перезапускают VM на хостовом вычислительном устройстве поддержания;обновляют каждую нетекущую конструкцию программного обеспечения перезапущенной VM на хостовом вычислительном устройстве поддержания посредством получения требуемого обновления программного обеспечения от соответствующего источника обновлений как по меньшей мере одной вставки; иостанавливают обновленную VM и сохраняют остановленную VM в библиотеке; иперезапускают обновленную VM в хостовом вычислительном устройстве.
2. Способ по п.1, дополнительно предусматривающий внешний запуск каждой нетекущей конструкции программного обеспечения перезапущенной VM, подлежащей обновлению.
3. Способ по п.1, в котором каждая нетекущая конструкция программного обеспечения перезапущенной VM сконфигурирована для внутреннего запуска самой себя для того, чтобы быть обновленной.
4. Способ по п.1, в котором вычислительная система дополнительно содержит VM контроллер, и VM контроллер сконфигурирован для извлечения VM из библиотеки, перезапуска извлеченной VM на хостовом вычислительном устройстве поддержания, а также для остановки перезапущенной VM и сохранения остановленной VM в библиотеке.
5. Способ по п.4, в котором VM контроллер сконфигурирован для периодического развертывания каждой VM библиотеки на хостовом вычислительном устройстве поддержания для обновления на основе планировщика.
6. Способ по п.1, дополнительно содержащий периодический перезапуск каждой VM библиотеки на хостовом вычислительном устройстве поддержания для обновления на основе планировщика.
7. Способ, используемый в компьютерной системе для обновления виртуальной машины или ее компонента при помощи вставки для поддержания виртуальной машины или компонента, в котором вычислительная система содержит хостовое устройство, присоединенное к сети, библиотеку, которая не имеет доступа к сети, и хостовое вычислительное устройство поддержания, которое не имеет доступа к сети, при этом сеть может представлять угрозу безопасности хостовому вычислительному устройству и виртуальной машине (VM), развернутой на хостовом выч