Question about paravirtualisation support and about linux-virtual

Liam Proven lproven at gmail.com
Mon Oct 18 15:34:35 UTC 2010


On 18 October 2010 14:49, Ioannis Vranos <cppdeveloper at ontelecoms.gr> wrote:
> On Mon, 2010-10-18 at 14:40 +0100, Liam Proven wrote:
>> On 18 October 2010 14:23, Ioannis Vranos <cppdeveloper at ontelecoms.gr> wrote:
>> > Hi all,
>> >
>> > I have 2 questions.
>> >
>> > 1. Does anyone know if there is VMware paravirtualisation support in
>> > recent Ubuntu releases?
>> >
>> >
>> > 2. Also in Synaptic, there are available linux images in the style:
>> >
>> > linux-image-2.6.32-23-virtual
>> >
>> > with the description:
>> >
>> >
>> > Linux kernel image for version 2.6.32 on x86/x86_64
>> >
>> > This package contains the Linux kernel image for version 2.6.32 on
>> > x86/x86_64.
>> >
>> > Also includes the corresponding System.map file, the modules built by
>> > the
>> > packager, and scripts that try to ensure that the system is not left in
>> > an
>> > unbootable state after an update.
>> >
>> > Supports Virtual processors.
>> >
>> > Geared toward virtual machine guests.
>> >
>> > You likely do not want to install this package directly. Instead,
>> > install
>> > the linux-virtual meta-package, which will ensure that upgrades work
>> > correctly, and that supporting packages are also installed.
>> >
>> > Canonical provides critical updates for linux-image-2.6.32-23-virtual
>> > until October 2011.
>> >
>> >
>> >
>> >
>> > and the metapackage linux-virtual has the following description:
>> >
>> >
>> > Complete Linux kernel for virtual machines
>> >
>> > This package will always depend on the latest complete Linux kernel
>> > available
>> > for virtual machines.
>> >
>> >
>> > Are these about paravirtualisation support, and does this support
>> > include VMware?
>>
>> Paravirtualisation is a method of running an OS for a non
>> Popek-and-Golderberg instruction set under a hypervisor. It modifies
>> the guest OS so that it does not use any privileged instructions
>> needed by the host OS.
>>
>> In practice, this means that these are kernels for Xen VMs running on
>> host hardware that does not support Intel or AMD hardware
>> virtualisation.
>>
>> It's nothing to do with VMware at all.
>
>
> Thank you for your answer, however why Xen isn't mentioned then? There
> is not Xen virtualisation only.
>
> There are KMS, VirtualBox, VMware, and others too.
>
> How do you know it is only for Xen?
>
>
>
> --
> Ioannis Vranos
>
> http://www.cpp-software.net

I suggest you do some background reading if you want to fully
understand the differences.

The original x86-32 architecture was and is not fully virtualisable.
This is because it does not meet the Popek & Goldberg requirements for
virtualisation.

http://en.wikipedia.org/wiki/Popek_and_Goldberg_virtualization_requirements

What it means is that certain x86 instructions cannot be run safely
inside a VM. They will break the VM by interacting with the host
machine.

There are 3 possible ways around this:
[1] avoid using the unsafe instructions;
[2] trap the unsafe instructions and emulate them in a software interpreter;
[3] extend the x86-32 (and later x86-64) instruction sets so that the
unsafe instructions can be trapped in hardware

All are difficult to do. Xen did #1. It did not fully virtualise
ordinary x86 OSs. They needed to be modified so as not to use the
unsafe instructions. This can be done for FOSS OSs but not for
commercial ones. It is not "full" virtualisation: it couldn't run
unmodified OSs. Thus what it did is called "paravirtualisation":
http://en.wikipedia.org/wiki/Paravirtualisation

Xen came first but because of the limitations it was not that widely
used and was mainly an academic research tool.

Then the people behind VMware worked out how to do method #2. VMware
the product and VMware the company was the result. Once someone had
done it, others worked out how. This is not uncommon. If a programmer
works out a clever algorithm for doing something either very very hard
or previously considered impossible, others, merely from knowing it
*can* be done, can work out *how* it was done without ever seeing the
source code.

E.g. rsync - syncing large files over slow links while only sending
the differences. MS now has equivalent (but of course incompatible)
code.

E.g. PartitionMagic - repartitioning PC disks on the fly while full of
data. PowerQuest did it, but once it had been seen to have been done,
others did the same: Acronis, Gparted and other tools.

In this instance - software virtualisation of a non-P&G compliant ISA
- Connectix copied it with VirtualPC, later bought by Microsoft.
Innotek copied it (coming up with its own, clever, slightly different
way) to create VirtualBox, later bought by Sun, later bought by
Oracle.

Seeing that virtualisation was a popular thing, Intel added #3,
*hardware* virtualisation, to the x86-32 architecture. Codename
"Vanderpool", this is now called Intel VT.

http://en.wikipedia.org/wiki/Vanderpool#Intel_Virtualization_Technology_for_x86_.28Intel_VT-x.29

AMD also came up with its own, slightly more efficient but
incompatible method, codenamed "Pacifica", now called AMD-V.

http://en.wikipedia.org/wiki/AMD-V#AMD_virtualization_.28AMD-V.29

If Xen or VirtualBox finds that the CPU supports Intel or AMD VT, then
both will (optionally) use it. This means Xen becomes more capable and
it can do full virtualisation as well as paravirtualisation.

I do not know if VMware can use it; I have read conflicting reports.
The company claims its software method is faster anyway and has good
figures to prove it.

http://www.vmware.com/pdf/asplos235_adams.pdf
(This is not a light read.)

I also do not know if VMware supports paravirtualisation. I cannot see
why it could, as its own method is superior and more capable, but I
don't know. I don't wish to contradict the other poster who seemed to
me to indicate that it could.

If the kernel images for paravirtualisation work in your VM and the
performance is good, then use them, by all means.

-- 
Liam Proven • Info & profile: http://www.google.com/profiles/lproven
Email: lproven at cix.co.uk • GMail/GoogleTalk/Orkut: lproven at gmail.com
Tel: +44 20-8685-0498 • Cell: +44 7939-087884 • Fax: + 44 870-9151419
AIM/Yahoo/Skype: liamproven • MSN: lproven at hotmail.com • ICQ: 73187508




More information about the ubuntu-users mailing list