The present invention relates generally to virtualized systems, and more particularly to such a system wherein an I/O emulation entity connects through a network to remote I/O peripherals.
It is well known in the art to use virtualization to run multiple operating systems each one on its own virtual machine (VM), also called “partition”, each separate operating system (OS) having the illusion of running alone on the hardware platform. Many virtualized systems use a hypervisor, which oversees and supervises different aspects and functions of the virtualization. There are many kinds of virtualized systems that support the concurrent execution of multiple operating systems. Current solutions range from full virtualization to para-virtualization. In full virtualization the OS is not aware of the underlying virtualization layer which emulates the hardware completely. An example of such a solution is VMware, which supports multiple guest operating systems.
Another solution, para-virtualization, requires the OS to be aware of the hypervisor and the underlying machine abstraction layer. An example of such a solution is Xen, which is Open Source software that supports execution of multiple guest operating systems.
Reference is now made to
Reference is now made to
The present invention seeks to provide an improved virtualized system, as is described more in detail hereinbelow.
There is provided in accordance with a non-limiting embodiment of the invention a virtualized system including a processing sub-system including a plurality of partitions and operating systems and a virtualization layer, each partition running its own operating system and having assigned its own partition identifier (partition ID), and at least one I/O emulation entity connected to the processing sub-system through a bus and connected to a network to which is connected at least one computer that hosts at least one remote I/O peripheral, the at least one I/O emulation entity being adapted to execute an I/O-emulation transaction for any of the operating systems in accordance with that operating system's partition-ID. Further features are described hereinbelow.
The present invention will be understood and appreciated more fully from the following detailed description taken in conjunction with the appended drawings in which:
Reference is now made to
The virtualized system 30 may include a processing sub-system 32 that includes a plurality of operating systems (OS) 34 and a virtualization layer 36. Each operating system 34 is virtually partitioned from the other OS's by running in its own partition, and each OS is assigned its own partition identifier (partition ID). As opposed to the prior art solution of
The way any of the operating systems 34 accesses its virtual I/O sub-system and performs a virtual I/O transaction is through the I/O emulation entity 40. The I/O transaction needs an associated partition-ID to access its virtual I/O sub-system. This ID may be supplied by the partition itself (i.e., by the operating system itself), by the virtualization layer 36, or inferred from the context of the I/O emulation transaction. The I/O emulation entity 40 executes an I/O-emulation transaction per partition, which has an associated partition-ID.
I/O emulation entity 40 may be implemented as a hardware device, or as a programmable device using its own CPU (central processing unit) or an external CPU, e.g., the main CPU, or a software product. For example, I/O emulation entity 40 may be software that performs (or a computer program product that includes instructions for) emulation of I/O transactions in the virtualized system 30, including but not limited to emulation of I/O transactions in any of virtual OS's 34. One non-limiting example of emulating I/O transactions in the virtualized system 30 may include recording the remote I/O address and any data provided in connection with accessing this address, providing the access address and data to a device emulator, analyzing the access address and data against pre-established information defining a plurality of operating modes of a remote I/O device to identify an intended operating mode of the remote I/O device, providing an emulation of the intended operating mode, and enabling the device emulator to carry out that emulation.
Protection and address translation tables can be added to virtualized system 30, thereby adding further flexibility in managing the system. For example, referring to
It is noted that in the prior art solution of
The description of the present invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.