BACKGROUND of the Invention
A virtual machine (VM) is or is or include a framework or environment created by for example a virtual machine monitor (VMM) On a host system. A VMM may provide facilities or resources on a host environment for an application, firmware or guest operating system (OS The May run in the VM. Instructions May is conveyed from the VMS to the VMM, and the VMM could execute such instructions for example on or through T He host environment.
Multiple VMs may run on a host at particular time. While a VMM could allocate resources among the various VMs, a VMM may lack a-to efficiently transfer data, messages, STA Tistics and other communication signals among the VMs that is running in a host environment
Detailed DESCRIPTION of the invention
Reference is made to FIG. 1, a schematic diagram of a host environment with a vsan in accordance with an Exempl ary embodiment of the invention. Host environment? -? May is or include a computer platform such as for example a mainframe, workstation, personal computer or other computing Devices, and may include some or any of the components, peripherals or other resources. Ed with such host environment? -. Host environment? -? may include for example a host OS? -? That could for example control some or any of the operations of a central processing unit (CPU)?Wuyi? or other processor. Host OS? -? may manage or coordinate resources of host environment? -? such as for example a file system? $? That is allocate and index files such as for example data files. Host environment? -? may also include hardware? -? Resources such as for example one or more disc drives or other mass storage memory device? $, modems, sound card, peripheral devices, etc. Some of such hardware or devices may is for example devices that meet or operate using a peripheral component interconnect (PCI) specification such as the specification described in IEEE STD physical and environmental Layers for PCI Mezzan INE Cards, IEEE standard 1386-2001 and 1386.1-2001. A PCI Device the? may include for example a printer, microphone, mouse, joystick, network card? the, disk adapter etc. Other devices and resources are included or connected with a host environment? -, and a host may include the other components. In some embodiments network card? the? may link different computers or the components of the computers that could communicate with a VM? +.
host environment? ? may include a VM? example ????? $ ? That could example run an application? . For example, in some embodiments a host? ? May run a Windows? OS while VM? ? May run a UNIX? OS. In some embodiments VM? ? May run for example a guest firmware? ? such as for example an extended firmware interface. In some embodiments more than one VM? ? such as VMs? ? and VM? $ ? may run for example simultaneously in a host environment? . Other operating systems, combinations of operating systems, firmware or applications May is run on a Host environment in accordance with an embodiment of the invention.
Host environment? also include a VMM? What is the may create and manage a VM? Allocate resources within for example host environment? One or more VMS? Some embodiments, a host environment? may include a host OS? and a VMM? or a VMM? without a host OS. In some embodiments VMM? may include a virtual management device? and a management core? .
Virtual Management device? -? May is a real or virtual device that is created or defined for example by VMM? -? As a virtual device within host environment? -. In some embodiments, virtual management device? -? may isn't connected to or represented by a real instance of a device, and may isn't being reflected in a real device it is Connected to a hardware component. In some embodiments virtual management device? -Defined as a PCI device, though devices created in accordance with other types or definitions could be used. Such other types or definitions could include for example devices, comply with standards Such As for example Universal s Erial bus as is described in Universal Serial Bus Revision 2.0 specification released on APR. Other possible architectures and arrangements of the components is possible. A host, VMM, and VM may include the other components or arrangements of the components.
In some embodiments, there may is created or defined in VMM? a management core? the May is or include one or more instructions, segments of code or software the May monitor, collect, Direc T or manage instructions sent by for example one or more VMS? "to" or "from" or more management devices? What are the host network? .
A VM? +? may include a management device driver? +? That may issue one or more instructions to management device? -. In some embodiments, module or driver? +? May is stored on for example a mass storage memory device? $, and May is or include one or more instructions, lines of code or collections of software the May interpret or translate Instructions or commands from a VM? +? into a format or language. Processed by virtual management device? -. In some embodiments driver? +Comply with the standards used by PCI devices and a PCI bus. Other standards or formats for driver? +? May is used. In some embodiments a driver? +? May is updated, refreshed or reloaded by for example VMM? -? or by another component operably attached to host environment? -? Without significant disruption to the operation of VMS? +. Similarly, the software, code and the corresponding capabilities of device? -? and core? -May I be improved or updated without significantly disrupting VMM? +? or the VM? -? managed by VMM? +.
In operation, a function, process or application running for example on VM? +Transfer of data, a file or other information to for example host OS? -? or to For example another VMS? A. An instruction is passed from VM? +? by the driver? +? directing virtual Management device? -Operate to example a file transfer mode. Management core? -Could monitor instructions passed to virtual management device? -. When such a instruction arrives at device? -, Core? -Example relay the instruction for processing or execution for example by host OS? -? or by or on another resource operably connected to host environment? -. For example, core? -Could receive or direct a file or data to or from the For example file system? $. A file May is read for example in a memory device managed by a file system? $, and May for example is written back to device? -. Device -Transfer a file to VM? +. In some embodiments a instruction from VM? +? to device? -Require the performance of a calculation by for example host OS? -, and the return of a result from such calculation back to device? -Further transfer of such result to VM? +.
In another example, VMS? +? and VM? AOperating concurrently and May is managed by VMM? -. As part of the For example a scheduling task, is it may is beneficial for VMM? -? To assess the resources needed by VM? +? and VM? AAt a particular time. To pass statistics or other data to for example VMM? -, a VM? +? May program virtual Management device? -? by the driver? +? To-enter for example a statistics mode. Other suitable modes is used. Vm? +Deliver for example usage and processing needs statistics to virtual management device? -. The delivered statistics is monitored, collected or otherwise processed by for example management core? -? Within for example VMM? -? to collect such statistics from one or more VMs? +. In some embodiments, such statistics is conveyed to a host OS? -? or to another component or resource outside of VMS? +? which is operably connected to host OS? -, where such statistics May is used as part of the for example a scheduling of a CPU?Wuyi? To accommodate the processing requirements of VMS? +.
In still another example, to facilitate delivering a message from VM? +? to another VM? A? or to a OS running on host OS? -Vm? +? May program virtual Management device? -? by. Drive? +? To-enter for example a chat mode. Modes may used. Vm? +Initiate a message with virtual management device? -? or publish its existence and wait for a call. Other message passing methods is used. Management core? -? may monitor virtual management device? -, and when a message was delivered to device? -, Core? -? may route or direct a message received by device? -, as a destination, from device? -, as a source, to-example one or more other VMS? A, as a destination. The message may likewise is directed to a host OS? -? or to another component or resource operably connected to host environment? -. In some embodiments, VMM? -Deliver and initiate messages to VM? +? by. By-device? -? and core? -.
other functions and actions as May performed By for example a PCI device is programmed to for example driver? ? and device? + . In some embodiments of the invention, a transfer of instructions or files between VMS? ? and VMM? ? By the by-device? may avoid exposing internal memory or files between or among the VMM? ? and VM? , or another VM? $ , or host OS? .
In some embodiments, messages, files, and other data is transferred to or from a VM? using one or more of input/output ports or direct memory access resources, that is available to PCI devices Su CH as device? in Host environment? . The size, format and length of data files to is transferred, whether fixed or variable, may in some embodimen TS is unlimited other than by the capacity of the host environment? .
Reference is made-FIG. 2, a flow diagram depicting a method of instructing a virtual device from a Vsan in a Ccordance with an embodiment of the invention. In block? $, a VM may issue an instruction, the by-a-example a driver in such VMS, to a virtual management device. In some embodiments the virtual management device is defined and created by for example a VMM to comply with Specifica tions of a PCI device; devices may specified. In some embodiments, the instruction is for example a read or write instruction for the transfer of data between the V MM and the VM, or between the VM and for example a file system of a host OS. The instruction is received in a virtual management device. In block?202Instructions reaching the virtual management device may is monitored by for example a management core then may be defined In the VMM. The management core may accept the instruction, and convey it-to-example host OS or to a CPU where it could be executed.
in some embodiments the instruction may order The virtual management device to enter in for example a chat mode; Other suitable modes is used. The management core may collect messages received by virtual Management device as a destination and may forward such Messa GES to-Example a host, to another VMS or to another resource outside of the VM. Similarly, a VM may instruct virtual Management device to enter a file transfer mode. VM may instruct virtual management device to retrieve or open a file. A management core may direct the instruction-to-example a host OS or to a file system managed by host OS. The file is transferred or otherwise made accessible to the management core which could transfer the file to Vsan Agement device, and from there to the VM. Other operations or series of operations is used.
Reference is made to FIG. 3, a flow chart of a method in accordance with an embodiment of the invention. In block? instruction May is issued from a VM to a virtual device. The instruction May was passed through a driver in the VM that's suitable for communicating with the virtual device.
In block? 302, a component or segment of a VMM such as for example a management core may monitor and collect the Instructio NS sent to the virtual device. In block? 304, the VMM or the management core may direct the instruction or manage the execution of the instruction on a re Source is outside of the VMS and the VMM such as for example hardware resources in a host environment. In some embodiments the instruction is include a message or data delivered to or from the VM. The VMM or the management core may collect data or files that is sent to or from a VM from a for example a file system, fro M another VM or from another resource operably connected with a host environment.
Src=http://www.freepatentsonline.com/7546599.html