US20140229948A1 - Insertion of management agents during machine deployment - Google Patents
Insertion of management agents during machine deployment Download PDFInfo
- Publication number
- US20140229948A1 US20140229948A1 US14/259,004 US201414259004A US2014229948A1 US 20140229948 A1 US20140229948 A1 US 20140229948A1 US 201414259004 A US201414259004 A US 201414259004A US 2014229948 A1 US2014229948 A1 US 2014229948A1
- Authority
- US
- United States
- Prior art keywords
- management
- computer
- management system
- deployment
- deployment manager
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/301—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/046—Network management architectures or arrangements comprising network management agents or mobile agents therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Definitions
- a management system may manage patching the computers, standing up a computer—including installing applications on the computer, and instantiating those applications (such as a MICROSOFT Server App-V application virtualization package, or a MICROSOFT Database Application Components description of a database)—or monitoring the health of the computers.
- a management system may manage a computer by interacting with a corresponding management agent on the computer.
- Computers may be homogenously configured, for instance, where they are configured to execute the same version of an operating system, or they are configured to execute the same versions of applications.
- One way that administrators configure computers to be managed by management programs is as follows. An administrator orders the computers, receives them, mounts them in racks, installs program code on each from a disc, and then registers each computer with one or more management systems that will manage the computer. Apart from some of the details involving the physical machines themselves, an administrator may configure the VMs in a deployment to be managed by management programs in a similar way. There are many problems with these known techniques for configuring VMs in a deployment to be managed by management programs, some of which are well known.
- Including a management agent in an operating system gold image may be desirable (sometimes referred to as baking the management agent into the gold image), but baking the agent in carries with it problems.
- a management agent may not survive either of these processes, for instance, because it relies on information changed by one of these processes to be known and consistent.
- a management agent cannot be configured remotely, because the agent lacks exposed interfaces that enable a remote system to configure the agent. So, where an administrator may stand up dozens or hundreds of VMs in a few minutes, he or she would still have to go in and manually configure each one of those VMs with the management agent. Even where a management agent does have exposed interfaces that allow for remote configuration, doing so may take an unacceptably long amount of time. It is typical to address computers using the Domain Name System (DNS). However, once a computer is brought online and registered with DNS, it may take several minutes for the DNS registration to propagate through a communications network so that the computer can be remotely addressed via DNS. This time required for a DNS name to propagate may be unacceptably long.
- DNS Domain Name System
- a deployment has a deployment manager that is configured to create, destroy and manage VMs on hosts in the deployment.
- An example of such a deployment manager is MICROSOFT's System Center Virtual Machine Manager (SCVMM).
- SCVMM System Center Virtual Machine Manager
- the deployment manager determines that a VM is to be created on a host, and instructs that host to create a VM.
- the deployment manager receives and indication that the VM has been created, the deployment manager instructs the VM to install a management agent or management program, that a management system may communicate with to manage the VM.
- the management agent provided functionality for the management system to manage the computer.
- the management agent may expose interfaces that allow the management system to communicate with the management agent, and the management agent may carry out on the computer actions to effectuate the instructions of the management system.
- the deployment manager also registers the VM with the management system. The management system may then manage the VM by communicating with the management agent on the VM.
- FIG. 1 depicts an example general purpose computing environment in which an aspect of an embodiment of the invention can be implemented .
- FIG. 2 depicts an example virtual machine host wherein an aspect of an embodiment of the invention can be implemented.
- FIG. 3 depicts a second example virtual machine host wherein an aspect of an embodiment of the present invention can be implemented.
- FIG. 4 depicts an example system architecture for configuring a VM of a deployment to be managed by a management system.
- FIG. 5 depicts another example system architecture for configuring a VM of a deployment to be managed by a management system.
- FIG. 6 depicts an example system architecture for configuring a VM of a deployment to be managed by multiple management systems.
- FIG. 7 depicts an example system architecture for configuring multiple VMs of a deployment to be managed by a management system.
- FIG. 8 depicts example operational procedures for a system that configures a VM of a deployment to be managed by a management system.
- Embodiments may execute on one or more computer systems.
- FIG. 1 and the following discussion are intended to provide a brief general description of a suitable computing environment in which the disclosed subject matter may be implemented.
- processor used throughout the description can include hardware components such as hardware interrupt controllers, network adaptors, graphics processors, hardware based video/audio codecs, and the firmware used to operate such hardware.
- processor can also include microprocessors, application specific integrated circuits, and/or one or more logical processors, e.g., one or more cores of a multi-core general processing unit configured by instructions read from firmware and/or software.
- Logical processor(s) can be configured by instructions embodying logic operable to perform function(s) that are loaded from memory, e.g., RAM, ROM, firmware, and/or mass storage.
- the general purpose computing system can include a conventional computer 20 or the like, including at least one processor or processing unit 21 , a system memory 22 , and a system bus 23 that communicative couples various system components including the system memory to the processing unit 21 when the system is in an operational state.
- the system bus 23 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.
- the system memory can include read only memory (ROM) 24 and random access memory (RAM) 25 .
- a basic input/output system 26 (BIOS), containing the basic routines that help to transfer information between elements within the computer 20 , such as during start up, is stored in ROM 24 .
- the computer 20 may further include a hard disk drive 27 for reading from and writing to a hard disk (not shown), a magnetic disk drive 28 for reading from or writing to a removable magnetic disk 29 , and an optical disk drive 30 for reading from or writing to a removable optical disk 31 such as a CD ROM or other optical media.
- the hard disk drive 27 , magnetic disk drive 28 , and optical disk drive 30 are shown as connected to the system bus 23 by a hard disk drive interface 32 , a magnetic disk drive interface 33 , and an optical drive interface 34 , respectively.
- the drives and their associated computer readable media provide non volatile storage of computer readable instructions, data structures, program modules and other data for the computer 20 .
- the exemplary environment described herein employs a hard disk, a removable magnetic disk 29 and a removable optical disk 31 , it should be appreciated by those skilled in the art that other types of computer readable media which can store data that is accessible by a computer, such as flash memory cards, digital video disks, random access memories (RAMs), read only memories (ROMs) and the like may also be used in the exemplary operating environment.
- computer readable storage media can be used in some embodiments to store processor executable instructions embodying aspects of the present disclosure.
- a number of program modules comprising computer-readable instructions may be stored on computer-readable media such as the hard disk, magnetic disk 29 , optical disk 31 , ROM 24 or RAM 25 , including an operating system 35 , one or more application programs 36 , other program modules 37 and program data 38 .
- the computer-readable instructions Upon execution by the processing unit, the computer-readable instructions cause the actions described in more detail below to be carried out or cause the various program modules to be instantiated.
- a user may enter commands and information into the computer 20 through input devices such as a keyboard 40 and pointing device 42 .
- Other input devices may include a microphone, joystick, game pad, satellite dish, scanner or the like.
- serial port interface 46 that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port or universal serial bus (USB).
- a monitor 47 , display or other type of display device can also be connected to the system bus 23 via an interface, such as a video adapter 48 .
- computers typically include other peripheral output devices (not shown), such as speakers and printers.
- the exemplary system of FIG. 1 also includes a host adapter 55 , Small Computer System Interface (SCSI) bus 56 , and an external storage device 62 connected to the SCSI bus 56 .
- SCSI Small Computer System Interface
- the computer 20 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 49 .
- the remote computer 49 may be another computer, a server, a router, a network PC, a peer device or other common network node, and typically can include many or all of the elements described above relative to the computer 20 , although only a memory storage device 50 has been illustrated in FIG. 1 .
- the logical connections depicted in FIG. 1 can include a local area network (LAN) 51 and a wide area network (WAN) 52 .
- LAN local area network
- WAN wide area network
- Such networking environments are commonplace in offices, enterprise wide computer networks, intranets and the Internet.
- the computer 20 When used in a LAN networking environment, the computer 20 can be connected to the LAN 51 through a network interface or adapter 53 . When used in a WAN networking environment, the computer 20 can typically include a modem 54 or other means for establishing communications over the wide area network 52 , such as the Internet.
- the modem 54 which may be internal or external, can be connected to the system bus 23 via the serial port interface 46 .
- program modules depicted relative to the computer 20 may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
- numerous embodiments of the present disclosure are particularly well-suited for computerized systems, nothing in this document is intended to limit the disclosure to such embodiments.
- System memory 22 of computer 20 may comprise instructions that, upon execution by computer 20 , cause the computer 20 to implement the invention, such as the operational procedures of FIG. 8 .
- FIG. 2 depicts an example VMHost virtual machine host (sometimes referred to as a VMHost or host) wherein an aspect of an embodiment of the invention can be implemented.
- the VMHost can be implemented on a computer such as computer 20 depicted in FIG. 1 , and VMs on the VMHost may execute an operating system that effectuates a remote presentation session server.
- computer system 200 comprises logical processor 202 (an abstraction of one or more physical processors or processor cores, the processing resources of which are made available to applications of computer system 200 ), RAM 204 , storage device 206 , GPU 212 , and NIC 214 .
- Hypervisor microkernel 202 can enforce partitioning by restricting a guest operating system's view of system memory.
- Guest memory is a partition's view of memory that is controlled by a hypervisor.
- the guest physical address can be backed by system physical address (SPA), i.e., the memory of the physical computer system, managed by hypervisor.
- SPA system physical address
- the GPAs and SPAs can be arranged into memory blocks, i.e., one or more pages of memory. When a guest writes to a block using its page table, the data is actually stored in a block with a different system address according to the system wide page table used by hypervisor.
- parent partition component 204 which can also be also thought of as similar to “domain 0” in some hypervisor implementations, can interact with hypervisor microkernel 202 to provide a virtualization layer.
- Parent partition 204 in this operational environment can be configured to provide resources to guest operating systems executing in the child partitions 1-N by using virtualization service providers 228 (VSPs) that are sometimes referred to as “back-end drivers.”
- VSPs 228 can be used to multiplex the interfaces to the hardware resources by way of virtualization service clients (VSCs) (sometimes referred to as “front-end drivers”) and communicate with the virtualization service clients via communication protocols.
- VSCs virtualization service clients
- virtualization service clients can execute within the context of guest operating systems. These drivers are different than the rest of the drivers in the guest in that they may be supplied with a hypervisor, not with a guest.
- Emulators 234 can be configured to run within the parent partition 204 and are attached to resources available to guest operating systems 220 and 222 . For example, when a guest OS touches a register of a virtual device or memory mapped to the virtual device 202 , microkernel hypervisor can intercept the request and pass the values the guest attempted to write to an associated emulator.
- IDE devices virtualized integrated drive electronics device
- NICs virtualized NICs
- Each child partition can include one or more virtual processors ( 230 and 232 ) that guest operating systems ( 220 and 222 ) can manage and schedule threads to execute thereon.
- the virtual processors are executable instructions and associated state information that provide a representation of a physical processor with a specific architecture. For example, one virtual machine may have a virtual processor having characteristics of an INTEL x86 processor, whereas another virtual processor may have the characteristics of a PowerPC processor.
- the virtual processors in this example can be mapped to logical processors of the computer system such that the instructions that effectuate the virtual processors will be backed by logical processors.
- virtual processors can be simultaneously executed by logical processors while, for example, other logical processors execute hypervisor instructions.
- the combination of virtual processors and memory in a partition can be considered a virtual machine.
- Guest operating systems can include any operating system such as, for example, a MICROSOFT WINDOWS operating system.
- the guest operating systems can include user/kernel modes of operation and can have kernels that can include schedulers, memory managers, etc.
- kernel mode can include an execution mode in a logical processor that grants access to at least privileged processor instructions.
- Each guest operating system can have associated file systems that can have applications stored thereon such as terminal servers, e-commerce servers, email servers, etc., and the guest operating systems themselves.
- the guest operating systems can schedule threads to execute on the virtual processors and instances of such applications can be effectuated.
- FIG. 3 depicts a second example VMHost wherein an aspect of an embodiment of the present invention can be implemented.
- FIG. 3 depicts similar components to those of FIG. 2 ; however in this example embodiment the hypervisor 238 can include the microkernel component and components from the parent partition 204 of FIG. 2 such as the virtualization service providers 228 and device drivers 224 while management operating system 236 may contain, for example, configuration utilities used to configure hypervisor 204 .
- hypervisor 238 can perform the same or similar functions as hypervisor microkernel 202 of FIG. 2 ; however, in this architecture hypervisor 234 can be configured to provide resources to guest operating systems executing in the child partitions.
- Hypervisor 238 of FIG. 3 can be a stand alone software product, a part of an operating system, embedded within firmware of the motherboard or a portion of hypervisor 238 can be effectuated by specialized integrated circuits.
- FIG. 4 depicts an example system architecture for configuring VMs of a deployment to be managed by a management system, such as VMs executing on the VMHost depicted in FIG. 2 or 3 .
- Deployment 300 comprises deployment manager 302 , host 304 and management system 312 .
- host 304 comprises hypervisor 306 , VM- 1 308 - 1 through VM-N 308 -N, and VHD- 1 310 - 1 (virtual hard drive) through VHD-N 310 -N.
- Deployment manager 302 is configured to manage deployment 300 .
- deployment manager may instruct a host 304 to create or destroy a VM 308 , may provision a VM 308 , may migrate a VM 308 between hosts 304 (as depicted, deployment 300 has one host 304 , but it may comprise multiple hosts 304 ).
- depicted elements such as deployment manager 302 and management system 312 ) may execute on separate physical computers, or share a physical computer with another depicted element—such as each executing in separate VMs on the physical computer, or even within the same VM on the physical computer.
- Host 304 may comprise more or fewer than two VMs 308 , though two are depicted. Likewise, host 304 may comprise more or fewer than two VHDs 310 , though two are depicted. As depicted, each VHD 310 is associated with a VM 308 —the VM 308 mounts the VHD 310 and may both read data from it and write data to it. A VM 308 may have more than one VHD 310 associated with it. Furthermore, a VHD 310 need not be stored on host 304 , but may be stored elsewhere on a communication network, and associated with the VM 308 across the communication network. Host 304 also comprises hypervisor 306 , which manages VMs 308 , including presenting VMs with virtual hardware resources.
- Management system 312 is configured to manage one or more aspects of one or more VMs 308 . For instance, management system 312 may be configured to ensure that a VM 308 is properly updated by deploying patches to VM 308 . Management system 312 may also be configured to manage the health of VM 308 , such as by ensuring that it is running in an allowable state (including whether certain processes are running, certain files are present, or that there are no entries in an error log indicating that an error is present in a particular subsystem). Management system 312 may effectuate this management of a VM 308 by communicating with a management agent that executes on VM 308 .
- deployment manager 302 sends an instruction to hypervisor 306 to create VM- 1 308 - 1 .
- Hypervisor 306 may create VM- 1 308 - 1 with various parameters (e.g., amount and type of central processing units, amount and type of system memory, number and type of storage devices), and then associate VHD- 1 310 - 1 with VM 308 - 1 , such that VM- 1 308 - 1 mounts VHD 310 - 1 .
- Deployment manager 302 may create VM- 1 308 - 1 with an image file (sometimes referred to as a gold image, or a golden image) that comprises aspects of the VM- 1 308 - 1 , such as data for a guest operating system (guest OS).
- an image file sometimes referred to as a gold image, or a golden image
- guest OS guest operating system
- deployment manager 302 Upon creation of VM- 1 308 - 1 , deployment manager 302 receives acknowledgement that VM- 1 308 - 1 has been created. Hypervisor 306 may send deployment manager 302 an indication that it has successfully created VM- 1 308 - 1 , or VM- 1 308 - 1 itself may communicate with deployment manager 302 to convey this information that it has been created. When deployment manager 302 has determined that VM- 1 308 - 1 has been created, in communication ( 2 ), deployment manager 302 installs a management agent for management system 312 .
- VM- 1 308 - 1 may have been created with a base management agent—a process that executes within VM- 1 308 - 1 that exposes an interface that enables deployment manager 302 to install other management agents on VM- 1 308 - 1 .
- deployment manager 302 may instruct the base management agent on VM- 1 308 - 1 to install a management agent for management system 312 .
- Deployment manager 302 may, for instance, send VM- 1 308 - 1 a copy of the management agent, send VM- 1 308 - 1 a link to a location from where the management agent may be obtained, or direct VM- 1 308 - 1 to a location in a file system of VM- 1 308 - 1 where the management agent is installed.
- VM- 1 308 - 1 may undertake an installation procedure to install the management agent, so it is configured to communicate with management system 312 . After the management agent has been installed, VM- 1 308 - 1 may communicate this fact to deployment manager 302 .
- deployment manager 302 may communicate ( 3 ) with management system 312 to register the management agent with management system 312 .
- This act of registration may include an indication to create an account or other entry for VM- 1 308 - 1 on management system 312 , and also an indication of how to reach the management agent of VM- 1 308 - 1 , such as an IP address of VM- 1 308 - 1 , and a port upon which the management agent listens.
- management system 312 may manage VM- 1 308 - 1 .
- management system 312 performs such management of VM- 1 308 - 1 .
- communication ( 4 ) may comprise management system 312 sending the management agent of VM- 1 308 - 1 an indication of an operating system patch that the management agent is to use to patch a guest operating system of VM- 1 308 - 1 .
- communication ( 1 ) which here depicts deployment manager 302 instructing hypervisor 306 to create VM- 1 308 - 1 —may involve more communications than just the depicted communication ( 1 ) from deployment manager 302 to hypervisor 306 .
- This communication flow may include multiple communications from deployment manager 302 to hypervisor 306 and one or more communications from hypervisor 306 to deployment manager 302 .
- FIG. 5 depicts another example system architecture for configuring a VM of a deployment to be managed by a management system, in addition to the example system architecture depicted in FIG. 4 .
- Deployment 300 b , deployment manager 302 b , host 304 b , hypervisor 306 b , VMs 308 - 1 b through 308 -Nb, VHDs 310 - 1 b through 310 - 1 Nb, and management system 312 b may be similar to deployment 300 , deployment manager 302 , host 304 , hypervisor 306 , VMs 308 - 1 through 308 -N, VHDs 310 - 1 through 310 - 1 N, and management system 312 , respectively, of FIG. 4 .
- communication flows ( 1 b ), ( 2 b ), and ( 4 b ) may be similar to communication flows ( 1 ), ( 2 ), and ( 4 ), respectively, of FIG. 4 .
- FIGS. 3A and 3B The primary difference between FIGS. 3A and 3B is in how the management agent of VM- 1 308 - 1 and VM- 1 b 308 - 1 b register with respective management systems 312 and 312 b .
- deployment manager 302 determines that VM- 1 308 - 1 has installed the management agent, and then registers VM- 1 308 - 1 with management system 312 in communication ( 3 ). Registering the management agent with management system 312 as in the embodiment of FIG. 4 may be preferable where deployment manager 302 also un-registers VMs 308 from management system 312 , because then the acts of registering and un-registering are similar—both involve a communication from deployment manager 302 to management system 312 .
- the communication ( 3 b ) of FIG. 5 where the management agent of VM- 1 b 308 - 1 b contacts may also be preferable under certain circumstances. For instance, this may reduce the processing resources required by deployment manager 302 , since deployment manager may have less work to do, and may simply the communication flow, since communication ( 3 b ) is sent directly from VM- 1 b 308 - 1 b to management server 312 , as opposed to through deployment manager 302 b , as takes place in FIG. 4 .
- FIG. 6 depicts an example system architecture for configuring a VM of a deployment to be managed by multiple management system, in addition to the system architectures depicted in FIGS. 4 and 5 .
- Deployment 300 c , deployment manager 302 c , host 304 c , hypervisor 306 c , VMs 308 - 1 c through 308 -Nc, VHDs 310 - 1 c through 310 - 1 Nc, and management system 312 c may be similar to deployment 300 , deployment manager 302 , host 304 , hypervisor 306 , VMs 308 - 1 through 308 -N, VHDs 310 - 1 through 310 - 1 N, and management system 312 , respectively, of FIG. 4 .
- management server 312 - 2 c which is similar to management server 312 c , though may be responsible for a different type of management (for instance, management system 312 c may be responsible for managing patching of VMs 308 , while management system 312 - 2 c may be responsible for managing the health of VMs 308 ).
- communication flows ( 1 c ) and ( 2 c ) may be similar to communication flows ( 1 ) and ( 2 ), respectively of FIG. 4 .
- Communication flows ( 3 c - 1 ) and ( 3 c - 2 ) may each be similar to communication flow ( 3 ) of FIG. 4
- communication flows ( 4 c - 1 ) and ( 4 c - 2 ) may each be similar to communication flow ( 3 ) of FIG. 4 .
- FIG. 6 shows how multiple management systems 312 c may be used to manage a single VM 308 .
- communication flow ( 2 c ) comprises installing two management agents on VM- 1 c 308 - 1 c —one management agent for management server 312 c , and a second management agent for management server 312 - 2 c .
- deployment manager 302 c After deployment manager 302 c has determined that the management agent corresponding to management system 312 c has been installed on VM- 1 c 308 - 1 c , deployment manager 302 c makes communication ( 3 - 1 c ) to management server 312 c to register VM- 1 c 308 - 1 c with management server 312 c .
- deployment manager 302 c makes communication ( 3 - 2 c ) to management server 312 - 2 c to register VM- 1 c 308 - 1 c with management server 312 - 2 c.
- Management system 312 c manages VM- 1 c 308 - 1 c by communicating with VM- 1 c 308 - 1 c in communication ( 4 - 1 c ), and management system 312 - 2 c manages VM- 1 c 308 - 1 c by communicating with VM- 1 c 308 - 1 c in communication ( 4 - 2 c ).
- FIG. 7 depicts an example system architecture for configuring multiple VMs of a deployment to be managed by a management system, in addition to the system architectures depicted in FIGS. 4-6 .
- Deployment 300 d , deployment manager 302 d , host 304 d , hypervisor 306 d , VMs 308 - 1 d through 308 -Nd, VHDs 310 - 1 d through 310 - 1 Nd, and management system 312 d may be similar to deployment 300 , deployment manager 302 , host 304 , hypervisor 306 , VMs 308 - 1 through 308 -N, VHDs 310 - 1 through 310 - 1 N, and management system 312 , respectively, of FIG. 4 .
- each of communications ( 1 - 1 d ) and ( 1 - 2 d ) may be similar to communication ( 1 ) of FIG.
- each of communications ( 2 - 1 d ) and ( 2 - 2 d ) may be similar to communication ( 2 ) of FIG. 4 ; each of communications ( 3 - 1 d ) and ( 3 - 2 d ) may be similar to communication ( 3 ) of FIG. 4 ; and each of communications ( 4 - 1 d ) and ( 4 - 2 d ) may be similar to communication ( 4 ) of FIG. 4 .
- VM- 1 d 308 - 1 d and VM-Nd 308 -Nd may be registered with a single management system 312 d , and that single management system 312 d may manage each of those VMs 308 - 1 d and 308 -Nd.
- Management system 312 d may send these VMs 308 roughly similar management instructions. This may occur, for instance, where each VM 308 has the same version of a guest OS, so when management system 312 d manages the VMs 308 by patching them, management system 312 d instructs each VM 308 to install the same patch. Management system 312 d may also send these VMs 308 management instructions that vary somewhat.
- management system 312 d is managing the health of VMs 308 .
- management system 312 d may send to VM-Nd 308 -Nd instructions related to diagnosing why VM-Nd 308 -Nd is in an unhealthy state.
- Management system 312 d may not send these instructions to VM- 1 d 308 - 1 d because VM- 1 d 308 - 1 d is in a healthy state.
- FIG. 8 depicts example operational procedures for a system that configures a VM of a deployment to be managed by a management system. These operational procedures may be implemented in deployment manager 302 of FIGS. 4-7 to implement the present invention
- Operation 402 depicts instructing the first computer to create the VM.
- This operation may be performed by a deployment manager, such as deployment manager 302 of FIG. 4 , and may be similar to communication ( 1 ) of FIG. 4 , where the deployment manager 302 sends an instruction to the hypervisor 306 of a host 304 to create a new VM—VM- 1 308 - 1 .
- Operation 404 depicts installing a management program corresponding to the second computer on the VM. Operation 404 may be performed by a deployment manager that issues such an instruction to the VM, such as deployment manager 302 of FIG. 4 . Operation 404 may be similar to communication ( 2 ) of FIG. 4 , where the deployment manager sends an instruction to VM- 1 308 - 1 to install a management agent upon VM- 1 308 - 1 that corresponds to management system 312 .
- the base management agent may expose an interface such as a MICROSOFT Windows Management Interface (WMI) interface.
- WMI Windows Management Interface
- the deployment manager may instruct the base management agent through making a call to the exposed interface of the VM to download or otherwise obtain files for a management agent that corresponds to the management system to a location in a file system of the VM (such as ADMMIN$ in versions of the MICROSOFT WINDOWS operating system).
- the deployment manager may also make an interface call to have the base management agent instruct an installer program (such as MICROSOFT Installer Package (MSI)) to install the management agent for the management system.
- MSI MICROSOFT Installer Package
- Operation 404 may also comprise copying the management program to a virtual hard drive (VHD) mounted by the VM.
- VHD virtual hard drive
- a way to install the management agent corresponding to the management system on the VM is to store the management agent on a virtual hard disk (VHD) or other disk, and have the VM mount the VHD, and run an installer program for the management agent. This may be effectuated such as through an xcopy (extended copy) command.
- Operation 404 may also comprise instructing the VM to mount an image file that stores the management program, the mounted image file being presented to the VM as removable media.
- the deployment manager may store the management agent in an image file (such as an ISO image), and then instructing the VM to mount the image file as, for instance, a DVD disc, and install the management agent from that mounted image file.
- operation 404 comprises instructing the VM to install a management program corresponding to the second computer is performed by a third computer—such as deployment manager 302 —operation 406 comprises: sending, by the third computer, to the second computer, a message indicative of registration of the VM.
- operation 404 comprises: instructing the VM to configure the management program based on the configuration information.
- the configuration information may comprise information identifying the second computer, such as an IP address of the second computer.
- the information may also comprise a security secret used by the VM to communicate with the second computer (such as to register the VM with the second computer, as depicted in operation 406 ).
- the VM may use the security secret as proof to the second computer (which did not create the VM, and may not be aware of the VM prior to this act of registration) that the VM should be registered with the second computer, rather than being, for instance, a malicious entity attempting to masquerade as an appropriate entity.
- the secret may, for instance, be a certificate issued by an authority trusted by the management system.
- the VM may use the security secret as the input to a mathematical function, and send the result to the second computer.
- the second computer may also use the security secret as the input to the same mathematical function, and compare the result it determines against the result received from the VM. Where the second computer determines that the results match, it may determine that the VM possesses the security secret, and therefore, may be registered with the second computer.
- Operation 406 depicts registering the VM with the second computer, such as management system 312 of FIG. 4 .
- This act of registration may be performed directly from the VM to the second computer—in an embodiment, operation 406 comprises sending, by the VM, to the second computer, a message indicative of registration of the VM.
- This act of registration may be performed be an entity other than the VM—such as the deployment manager 302 of FIG. 4 —in an embodiment where operation 404 is performed by a third computer, operation 406 comprises: sending, by the third computer, to the second computer, a message indicative of registration of the VM.
- Operation 406 may be performed in a manner similar to communication flow ( 3 ) of FIG. 4 .
- Operation 408 depicts sending the VM an instruction indicative of management of the VM by the second computer. Operation 408 may be performed in a manner similar to communication flow ( 4 ) of FIG. 4 .
- operation 408 may comprise the second computer sending the VM an instruction to download and install an operating system patch for a guest OS of the VM.
- the VM may initiate the management process. For instance, the agent may query the management system for a manifest of required patches for the VM, then check the VM to see whether the required patches are installed. If not, the agent may download and install those patches.
- Operation 410 depicts installing a second management program on the VM corresponding to a third computer—such as management system 312 - 2 c of FIG. 6 ; registering the VM with the third computer; and sending the VM an instruction indicative of management of the VM by the third computer.
- a single VM may be managed by multiple management systems 312 , and VM 312 may have a separate management agent executing within it that corresponds to each management system 312 .
- the second computer and third computer may each have the VM registered to them, and may each manage the VM.
- Operation 412 depicts instructing a third computer—such as another instance of VM host 304 of FIG. 4 to create a second VM; installing the management program on the second VM; and sending the second VM an instruction indicative of management of the second VM by the second computer.
- One management system 312 may manage multiple VMs, even VMs that execute on different hosts. Each of those VMs under management may be registered to management system 312 , and management system 312 may send each management instructions, similar to communication flows ( 4 - 1 d ) and ( 4 - 2 d ) of FIG. 7 .
- Operation 414 depicts determining that the VM is to be terminated; terminating the VM; and unregistering the VM with the second computer.
- Deployment manager 302 of FIG. 4 may control the act of terminating VMs. There may be times where a VM may be terminated or otherwise shut down in an orderly fashion, such as where the deployment manager 302 determines that a VM has skewed too far from a known state. In such a scenario, deployment manager 302 of FIG. 4 may determine to terminate the VM, and take actions to effectuate this. The deployment manager 302 may also unregister the VM from the management system 312 , so that management system 312 does not keep attempting to manage a VM that is no longer executing.
- Operation 416 depicts determining that the VM has terminated; and unregistering the VM with the second computer.
- the VM may also terminate unexpectedly—such as where there is a hardware failure of the host upon which it executes (like host 304 of FIG. 4 ) that causes the host, and all VMs executing on it, to shut down.
- An entity such as deployment manager 302 of FIG. 4 , may monitor the running status VMs of a deployment, and where it determines that a VM has terminated, notify the second computer of this to unregister it.
- an embodiment of the invention may implement operations 400 , 402 , 404 , 406 , 408 , and 418 , where a VM is created, a management program is installed on the VM, the VM is registered with a management system, and the management system sends an instruction to the VM indicative of management of the VM.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
An invention is disclosed for configuring a VM of a deployment to be managed by a management system. In an embodiment, a deployment manager of a deployment instructs a host to create a VM. The VM is created with a base management agent that exposes interfaces to the management system that enable the management system to install management agents on the VM. The deployment manager installs a management agent that corresponds to a management system on the VM, and registers the VM with the management system. The management system may then manage the VM by communicating with the installed management agent on the VM.
Description
- This application is a Continuation of U.S. patent application Ser. No. 12/941,898, filed on Nov. 8, 2010, titled “Insertion of Management Agents During Machine Deployment,” the contents of which are incorporated by reference.
- There are collections of multiple computers, commonly referred to as data centers, server farms, or deployments. It is common in these deployments to have one or more management systems that monitor and manage multiple computers (either physical computers or virtual machines (VMs)) in a deployment. For instance, a management system may manage patching the computers, standing up a computer—including installing applications on the computer, and instantiating those applications (such as a MICROSOFT Server App-V application virtualization package, or a MICROSOFT Database Application Components description of a database)—or monitoring the health of the computers. Such a management system may manage a computer by interacting with a corresponding management agent on the computer.
- Furthermore, it is common for multiple computers of a deployment to be homogenously configured. Computers may be homogenously configured, for instance, where they are configured to execute the same version of an operating system, or they are configured to execute the same versions of applications.
- One way that administrators configure computers to be managed by management programs is as follows. An administrator orders the computers, receives them, mounts them in racks, installs program code on each from a disc, and then registers each computer with one or more management systems that will manage the computer. Apart from some of the details involving the physical machines themselves, an administrator may configure the VMs in a deployment to be managed by management programs in a similar way. There are many problems with these known techniques for configuring VMs in a deployment to be managed by management programs, some of which are well known.
- It would therefore be an improvement for configuring VMs of a deployment to be managed by management programs.
- Including a management agent in an operating system gold image may be desirable (sometimes referred to as baking the management agent into the gold image), but baking the agent in carries with it problems. There may be many management agents, and anytime any agent changes, a new gold image needs to be created, which takes work by an administrator. Additionally, some management agents are not designed to be baked in. To be baked in successfully, a management agent needs to be able to survive being generalized (most gold images do not contain machine-specific information, like a machine name, or an IP address of the machine), and/or a system preparation process (such as MICROSOFT Sysprep). A management agent may not survive either of these processes, for instance, because it relies on information changed by one of these processes to be known and consistent.
- Furthermore, it may be that a management agent cannot be configured remotely, because the agent lacks exposed interfaces that enable a remote system to configure the agent. So, where an administrator may stand up dozens or hundreds of VMs in a few minutes, he or she would still have to go in and manually configure each one of those VMs with the management agent. Even where a management agent does have exposed interfaces that allow for remote configuration, doing so may take an unacceptably long amount of time. It is typical to address computers using the Domain Name System (DNS). However, once a computer is brought online and registered with DNS, it may take several minutes for the DNS registration to propagate through a communications network so that the computer can be remotely addressed via DNS. This time required for a DNS name to propagate may be unacceptably long.
- Therefore, it may be advantageous to install a management program in a VM separate from imaging the VM with a gold image. In an embodiment, a deployment has a deployment manager that is configured to create, destroy and manage VMs on hosts in the deployment. An example of such a deployment manager is MICROSOFT's System Center Virtual Machine Manager (SCVMM). The deployment manager determines that a VM is to be created on a host, and instructs that host to create a VM. When the deployment manager receives and indication that the VM has been created, the deployment manager instructs the VM to install a management agent or management program, that a management system may communicate with to manage the VM. The management agent provided functionality for the management system to manage the computer. For instance, the management agent may expose interfaces that allow the management system to communicate with the management agent, and the management agent may carry out on the computer actions to effectuate the instructions of the management system. The deployment manager also registers the VM with the management system. The management system may then manage the VM by communicating with the management agent on the VM.
- Other embodiments of an invention for configuring VMs of a deployment to be managed by management programs, exist, and some examples of such are described with respect to the detailed description of the drawings.
- The systems, methods, and computer-readable media for configuring a VM of a deployment to be managed by a management system are further described with reference to the accompanying drawings in which:
-
FIG. 1 depicts an example general purpose computing environment in which an aspect of an embodiment of the invention can be implemented . -
FIG. 2 depicts an example virtual machine host wherein an aspect of an embodiment of the invention can be implemented. -
FIG. 3 depicts a second example virtual machine host wherein an aspect of an embodiment of the present invention can be implemented. -
FIG. 4 depicts an example system architecture for configuring a VM of a deployment to be managed by a management system. -
FIG. 5 depicts another example system architecture for configuring a VM of a deployment to be managed by a management system. -
FIG. 6 depicts an example system architecture for configuring a VM of a deployment to be managed by multiple management systems. -
FIG. 7 depicts an example system architecture for configuring multiple VMs of a deployment to be managed by a management system. -
FIG. 8 depicts example operational procedures for a system that configures a VM of a deployment to be managed by a management system. - Embodiments may execute on one or more computer systems.
FIG. 1 and the following discussion are intended to provide a brief general description of a suitable computing environment in which the disclosed subject matter may be implemented. - The term processor used throughout the description can include hardware components such as hardware interrupt controllers, network adaptors, graphics processors, hardware based video/audio codecs, and the firmware used to operate such hardware. The term processor can also include microprocessors, application specific integrated circuits, and/or one or more logical processors, e.g., one or more cores of a multi-core general processing unit configured by instructions read from firmware and/or software. Logical processor(s) can be configured by instructions embodying logic operable to perform function(s) that are loaded from memory, e.g., RAM, ROM, firmware, and/or mass storage.
- Referring now to
FIG. 1 , an exemplary general purpose computing system is depicted. The general purpose computing system can include aconventional computer 20 or the like, including at least one processor orprocessing unit 21, asystem memory 22, and a system bus 23 that communicative couples various system components including the system memory to theprocessing unit 21 when the system is in an operational state. The system bus 23 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. The system memory can include read only memory (ROM) 24 and random access memory (RAM) 25. A basic input/output system 26 (BIOS), containing the basic routines that help to transfer information between elements within thecomputer 20, such as during start up, is stored inROM 24. Thecomputer 20 may further include ahard disk drive 27 for reading from and writing to a hard disk (not shown), amagnetic disk drive 28 for reading from or writing to a removablemagnetic disk 29, and anoptical disk drive 30 for reading from or writing to a removableoptical disk 31 such as a CD ROM or other optical media. Thehard disk drive 27,magnetic disk drive 28, andoptical disk drive 30 are shown as connected to the system bus 23 by a harddisk drive interface 32, a magneticdisk drive interface 33, and anoptical drive interface 34, respectively. The drives and their associated computer readable media provide non volatile storage of computer readable instructions, data structures, program modules and other data for thecomputer 20. Although the exemplary environment described herein employs a hard disk, a removablemagnetic disk 29 and a removableoptical disk 31, it should be appreciated by those skilled in the art that other types of computer readable media which can store data that is accessible by a computer, such as flash memory cards, digital video disks, random access memories (RAMs), read only memories (ROMs) and the like may also be used in the exemplary operating environment. Generally, such computer readable storage media can be used in some embodiments to store processor executable instructions embodying aspects of the present disclosure. - A number of program modules comprising computer-readable instructions may be stored on computer-readable media such as the hard disk,
magnetic disk 29,optical disk 31,ROM 24 orRAM 25, including anoperating system 35, one ormore application programs 36,other program modules 37 andprogram data 38. Upon execution by the processing unit, the computer-readable instructions cause the actions described in more detail below to be carried out or cause the various program modules to be instantiated. A user may enter commands and information into thecomputer 20 through input devices such as akeyboard 40 and pointing device 42. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner or the like. These and other input devices are often connected to theprocessing unit 21 through aserial port interface 46 that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port or universal serial bus (USB). Amonitor 47, display or other type of display device can also be connected to the system bus 23 via an interface, such as avideo adapter 48. In addition to thedisplay 47, computers typically include other peripheral output devices (not shown), such as speakers and printers. The exemplary system ofFIG. 1 also includes ahost adapter 55, Small Computer System Interface (SCSI) bus 56, and anexternal storage device 62 connected to the SCSI bus 56. - The
computer 20 may operate in a networked environment using logical connections to one or more remote computers, such as aremote computer 49. Theremote computer 49 may be another computer, a server, a router, a network PC, a peer device or other common network node, and typically can include many or all of the elements described above relative to thecomputer 20, although only amemory storage device 50 has been illustrated inFIG. 1 . The logical connections depicted inFIG. 1 can include a local area network (LAN) 51 and a wide area network (WAN) 52. Such networking environments are commonplace in offices, enterprise wide computer networks, intranets and the Internet. - When used in a LAN networking environment, the
computer 20 can be connected to theLAN 51 through a network interface oradapter 53. When used in a WAN networking environment, thecomputer 20 can typically include amodem 54 or other means for establishing communications over thewide area network 52, such as the Internet. Themodem 54, which may be internal or external, can be connected to the system bus 23 via theserial port interface 46. In a networked environment, program modules depicted relative to thecomputer 20, or portions thereof, may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used. Moreover, while it is envisioned that numerous embodiments of the present disclosure are particularly well-suited for computerized systems, nothing in this document is intended to limit the disclosure to such embodiments. -
System memory 22 ofcomputer 20 may comprise instructions that, upon execution bycomputer 20, cause thecomputer 20 to implement the invention, such as the operational procedures ofFIG. 8 . -
FIG. 2 depicts an example VMHost virtual machine host (sometimes referred to as a VMHost or host) wherein an aspect of an embodiment of the invention can be implemented. The VMHost can be implemented on a computer such ascomputer 20 depicted inFIG. 1 , and VMs on the VMHost may execute an operating system that effectuates a remote presentation session server. As depicted,computer system 200 comprises logical processor 202 (an abstraction of one or more physical processors or processor cores, the processing resources of which are made available to applications of computer system 200),RAM 204,storage device 206,GPU 212, andNIC 214. -
Hypervisor microkernel 202 can enforce partitioning by restricting a guest operating system's view of system memory. Guest memory is a partition's view of memory that is controlled by a hypervisor. The guest physical address can be backed by system physical address (SPA), i.e., the memory of the physical computer system, managed by hypervisor. In an embodiment, the GPAs and SPAs can be arranged into memory blocks, i.e., one or more pages of memory. When a guest writes to a block using its page table, the data is actually stored in a block with a different system address according to the system wide page table used by hypervisor. - In the depicted example,
parent partition component 204, which can also be also thought of as similar to “domain 0” in some hypervisor implementations, can interact withhypervisor microkernel 202 to provide a virtualization layer.Parent partition 204 in this operational environment can be configured to provide resources to guest operating systems executing in the child partitions 1-N by using virtualization service providers 228 (VSPs) that are sometimes referred to as “back-end drivers.” Broadly,VSPs 228 can be used to multiplex the interfaces to the hardware resources by way of virtualization service clients (VSCs) (sometimes referred to as “front-end drivers”) and communicate with the virtualization service clients via communication protocols. As shown by the figures, virtualization service clients can execute within the context of guest operating systems. These drivers are different than the rest of the drivers in the guest in that they may be supplied with a hypervisor, not with a guest. - Emulators 234 (e.g., virtualized integrated drive electronics device (IDE devices), virtualized video adaptors, virtualized NICs, etc.) can be configured to run within the
parent partition 204 and are attached to resources available toguest operating systems virtual device 202, microkernel hypervisor can intercept the request and pass the values the guest attempted to write to an associated emulator. - Each child partition can include one or more virtual processors (230 and 232) that guest operating systems (220 and 222) can manage and schedule threads to execute thereon. Generally, the virtual processors are executable instructions and associated state information that provide a representation of a physical processor with a specific architecture. For example, one virtual machine may have a virtual processor having characteristics of an INTEL x86 processor, whereas another virtual processor may have the characteristics of a PowerPC processor. The virtual processors in this example can be mapped to logical processors of the computer system such that the instructions that effectuate the virtual processors will be backed by logical processors. Thus, in an embodiment including multiple logical processors, virtual processors can be simultaneously executed by logical processors while, for example, other logical processors execute hypervisor instructions. The combination of virtual processors and memory in a partition can be considered a virtual machine.
- Guest operating systems can include any operating system such as, for example, a MICROSOFT WINDOWS operating system. The guest operating systems can include user/kernel modes of operation and can have kernels that can include schedulers, memory managers, etc. Generally speaking, kernel mode can include an execution mode in a logical processor that grants access to at least privileged processor instructions. Each guest operating system can have associated file systems that can have applications stored thereon such as terminal servers, e-commerce servers, email servers, etc., and the guest operating systems themselves. The guest operating systems can schedule threads to execute on the virtual processors and instances of such applications can be effectuated.
-
FIG. 3 depicts a second example VMHost wherein an aspect of an embodiment of the present invention can be implemented.FIG. 3 depicts similar components to those ofFIG. 2 ; however in this example embodiment thehypervisor 238 can include the microkernel component and components from theparent partition 204 ofFIG. 2 such as thevirtualization service providers 228 anddevice drivers 224 whilemanagement operating system 236 may contain, for example, configuration utilities used to configurehypervisor 204. In thisarchitecture hypervisor 238 can perform the same or similar functions ashypervisor microkernel 202 ofFIG. 2 ; however, in thisarchitecture hypervisor 234 can be configured to provide resources to guest operating systems executing in the child partitions.Hypervisor 238 ofFIG. 3 can be a stand alone software product, a part of an operating system, embedded within firmware of the motherboard or a portion ofhypervisor 238 can be effectuated by specialized integrated circuits. -
FIG. 4 depicts an example system architecture for configuring VMs of a deployment to be managed by a management system, such as VMs executing on the VMHost depicted inFIG. 2 or 3.Deployment 300 comprisesdeployment manager 302,host 304 andmanagement system 312. In turn,host 304 compriseshypervisor 306, VM-1 308-1 through VM-N 308-N, and VHD-1 310-1 (virtual hard drive) through VHD-N 310-N. Deployment manager 302 is configured to managedeployment 300. Among other functions, deployment manager may instruct ahost 304 to create or destroy aVM 308, may provision aVM 308, may migrate aVM 308 between hosts 304 (as depicted,deployment 300 has onehost 304, but it may comprise multiple hosts 304). As depicted inFIG. 4 and elsewhere, depicted elements (such asdeployment manager 302 and management system 312) may execute on separate physical computers, or share a physical computer with another depicted element—such as each executing in separate VMs on the physical computer, or even within the same VM on the physical computer. - Host 304 may comprise more or fewer than two
VMs 308, though two are depicted. Likewise, host 304 may comprise more or fewer than twoVHDs 310, though two are depicted. As depicted, eachVHD 310 is associated with aVM 308—theVM 308 mounts theVHD 310 and may both read data from it and write data to it. AVM 308 may have more than oneVHD 310 associated with it. Furthermore, aVHD 310 need not be stored onhost 304, but may be stored elsewhere on a communication network, and associated with theVM 308 across the communication network. Host 304 also compriseshypervisor 306, which managesVMs 308, including presenting VMs with virtual hardware resources. -
Management system 312 is configured to manage one or more aspects of one ormore VMs 308. For instance,management system 312 may be configured to ensure that aVM 308 is properly updated by deploying patches toVM 308.Management system 312 may also be configured to manage the health ofVM 308, such as by ensuring that it is running in an allowable state (including whether certain processes are running, certain files are present, or that there are no entries in an error log indicating that an error is present in a particular subsystem).Management system 312 may effectuate this management of aVM 308 by communicating with a management agent that executes onVM 308. - The following communication flow within
deployment 300 may be used to effectuate configuring a VM ofdeployment 300 to be managed bymanagement system 312. In communication (1),deployment manager 302 sends an instruction to hypervisor 306 to create VM-1 308-1.Hypervisor 306 may create VM-1 308-1 with various parameters (e.g., amount and type of central processing units, amount and type of system memory, number and type of storage devices), and then associate VHD-1 310-1 with VM 308-1, such that VM-1 308-1 mounts VHD 310-1.Deployment manager 302 may create VM-1 308-1 with an image file (sometimes referred to as a gold image, or a golden image) that comprises aspects of the VM-1 308-1, such as data for a guest operating system (guest OS). - Upon creation of VM-1 308-1,
deployment manager 302 receives acknowledgement that VM-1 308-1 has been created.Hypervisor 306 may senddeployment manager 302 an indication that it has successfully created VM-1 308-1, or VM-1 308-1 itself may communicate withdeployment manager 302 to convey this information that it has been created. Whendeployment manager 302 has determined that VM-1 308-1 has been created, in communication (2),deployment manager 302 installs a management agent formanagement system 312. VM-1 308-1 may have been created with a base management agent—a process that executes within VM-1 308-1 that exposes an interface that enablesdeployment manager 302 to install other management agents on VM-1 308-1. Where this is the case,deployment manager 302 may instruct the base management agent on VM-1 308-1 to install a management agent formanagement system 312.Deployment manager 302 may, for instance, send VM-1 308-1 a copy of the management agent, send VM-1 308-1 a link to a location from where the management agent may be obtained, or direct VM-1 308-1 to a location in a file system of VM-1 308-1 where the management agent is installed. Once VM-1 308-1 has the management agent itself, VM-1 308-1 may undertake an installation procedure to install the management agent, so it is configured to communicate withmanagement system 312. After the management agent has been installed, VM-1 308-1 may communicate this fact todeployment manager 302. - After
deployment manager 302 determines that the management agent has been installed on VM-1 308-1,deployment manager 302 may communicate (3) withmanagement system 312 to register the management agent withmanagement system 312. This act of registration may include an indication to create an account or other entry for VM-1 308-1 onmanagement system 312, and also an indication of how to reach the management agent of VM-1 308-1, such as an IP address of VM-1 308-1, and a port upon which the management agent listens. - After the management agent of VM-1 308-1 has been registered with
management system 312,management system 312 may manage VM-1 308-1. In communication (4),management system 312 performs such management of VM-1 308-1. For instance, communication (4) may comprisemanagement system 312 sending the management agent of VM-1 308-1 an indication of an operating system patch that the management agent is to use to patch a guest operating system of VM-1 308-1. - It may be appreciated that there may be additional communication flows in the process of configuring VMs of a deployment to be managed by a management system. For instance, communication (1)—which here depicts
deployment manager 302 instructinghypervisor 306 to create VM-1 308-1—may involve more communications than just the depicted communication (1) fromdeployment manager 302 tohypervisor 306. This communication flow may include multiple communications fromdeployment manager 302 tohypervisor 306 and one or more communications fromhypervisor 306 todeployment manager 302. -
FIG. 5 depicts another example system architecture for configuring a VM of a deployment to be managed by a management system, in addition to the example system architecture depicted inFIG. 4 . Deployment 300 b,deployment manager 302 b, host 304 b,hypervisor 306 b, VMs 308-1 b through 308-Nb, VHDs 310-1 b through 310-1Nb, andmanagement system 312 b may be similar todeployment 300,deployment manager 302,host 304,hypervisor 306, VMs 308-1 through 308-N, VHDs 310-1 through 310-1N, andmanagement system 312, respectively, ofFIG. 4 . Additionally, communication flows (1 b), (2 b), and (4 b) may be similar to communication flows (1), (2), and (4), respectively, ofFIG. 4 . - The primary difference between
FIGS. 3A and 3B is in how the management agent of VM-1 308-1 and VM-1 b 308-1 b register withrespective management systems FIG. 4 ,deployment manager 302 determines that VM-1 308-1 has installed the management agent, and then registers VM-1 308-1 withmanagement system 312 in communication (3). Registering the management agent withmanagement system 312 as in the embodiment ofFIG. 4 may be preferable wheredeployment manager 302 also un-registersVMs 308 frommanagement system 312, because then the acts of registering and un-registering are similar—both involve a communication fromdeployment manager 302 tomanagement system 312. - In contrast, the communication (3 b) of
FIG. 5 , where the management agent of VM-1 b 308-1 b contacts may also be preferable under certain circumstances. For instance, this may reduce the processing resources required bydeployment manager 302, since deployment manager may have less work to do, and may simply the communication flow, since communication (3 b) is sent directly from VM-1 b 308-1 b tomanagement server 312, as opposed to throughdeployment manager 302 b, as takes place inFIG. 4 . -
FIG. 6 depicts an example system architecture for configuring a VM of a deployment to be managed by multiple management system, in addition to the system architectures depicted inFIGS. 4 and 5 . - Deployment 300 c,
deployment manager 302 c, host 304 c,hypervisor 306 c, VMs 308-1 c through 308-Nc, VHDs 310-1 c through 310-1Nc, andmanagement system 312 c may be similar todeployment 300,deployment manager 302,host 304,hypervisor 306, VMs 308-1 through 308-N, VHDs 310-1 through 310-1N, andmanagement system 312, respectively, ofFIG. 4 . Also depicted is management server 312-2 c, which is similar tomanagement server 312 c, though may be responsible for a different type of management (for instance,management system 312 c may be responsible for managing patching ofVMs 308, while management system 312-2 c may be responsible for managing the health of VMs 308). - Additionally, communication flows (1 c) and (2 c) may be similar to communication flows (1) and (2), respectively of
FIG. 4 . Communication flows (3 c-1) and (3 c-2) may each be similar to communication flow (3) ofFIG. 4 , and communication flows (4 c-1) and (4 c-2) may each be similar to communication flow (3) ofFIG. 4 . -
FIG. 6 shows howmultiple management systems 312 c may be used to manage asingle VM 308. InFIG. 6 , communication flow (2 c) comprises installing two management agents on VM-1 c 308-1 c—one management agent formanagement server 312 c, and a second management agent for management server 312-2 c. Afterdeployment manager 302 c has determined that the management agent corresponding tomanagement system 312 c has been installed on VM-1 c 308-1 c,deployment manager 302 c makes communication (3-1 c) tomanagement server 312 c to register VM-1 c 308-1 c withmanagement server 312 c. Likewise, afterdeployment manager 302 c has determined that the management agent corresponding to management system 312-2 c has been installed on VM-1 c 308-1 c,deployment manager 302 c makes communication (3-2 c) to management server 312-2 c to register VM-1 c 308-1 c with management server 312-2 c. - When VM-1 c 308-1 c has been registered with each
respective management system 312, thatmanagement system 312 may then manage VM-1 c 308-1 c.Management system 312 c manages VM-1 c 308-1 c by communicating with VM-1 c 308-1 c in communication (4-1 c), and management system 312-2 c manages VM-1 c 308-1 c by communicating with VM-1 c 308-1 c in communication (4-2 c). -
FIG. 7 depicts an example system architecture for configuring multiple VMs of a deployment to be managed by a management system, in addition to the system architectures depicted inFIGS. 4-6 . - Deployment 300 d, deployment manager 302 d, host 304 d, hypervisor 306 d, VMs 308-1 d through 308-Nd, VHDs 310-1 d through 310-1Nd, and management system 312 d may be similar to
deployment 300,deployment manager 302,host 304,hypervisor 306, VMs 308-1 through 308-N, VHDs 310-1 through 310-1N, andmanagement system 312, respectively, ofFIG. 4 . Similarly, each of communications (1-1 d) and (1-2 d) may be similar to communication (1) ofFIG. 4 ; each of communications (2-1 d) and (2-2 d) may be similar to communication (2) ofFIG. 4 ; each of communications (3-1 d) and (3-2 d) may be similar to communication (3) ofFIG. 4 ; and each of communications (4-1 d) and (4-2 d) may be similar to communication (4) ofFIG. 4 . - It may be appreciated that multiple VMs—depicted herein as VM-1 d 308-1 d and VM-Nd 308-Nd—may be registered with a single management system 312 d, and that single management system 312 d may manage each of those VMs 308-1 d and 308-Nd. Management system 312 d may send these
VMs 308 roughly similar management instructions. This may occur, for instance, where eachVM 308 has the same version of a guest OS, so when management system 312 d manages theVMs 308 by patching them, management system 312 d instructs eachVM 308 to install the same patch. Management system 312 d may also send theseVMs 308 management instructions that vary somewhat. This may occur, for instance, where management system 312 d is managing the health ofVMs 308. Where VM-1 d 308-1 d is in a healthy state, and VM-Nd 308-Nd is in an unhealthy state, management system 312 d may send to VM-Nd 308-Nd instructions related to diagnosing why VM-Nd 308-Nd is in an unhealthy state. Management system 312 d may not send these instructions to VM-1 d 308-1 d because VM-1 d 308-1 d is in a healthy state. -
FIG. 8 depicts example operational procedures for a system that configures a VM of a deployment to be managed by a management system. These operational procedures may be implemented indeployment manager 302 ofFIGS. 4-7 to implement the present invention - The operational procedures begin with
operation 400, which leads intooperation 402.Operation 402 depicts instructing the first computer to create the VM. This operation may be performed by a deployment manager, such asdeployment manager 302 ofFIG. 4 , and may be similar to communication (1) ofFIG. 4 , where thedeployment manager 302 sends an instruction to thehypervisor 306 of ahost 304 to create a new VM—VM-1 308-1. -
Operation 404 depicts installing a management program corresponding to the second computer on the VM.Operation 404 may be performed by a deployment manager that issues such an instruction to the VM, such asdeployment manager 302 ofFIG. 4 .Operation 404 may be similar to communication (2) ofFIG. 4 , where the deployment manager sends an instruction to VM-1 308-1 to install a management agent upon VM-1 308-1 that corresponds tomanagement system 312. - The base management agent may expose an interface such as a MICROSOFT Windows Management Interface (WMI) interface. The deployment manager may instruct the base management agent through making a call to the exposed interface of the VM to download or otherwise obtain files for a management agent that corresponds to the management system to a location in a file system of the VM (such as ADMMIN$ in versions of the MICROSOFT WINDOWS operating system). The deployment manager may also make an interface call to have the base management agent instruct an installer program (such as MICROSOFT Installer Package (MSI)) to install the management agent for the management system.
-
Operation 404 may also comprise copying the management program to a virtual hard drive (VHD) mounted by the VM. A way to install the management agent corresponding to the management system on the VM is to store the management agent on a virtual hard disk (VHD) or other disk, and have the VM mount the VHD, and run an installer program for the management agent. This may be effectuated such as through an xcopy (extended copy) command. -
Operation 404 may also comprise instructing the VM to mount an image file that stores the management program, the mounted image file being presented to the VM as removable media. For instance, the deployment manager may store the management agent in an image file (such as an ISO image), and then instructing the VM to mount the image file as, for instance, a DVD disc, and install the management agent from that mounted image file. - In an embodiment where
operation 404 comprises instructing the VM to install a management program corresponding to the second computer is performed by a third computer—such asdeployment manager 302—operation 406 comprises: sending, by the third computer, to the second computer, a message indicative of registration of the VM. - In an embodiment where the operational procedures of
FIG. 8 include sending the VM configuration information for the management program,operation 404 comprises: instructing the VM to configure the management program based on the configuration information. The configuration information may comprise information identifying the second computer, such as an IP address of the second computer. The information may also comprise a security secret used by the VM to communicate with the second computer (such as to register the VM with the second computer, as depicted in operation 406). The VM may use the security secret as proof to the second computer (which did not create the VM, and may not be aware of the VM prior to this act of registration) that the VM should be registered with the second computer, rather than being, for instance, a malicious entity attempting to masquerade as an appropriate entity. The secret may, for instance, be a certificate issued by an authority trusted by the management system. Where both the VM and the second computer possess the security secret, the VM may use the security secret as the input to a mathematical function, and send the result to the second computer. The second computer may also use the security secret as the input to the same mathematical function, and compare the result it determines against the result received from the VM. Where the second computer determines that the results match, it may determine that the VM possesses the security secret, and therefore, may be registered with the second computer. -
Operation 406 depicts registering the VM with the second computer, such asmanagement system 312 ofFIG. 4 . This act of registration may be performed directly from the VM to the second computer—in an embodiment,operation 406 comprises sending, by the VM, to the second computer, a message indicative of registration of the VM. This act of registration may be performed be an entity other than the VM—such as thedeployment manager 302 of FIG. 4—in an embodiment whereoperation 404 is performed by a third computer,operation 406 comprises: sending, by the third computer, to the second computer, a message indicative of registration of the VM.Operation 406 may be performed in a manner similar to communication flow (3) ofFIG. 4 . -
Operation 408 depicts sending the VM an instruction indicative of management of the VM by the second computer.Operation 408 may be performed in a manner similar to communication flow (4) ofFIG. 4 . For instance, where the second computer is responsible for patch management,operation 408 may comprise the second computer sending the VM an instruction to download and install an operating system patch for a guest OS of the VM. The VM may initiate the management process. For instance, the agent may query the management system for a manifest of required patches for the VM, then check the VM to see whether the required patches are installed. If not, the agent may download and install those patches. -
Operation 410 depicts installing a second management program on the VM corresponding to a third computer—such as management system 312-2 c ofFIG. 6 ; registering the VM with the third computer; and sending the VM an instruction indicative of management of the VM by the third computer. A single VM may be managed bymultiple management systems 312, andVM 312 may have a separate management agent executing within it that corresponds to eachmanagement system 312. Thus, the second computer and third computer may each have the VM registered to them, and may each manage the VM. -
Operation 412 depicts instructing a third computer—such as another instance ofVM host 304 ofFIG. 4 to create a second VM; installing the management program on the second VM; and sending the second VM an instruction indicative of management of the second VM by the second computer. Onemanagement system 312 may manage multiple VMs, even VMs that execute on different hosts. Each of those VMs under management may be registered tomanagement system 312, andmanagement system 312 may send each management instructions, similar to communication flows (4-1 d) and (4-2 d) ofFIG. 7 . -
Operation 414 depicts determining that the VM is to be terminated; terminating the VM; and unregistering the VM with the second computer.Deployment manager 302 ofFIG. 4 may control the act of terminating VMs. There may be times where a VM may be terminated or otherwise shut down in an orderly fashion, such as where thedeployment manager 302 determines that a VM has skewed too far from a known state. In such a scenario,deployment manager 302 ofFIG. 4 may determine to terminate the VM, and take actions to effectuate this. Thedeployment manager 302 may also unregister the VM from themanagement system 312, so thatmanagement system 312 does not keep attempting to manage a VM that is no longer executing. -
Operation 416 depicts determining that the VM has terminated; and unregistering the VM with the second computer. The VM may also terminate unexpectedly—such as where there is a hardware failure of the host upon which it executes (likehost 304 ofFIG. 4 ) that causes the host, and all VMs executing on it, to shut down. An entity, such asdeployment manager 302 ofFIG. 4 , may monitor the running status VMs of a deployment, and where it determines that a VM has terminated, notify the second computer of this to unregister it. - The operational procedures conclude with
operation 418. It may be appreciated that not all operational procedures need be present in every embodiment of the invention. For instance, an embodiment of the invention may implementoperations - While the present invention has been described in connection with the preferred aspects, as illustrated in the various figures, it is understood that other similar aspects may be used or modifications and additions may be made to the described aspects for performing the same function of the present invention without deviating there from. Therefore, the present invention should not be limited to any single aspect, but rather construed in breadth and scope in accordance with the appended claims. For example, the various procedures described herein may be implemented with hardware or software, or a combination of both. Thus, the methods and apparatus of the disclosed embodiments, or certain aspects or portions thereof, may take the form of program code (i.e., instructions) embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other machine-readable storage medium. When the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus configured for practicing the disclosed embodiments. In addition to the specific implementations explicitly set forth herein, other aspects and implementations will be apparent to those skilled in the art from consideration of the specification disclosed herein. It is intended that the specification and illustrated implementations be considered as examples only.
Claims (1)
1. A method for configuring a virtual machine (VM) of a first computer to be managed by a second computer, comprising:
instructing the first computer to create the VM;
installing a management program on the VM corresponding to the second computer;
registering the VM with the second computer; and
sending the VM an instruction indicative of management of the VM by the second computer.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/259,004 US20140229948A1 (en) | 2010-11-08 | 2014-04-22 | Insertion of management agents during machine deployment |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/941,898 US8707301B2 (en) | 2010-11-08 | 2010-11-08 | Insertion of management agents during machine deployment |
US14/259,004 US20140229948A1 (en) | 2010-11-08 | 2014-04-22 | Insertion of management agents during machine deployment |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/941,898 Continuation US8707301B2 (en) | 2010-11-08 | 2010-11-08 | Insertion of management agents during machine deployment |
Publications (1)
Publication Number | Publication Date |
---|---|
US20140229948A1 true US20140229948A1 (en) | 2014-08-14 |
Family
ID=46020684
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/941,898 Active 2031-08-03 US8707301B2 (en) | 2010-11-08 | 2010-11-08 | Insertion of management agents during machine deployment |
US14/259,004 Abandoned US20140229948A1 (en) | 2010-11-08 | 2014-04-22 | Insertion of management agents during machine deployment |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/941,898 Active 2031-08-03 US8707301B2 (en) | 2010-11-08 | 2010-11-08 | Insertion of management agents during machine deployment |
Country Status (2)
Country | Link |
---|---|
US (2) | US8707301B2 (en) |
CN (1) | CN102567073B (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170322825A1 (en) * | 2016-05-03 | 2017-11-09 | Electronics And Telecommunications Research Institute | Method of processing input and output of virtual machine |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2278514B1 (en) * | 2009-07-16 | 2018-05-30 | Alcatel Lucent | System and method for providing secure virtual machines |
WO2013115565A2 (en) * | 2012-01-30 | 2013-08-08 | 엘지전자 주식회사 | Method for managing virtual machine and device therefor |
US9262238B2 (en) | 2012-01-31 | 2016-02-16 | Red Hat, Inc. | Connection management for an application in a computing platform |
US9665356B2 (en) * | 2012-01-31 | 2017-05-30 | Red Hat, Inc. | Configuration of an application in a computing platform |
US9170797B2 (en) | 2012-01-31 | 2015-10-27 | Red Hat, Inc. | Automated deployment of an application in a computing platform |
US9032014B2 (en) * | 2012-02-06 | 2015-05-12 | Sap Se | Diagnostics agents for managed computing solutions hosted in adaptive environments |
US9712375B2 (en) | 2012-12-12 | 2017-07-18 | Microsoft Technology Licensing, Llc | Workload deployment with infrastructure management agent provisioning |
US9424056B1 (en) * | 2013-06-28 | 2016-08-23 | Emc Corporation | Cross site recovery of a VM |
US9454549B1 (en) | 2013-06-28 | 2016-09-27 | Emc Corporation | Metadata reconciliation |
US9354917B2 (en) | 2013-08-22 | 2016-05-31 | Vmware, Inc. | Method and system for network-less guest OS and software provisioning |
US9654411B2 (en) * | 2013-08-27 | 2017-05-16 | Vmware, Inc. | Virtual machine deployment and management engine |
US9065854B2 (en) | 2013-10-28 | 2015-06-23 | Citrix Systems, Inc. | Systems and methods for managing a guest virtual machine executing within a virtualized environment |
US9519513B2 (en) * | 2013-12-03 | 2016-12-13 | Vmware, Inc. | Methods and apparatus to automatically configure monitoring of a virtual machine |
US9823881B2 (en) | 2013-12-23 | 2017-11-21 | Vmware, Inc. | Ensuring storage availability for virtual machines |
US9678731B2 (en) | 2014-02-26 | 2017-06-13 | Vmware, Inc. | Methods and apparatus to generate a customized application blueprint |
US9430268B2 (en) * | 2014-05-02 | 2016-08-30 | Cavium, Inc. | Systems and methods for supporting migration of virtual machines accessing remote storage devices over network via NVMe controllers |
US9619218B2 (en) * | 2014-06-03 | 2017-04-11 | Red Hat, Inc. | Setup of management system in a virtualization system |
US20150378763A1 (en) | 2014-06-30 | 2015-12-31 | Vmware, Inc. | Methods and apparatus to manage monitoring agents |
US9614931B2 (en) * | 2015-01-20 | 2017-04-04 | Sphere 3D Inc. | Identifying a resource set require for a requested application and launching the resource set in a container for execution in a host operating system |
US20160308867A1 (en) * | 2015-04-20 | 2016-10-20 | Bomgar Corporation | Method and system for secure remote access and control using shared resources |
US10229262B2 (en) | 2015-04-20 | 2019-03-12 | Bomgar Corporation | Systems, methods, and apparatuses for credential handling |
US10397233B2 (en) | 2015-04-20 | 2019-08-27 | Bomgar Corporation | Method and apparatus for credential handling |
EP3261291B1 (en) * | 2016-06-22 | 2021-06-16 | Deutsche Telekom AG | Method for enhanced management and/or deployment of network nodes of a communications network, communications network, a plurality of physical and/or virtual machines, orchestration entity, program and computer program product |
CN108108255A (en) * | 2016-11-25 | 2018-06-01 | 中兴通讯股份有限公司 | The detection of virtual-machine fail and restoration methods and device |
US10223218B2 (en) * | 2016-11-29 | 2019-03-05 | International Business Machines Corporation | Disaster recovery of managed systems |
US10628204B2 (en) * | 2018-02-27 | 2020-04-21 | Performance Software Corporation | Virtual communication router with time-quantum synchronization |
US11294696B2 (en) * | 2019-01-23 | 2022-04-05 | Vmware, Inc. | Virtual desktop infrastucture management by a management service enrolling and de-enrolling a virtual machine with an endpoint manager |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6463446B1 (en) * | 1998-02-26 | 2002-10-08 | Sun Microsystems, Inc. | Method and apparatus for transporting behavior in an event-based distributed system |
US9606821B2 (en) | 2004-12-17 | 2017-03-28 | Intel Corporation | Virtual environment manager for creating and managing virtual machine environments |
US7536541B2 (en) | 2006-03-07 | 2009-05-19 | Novell Inc. | Parallelizing multiple boot images with virtual machines |
US8151277B2 (en) | 2007-05-15 | 2012-04-03 | Dynatrace Software Gmbh | Method and system for dynamic remote injection of in-process agents into virtual machine based applications |
US9038062B2 (en) | 2006-10-17 | 2015-05-19 | Manageiq, Inc. | Registering and accessing virtual systems for use in a managed system |
US8458695B2 (en) * | 2006-10-17 | 2013-06-04 | Manageiq, Inc. | Automatic optimization for virtual systems |
JP2010522370A (en) | 2007-03-20 | 2010-07-01 | サンギュ イ | Mobile virtual machine image |
US8407518B2 (en) | 2007-10-26 | 2013-03-26 | Vmware, Inc. | Using virtual machine cloning to create a backup virtual machine in a fault tolerant system |
US8181174B2 (en) | 2007-12-28 | 2012-05-15 | Accenture Global Services Limited | Virtual machine configuration system |
US20090241194A1 (en) | 2008-03-21 | 2009-09-24 | Andrew James Thomas | Virtual machine configuration sharing between host and virtual machines and between virtual machines |
US20090328030A1 (en) | 2008-06-27 | 2009-12-31 | Microsoft Corporation | Installing a management agent with a virtual machine |
CN101859263B (en) * | 2010-06-12 | 2012-07-25 | 中国人民解放军国防科学技术大学 | Quick communication method between virtual machines supporting online migration |
-
2010
- 2010-11-08 US US12/941,898 patent/US8707301B2/en active Active
-
2011
- 2011-11-07 CN CN201110379521.9A patent/CN102567073B/en active Active
-
2014
- 2014-04-22 US US14/259,004 patent/US20140229948A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170322825A1 (en) * | 2016-05-03 | 2017-11-09 | Electronics And Telecommunications Research Institute | Method of processing input and output of virtual machine |
Also Published As
Publication number | Publication date |
---|---|
US8707301B2 (en) | 2014-04-22 |
CN102567073B (en) | 2014-11-26 |
US20120117212A1 (en) | 2012-05-10 |
CN102567073A (en) | 2012-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8707301B2 (en) | Insertion of management agents during machine deployment | |
CN109154849B (en) | Super fusion system comprising a core layer, a user interface and a service layer provided with container-based user space | |
US11444765B2 (en) | Methods and apparatus to manage credentials in hyper-converged infrastructures | |
US10261800B2 (en) | Intelligent boot device selection and recovery | |
US8671405B2 (en) | Virtual machine crash file generation techniques | |
US11550564B1 (en) | Automating application of software patches to a server having a virtualization layer | |
US20120089972A1 (en) | Image Based Servicing Of A Virtual Machine | |
US10003597B2 (en) | Managing hardware reboot and reset in shared environments | |
US9686078B1 (en) | Firmware validation from an external channel | |
EP2622459B1 (en) | Virtual desktop configuration and operation techniques | |
US10402183B2 (en) | Method and system for network-less guest OS and software provisioning | |
US9092297B2 (en) | Transparent update of adapter firmware for self-virtualizing input/output device | |
US20120054742A1 (en) | State Separation Of User Data From Operating System In A Pooled VM Environment | |
US20120066681A1 (en) | System and method for management of a virtual machine environment | |
US10353727B2 (en) | Extending trusted hypervisor functions with existing device drivers | |
US11212168B2 (en) | Apparatuses and methods for remote computing node initialization using a configuration template and resource pools | |
CN116069584B (en) | Extending monitoring services into trusted cloud operator domains | |
Mayer et al. | Unified resource manager virtualization management | |
Marshall | User Mode Linux, VMWare and Wine | |
Turley | VMware Security Best Practices | |
Shaw et al. | Linux Installation and Configuration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034747/0417 Effective date: 20141014 Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:039025/0454 Effective date: 20141014 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |