RU2589853C1 - Method of providing collaborative operation of several hypervisors in computer system - Google Patents
Method of providing collaborative operation of several hypervisors in computer system Download PDFInfo
- Publication number
- RU2589853C1 RU2589853C1 RU2014151463/08A RU2014151463A RU2589853C1 RU 2589853 C1 RU2589853 C1 RU 2589853C1 RU 2014151463/08 A RU2014151463/08 A RU 2014151463/08A RU 2014151463 A RU2014151463 A RU 2014151463A RU 2589853 C1 RU2589853 C1 RU 2589853C1
- Authority
- RU
- Russia
- Prior art keywords
- hypervisor
- code
- computer system
- mode
- state
- Prior art date
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
Область техникиTechnical field
Изобретение относится к технологиям виртуализации, а более конкретно к системам и способам обеспечения совместной работы нескольких гипервизоров в компьютерной системе.The invention relates to virtualization technologies, and more particularly to systems and methods for ensuring the collaboration of several hypervisors in a computer system.
Уровень техникиState of the art
В настоящее время технология виртуализации все более активно используется в самых различных сферах: как в рамках крупных дата-центров, так и на пользовательских компьютерах. Виртуализация предоставляет возможность запускать несколько операционных систем на одной компьютерной системе, что позволяет наиболее полно использовать имеющиеся аппаратные ресурсы. Например, пользователь может использовать несколько виртуальных машин для одновременного исполнения ряда приложений в различных операционных системах (ОС). Однако наиболее востребованной технология виртуализации стала при использовании в рамках крупных серверов, например при оказании услуг веб-хостинга.Currently, virtualization technology is increasingly being used in a wide variety of fields: both in large data centers and on user computers. Virtualization provides the ability to run multiple operating systems on a single computer system, which allows the most complete use of available hardware resources. For example, a user can use several virtual machines to simultaneously execute a number of applications in various operating systems (OS). However, virtualization technology has become most in demand when used within large servers, for example, when providing web hosting services.
Для обеспечения работы виртуальных машин требуется использовать гипервизор, который обеспечивает возможность выполнения виртуальных машин, выступая в роли менеджера или диспетчера виртуальных машин (англ. Virtual Machine Manager, VMM). В том случае, если в компьютерной системе присутствуют несколько гипервизоров, то требуется обеспечить их корректную работу. Совместная работа гипервизоров виртуальных машин обеспечивается их реализацией: при получении управления режим процессора изменяется временно и возврат в исходный режим осуществляет диспетчер виртуальных машин по своему усмотрению. Например, если в операционной системе Windows запущены несколько виртуальных машин различных производителей, таких как VMWare или Citrix (Xen), то планировщик будет выделять время для исполнения гипервизоров как для обычных потоков в операционной системе (с учетом приоритета потоков). Сам код гипервизора корректно завершает свое выполнение по истечению определенного кванта времени (однако стоит отметить, что данный квант времени не совпадает с тем, что был выделен планировщиком ОС). В многоядерном процессоре на каждом ядре будет работать отдельная копия гипервизора, но с разным контекстом.To ensure the operation of virtual machines, you must use a hypervisor that provides the ability to run virtual machines, acting as a manager or manager of virtual machines (Eng. Virtual Machine Manager, VMM). In the event that several hypervisors are present in the computer system, it is required to ensure their correct operation. The joint work of virtual machine hypervisors is ensured by their implementation: upon receipt of control, the processor mode changes temporarily and the virtual machine manager returns to its original mode at its discretion. For example, if several virtual machines of various manufacturers, such as VMWare or Citrix (Xen), are running on the Windows operating system, the scheduler will allocate time for the execution of hypervisors as for regular threads in the operating system (taking into account the priority of the threads). The hypervisor code itself correctly completes its execution after a certain time slot has elapsed (however, it is worth noting that this time slot does not coincide with what was selected by the OS scheduler). In a multi-core processor, a separate copy of the hypervisor will work on each core, but with a different context.
В ряде публикаций также раскрыт принцип управления несколькими гипервизорами в системе. Например, в публикации US 20140149980 решается задача диагностики кластера гипервизоров (когда на одном компьютере может работать несколько гипервизоров), в рамках которой может быть определен гипервизор, работа которого приводит к деградации производительности. В публикации US 20110023030 описывается возможность передачи управления от одного гипервизора к другому путем "горячей" миграции аппаратных ресурсов и страниц памяти для работающих виртуальных машин (таким образом, миграция происходит на лету).A number of publications also disclose the principle of managing multiple hypervisors in a system. For example, publication US 20140149980 solves the problem of diagnosing a cluster of hypervisors (when several hypervisors can run on the same computer), within which a hypervisor can be defined, the operation of which leads to degradation of performance. The publication US 20110023030 describes the possibility of transferring control from one hypervisor to another by hot migrating hardware resources and memory pages for running virtual machines (thus, migration occurs on the fly).
Однако указанные публикации не решают задачу реализации постоянно работающего гипервизора, периодически уступающего управление гипервизорам виртуальных машин. Подобная необходимость может быть оправдана в том случае, если гипервизор обеспечивает работу критически важных виртуальных машин или же предназначен для постоянного отслеживания выполнения кода в привилегированном режиме (так называемый "режим ядра", англ. kernel mode).However, these publications do not solve the problem of implementing a constantly working hypervisor that periodically cedes control to hypervisors of virtual machines. Such a need can be justified if the hypervisor provides the operation of critical virtual machines or is designed to constantly monitor code execution in privileged mode (the so-called "kernel mode", Eng. Kernel mode).
Анализ предшествующего уровня техники позволяет сделать вывод о неэффективности и в некоторых случаях о невозможности применения предшествующих технологий, недостатки которых решаются настоящим изобретением, а именно системой и способом реализации постоянно работающего гипервизора, периодически уступающего управление гипервизорам виртуальных машин.Analysis of the prior art allows us to conclude about the inefficiency and, in some cases, the impossibility of using previous technologies, the disadvantages of which are solved by the present invention, namely, a system and method for implementing a constantly working hypervisor that periodically cedes control of virtual machine hypervisors.
Раскрытие изобретенияDisclosure of invention
Технический результат настоящего изобретения заключается в обеспечении постоянного выполнения одного из гипервизоров в компьютерной системе.The technical result of the present invention is to ensure the continuous execution of one of the hypervisors in a computer system.
Постоянное выполнение одного из гипервизоров достигается путем контроля состояния компьютерной системы с целью отслеживания попытки запуска кода в режиме гипервизора со стороны других гипервизоров. При обнаружении подобного состояния компьютерной системы происходит сохранение состояния компьютерной системы и остановка выполнения кода гипервизора, который должен постоянно выполняться. После ожидания возможности начала выполнения кода в режиме гипервизора сохраненное состояние компьютерной системы будет загружено для возможности корректного восстановления выполнения кода в режиме гипервизора.The continuous execution of one of the hypervisors is achieved by monitoring the state of the computer system in order to track attempts to run the code in hypervisor mode by other hypervisors. When such a state of a computer system is detected, the state of the computer system is saved and the execution of the hypervisor code is stopped, which must be constantly executed. After waiting for the possibility of starting the code execution in the hypervisor mode, the saved state of the computer system will be loaded to enable the correct restoration of the code execution in the hypervisor mode.
В еще одном варианте реализации состояние компьютерной системы включает состояние процессора.In yet another embodiment, the state of the computer system includes the state of the processor.
Краткое описание чертежейBrief Description of the Drawings
Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:Additional objectives, features and advantages of the present invention will be apparent from reading the following description of an embodiment of the invention with reference to the accompanying drawings, in which:
Фиг. 1 иллюстрирует операционную систему, в которой работает больше одного гипервизора.FIG. 1 illustrates an operating system in which more than one hypervisor is running.
Фиг. 2 приводит систему обеспечения выполнения нескольких гипервизоров в системе.FIG. 2 provides a system for enforcing multiple hypervisors in a system.
Фиг. 3 иллюстрирует способ работы настоящего изобретения.FIG. 3 illustrates the method of operation of the present invention.
Фиг. 4 представляет пример компьютерной системы общего назначения, на которой может быть реализовано настоящее изобретение.FIG. 4 is an example of a general purpose computer system on which the present invention may be implemented.
Описание вариантов осуществления изобретенияDescription of Embodiments
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.The objects and features of the present invention, methods for achieving these objects and features will become apparent by reference to exemplary embodiments. However, the present invention is not limited to the exemplary embodiments disclosed below, it can be embodied in various forms. The essence described in the description is nothing more than the specific details necessary to assist the specialist in the field of technology in a comprehensive understanding of the invention, and the present invention is defined in the scope of the attached claims.
Настоящее изобретение позволяет решить задачу постоянной работы одного из гипервизоров в компьютерной системе при наличии других гипервизоров при периодической работе других гипервизоров на этом же ядре процессора. На Фиг. 1 приведена операционная система (ОС) 100, в которой работает больше одного гипервизора, например гипервизор 110а, который требуется держать постоянно включенным, и остальные гипервизоры 110б (их может быть более одного). В качестве примера гипервизоров 110б можно привести диспетчеры (мониторы) виртуальных машин компаний VMWare, VirtualBox(Oracle) или Citrix (Xen). Примером гипервизора 110а может являться гипервизор, который требует постоянного выполнения критически важных виртуальных машин, или же гипервизор, который необходим для обеспечения выполнения ряда антивирусных операций. При стандартной работе гипервизоров 110а и 110б время на выполнение им будет выделять стандартный планировщик задач 120. Например, в ОС Windows планировщик работает с управлением по приоритетам, что означает первоочередное выполнение более приоритетных потоков. Следовательно, в рамках ОС 100, где используется планировщик 120, невозможно обеспечить постоянную работу гипервизора 110а даже с назначением ему более высокого приоритета, так как рано или поздно планировщик 120 выделит квант времени (англ. quantum) для выполнения кода гипервизоров 110б. Здесь и далее под выполнением одного из гипервизоров 110б прежде всего подразумевается выполнение виртуальных машин, которые работают под указанными гипервизорами.The present invention allows to solve the problem of continuous operation of one of the hypervisors in a computer system in the presence of other hypervisors during periodic operation of other hypervisors on the same processor core. In FIG. 1 shows an operating system (OS) 100 in which more than one hypervisor is operating, for example, a
Стоит отметить, что гипервизор 110а может понадобиться при выполнении антивирусных операций по нескольким причинам. Во-первых, с помощью гипервизора можно обнаружить выполнение кода на уровне ядра ОС (например, руткиты). Во-вторых, гипервизор может потребоваться для обхода защиты ядра ОС, такой как PatchGuard.It is worth noting that the
На Фиг. 2 приведена система обеспечения выполнения нескольких гипервизоров в системе. На приведенной схеме гипервизор 110а не управляется планировщиком 120 (в отличие от гипервизоров 110б), а управляется обработчиком 210, который отслеживает состояние системы 220. Когда гипервизор 110б пытается начать выполнять код в режиме гипервизора (ring -1), то происходит в первую очередь изменение режима работы процессора, так как в это время будут выполняться команды, которые отвечают за подготовку последующего запуска виртуальной машины. Например, полностью перегружается каталог страниц (англ. Page Directory), регистр CR3. Другим примером запуска виртуальной машины является команда vmrun (применительно к VMWare). Все эти параметры и команды выделены на Фиг. 2 как состояние системы 220. Обработчик 210 отслеживает изменение указанных параметров или выполнение команд (путем их перехвата) для остановки выполнения гипервизора 110а. В частном варианте реализации обработчик 210 выполнен в виде драйвера ОС 100.In FIG. Figure 2 shows the system for ensuring the execution of several hypervisors in the system. In the above diagram, the
Рассмотрим более подробно процесс включения и остановки гипервизора 110а. Данный процесс содержит следующие этапы:Consider in more detail the process of turning on and stopping the
а) сохранение текущего состояния процессора (т.е. на тот момент выполнения кода одного из гипервизоров 110б в режиме гипервизора);a) preservation of the current state of the processor (i.e., at that time the code execution of one of the hypervisors 110b in the hypervisor mode);
б) выполнение кода гипервизора 110а;b) execution of the
в) определение попытки запуска кода гипервизора 110б;C) the definition of attempts to run the code of the hypervisor 110b;
г) восстановление фактического состояния процессора с этапа а) для корректной отработки инструкции включения виртуализации гипервизором 110б;d) restoration of the actual state of the processor from step a) for the correct execution of the instructions for enabling virtualization by the hypervisor 110b;
д) выход из режима гипервизора и передача управления на последнюю инструкцию при выполнении кода гипервизора 110а.e) exiting the hypervisor mode and transferring control to the last instruction when executing the
Таким образом, следующая инструкция потока гипервизора 110а уже выполняется вне режима гипервизора, так как далее выполнение уже идет в рамках другого кольца привилегий (как правило, это будет ring 0).Thus, the
Фиг. 3 иллюстрирует способ работы настоящего изобретения. На этапе 310 происходит отслеживание состояния системы 220 (например, с помощью обработчика 210). Если на этапе 320 определяется, что состояние системы изменилось (например, перегружен каталог страниц или выполнена команда vmrun), то на этапе 330 происходит остановка выполнения гипервизора 110а. Также стоит отметить, что на этапе 320 может происходить дополнительная проверка, например из какого режима была вызвана перегрузка регистра CR3. Если перегрузка регистра была вызвана из режима ядра, то это лишь переключение контекста, а если из режима пользователя, то можно дополнительно проверить что это, например, - вызов из процесса виртуальной машины. Подобная проверка позволяет минимизировать количество «ложных срабатываний» при остановке гипервизора 110а, чтобы не останавливать его без крайней необходимости. На этапе 340 происходит ожидание возможности запуска гипервизора 110а. Ожидание может включать следующие условия:FIG. 3 illustrates the method of operation of the present invention. At 310, the state of the
- закончился квант времени на исполнение, который выделил планировщик 120 для выполнения одного из гипервизоров 110б;- the run-time quantum ended, which the
- произошло изменение состояния системы 120;- there was a change in the state of the
- обработчик 210 отслеживает выполнение гипервизора 110б и получает нотификацию об окончании его работы (например, через официальный Application Programmable Interface или API, предоставленный разработчиком гипервизора).- the
Если на этапе 350 было определено, что один из гипервизоров 110б закончил выполнение (путем проверки вышеуказанных условий), то на этапе 360 происходит его повторный запуск.If at
В одном из вариантов реализации повторный запуск реализуется через таймерную процедуру (например, в ОС Windows это можно сделать через вызов KeSetTimer). Например, по истечению заданного времени (когда закончился квант времени на выполнение) планировщик 120 определяет, чей код должен быть выполнен (например, старт гипервизора 110а). Таймер может быть переставлен для того, чтобы можно выполнить повторный запуск в следующий раз, когда один из гипервизоров 110б закончит свою работу и гипервизор 110а может быть запущен.In one embodiment, the restart is implemented through a timer procedure (for example, in Windows, this can be done through a call to KeSetTimer). For example, after a predetermined time elapses (when the run time quantum has ended), the
Еще один пример того, когда следует останавливать гипервизор 110а, касается изменения состояния системы 220, связанного с питанием, например при входе в режим гибернации (англ. hibernate). С этой целью можно отслеживать функции, связанные с питанием (Power Management event callback функции в ОС Windows) или системные переменные (SYSTEMPOWERSTATE в ОС Windows).Another example of when to stop the
Другим примером необходимости останавливать гипервизор 110а является запуск кода, который также приводит к сильному изменению состояния процессора, например эмуляторов (такие как QEMU и другие аналогичные, используемые также в антивирусных приложениях). Если же эмулятор и гипервизор 110а входят в состав антивирусного продукта, то после работы эмулятора последний может автоматически запускать гипервизор 110а.Another example of the need to stop the
Фиг. 4 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26 содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.FIG. 4 is an example of a general purpose computer system, a personal computer or server 20 comprising a
Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.The personal computer 20 in turn contains a
Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.The present description discloses an implementation of a system that uses a
Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканнер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47 персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например колонками, принтером и т.п.Computer 20 has a
Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг. 4. В вычислительной сети могут присутствовать также и другие устройства, например маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.The personal computer 20 is capable of operating in a networked environment, using a network connection with another or more
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.Network connections can form a local area network (LAN) 50 and a wide area network (WAN). Such networks are used in corporate computer networks, internal networks of companies and, as a rule, have access to the Internet. In LAN or WAN networks, the personal computer 20 is connected to the local area network 50 via a network adapter or
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.In conclusion, it should be noted that the information provided in the description are examples that do not limit the scope of the present invention defined by the claims.
Claims (2)
а) выполняют код в режиме гипервизора со стороны того гипервизора, который должен постоянно выполняться, пока остальные гипервизоры не требуют выполнения кода в режиме гипервизора;
б) отслеживают состояние компьютерной системы, при этом состояние компьютерной системы связано с попыткой запуска выполнения кода в режиме гипервизора со стороны других гипервизоров;
в) останавливают выполнение кода в режиме гипервизора со стороны того гипервизора, который должен постоянно выполняться, при изменении состояния компьютерной системы;
г) сохраняют состояние компьютерной системы при остановке выполнения кода в режиме гипервизора со стороны того гипервизора, который должен постоянно выполняться;
д) загружают состояние компьютерной системы, необходимое для выполнения кода в режиме гипервизора со стороны того гипервизора, который произвел попытку запуска кода в режиме гипервизора;
е) выполняют код в режиме гипервизора со стороны того гипервизора, который произвел попытку запуска кода в режиме гипервизора;
ж) отслеживают состояние компьютерной системы для ожидания возможности запуска кода в режиме гипервизора со стороны того гипервизора, который должен постоянно выполняться;
з) загружают состояние компьютерной системы, сохраненное на этапе г);
и) запускают код в режиме гипервизора со стороны того гипервизора, который должен постоянно выполняться, при появлении возможности на этапе ж).1. The method of organizing the execution of more than one hypervisor in the same computer system, while one of the hypervisors must be constantly executed, the method itself contains the steps:
a) execute the code in hypervisor mode on the part of that hypervisor, which must be constantly executed, while other hypervisors do not require code execution in hypervisor mode;
b) monitor the state of the computer system, while the state of the computer system is associated with an attempt to start code execution in hypervisor mode from other hypervisors;
c) stop the execution of the code in the hypervisor mode from that hypervisor, which must be constantly executed, when the state of the computer system changes;
d) maintain the state of the computer system when the code is stopped in the hypervisor mode from that hypervisor, which must be constantly executed;
e) load the state of the computer system necessary to execute the code in hypervisor mode from the side of the hypervisor that attempted to run the code in hypervisor mode;
f) execute the code in hypervisor mode from the side of the hypervisor that attempted to run the code in hypervisor mode;
g) monitor the state of the computer system to wait for the possibility of running the code in hypervisor mode from that hypervisor, which must be constantly executed;
h) load the state of the computer system stored in step g);
i) run the code in hypervisor mode from that hypervisor, which should be constantly executed, when the opportunity arises in step g).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2014151463/08A RU2589853C1 (en) | 2014-12-19 | 2014-12-19 | Method of providing collaborative operation of several hypervisors in computer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2014151463/08A RU2589853C1 (en) | 2014-12-19 | 2014-12-19 | Method of providing collaborative operation of several hypervisors in computer system |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2589853C1 true RU2589853C1 (en) | 2016-07-10 |
Family
ID=56371359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2014151463/08A RU2589853C1 (en) | 2014-12-19 | 2014-12-19 | Method of providing collaborative operation of several hypervisors in computer system |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2589853C1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6625751B1 (en) * | 1999-08-11 | 2003-09-23 | Sun Microsystems, Inc. | Software fault tolerant computer system |
RU2445686C2 (en) * | 2010-01-21 | 2012-03-20 | Игорь Вячеславович Стручков | Method of software installation, set-up, administration and back-up |
US8539484B1 (en) * | 2010-05-26 | 2013-09-17 | HotLink Corporation | Multi-platform computer system management for virtualized environments |
-
2014
- 2014-12-19 RU RU2014151463/08A patent/RU2589853C1/en active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6625751B1 (en) * | 1999-08-11 | 2003-09-23 | Sun Microsystems, Inc. | Software fault tolerant computer system |
RU2445686C2 (en) * | 2010-01-21 | 2012-03-20 | Игорь Вячеславович Стручков | Method of software installation, set-up, administration and back-up |
US8539484B1 (en) * | 2010-05-26 | 2013-09-17 | HotLink Corporation | Multi-platform computer system management for virtualized environments |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9547346B2 (en) | Context agent injection using virtual machine introspection | |
US9317314B2 (en) | Techniques for migrating a virtual machine using shared storage | |
US9665378B2 (en) | Intelligent boot device selection and recovery | |
US8719560B2 (en) | Virtual machine monitor bridge to bare-metal booting | |
JP5106036B2 (en) | Method, computer system and computer program for providing policy-based operating system services within a hypervisor on a computer system | |
US9594582B2 (en) | Detection and management of dynamic migration of virtual environments | |
US9864626B2 (en) | Coordinating joint operation of multiple hypervisors in a computer system | |
US8904386B2 (en) | Running a plurality of instances of an application | |
US10474484B2 (en) | Offline management of virtualization software installed on a host computer | |
US20100077128A1 (en) | Memory management in a virtual machine based on page fault performance workload criteria | |
US20120047357A1 (en) | Methods and systems for enabling control to a hypervisor in a cloud computing environment | |
US7539986B2 (en) | Method for guest operating system integrity validation | |
JP6111181B2 (en) | Computer control method and computer | |
US9703651B2 (en) | Providing availability of an agent virtual computing instance during a storage failure | |
US20210342173A1 (en) | Dynamic power management states for virtual machine migration | |
US9864708B2 (en) | Safely discovering secure monitors and hypervisor implementations in systems operable at multiple hierarchical privilege levels | |
US9535772B2 (en) | Creating a communication channel between different privilege levels using wait-for-event instruction in systems operable at multiple levels hierarchical privilege levels | |
Im et al. | On-Demand Virtualization for Post-Copy OS Migration in Bare-Metal Cloud | |
RU2589853C1 (en) | Method of providing collaborative operation of several hypervisors in computer system | |
Im et al. | On-demand virtualization for live migration in bare metal cloud | |
US9772869B2 (en) | System and method for performing efficient failover and virtual machine (VM) migration in virtual desktop infrastructure (VDI) | |
US9619277B2 (en) | Computer with plurality of processors sharing process queue, and process dispatch processing method | |
Panneerselvam et al. | Dynamic processors demand dynamic operating systems | |
US20240241728A1 (en) | Host and dpu coordination for dpu maintenance events | |
US20230418509A1 (en) | Switching memory consistency models in accordance with execution privilege level |