全部博文(343)
分类: LINUX
2009-01-22 15:04:29
Xen HVM uses the AMD SVM (Pacifica) and (Vanderpool) hardware CPU virtualization.
Both and now utilize the same VTX technologies in their products. Based on blogs I have read, VMWare added VTX support somewhere around or just before VMWare Workstation 5.5, and Parallels has supported Core-Duo Intel Macs since their beginning. No, I don't know if either supports AMD's SVM quite yet.
Aside from these products, I am currently unaware of anything else that use today's modern CPU SVM or VTX features.
VMWare Workstation and Server normally runs alongside a host OS, inserting a "vmmon" driver into Ring0. VMWare ESX has its own hypervisor, much like Xen, though you do need to embrace RedHat for their management harness. Hardware is emulated virtually in software (IDE, SCSI via Buslogic/LSI, Network via Pcnet32/VMX, etc). Guest OSes talk to these drivers as if they were running on a physical machine.
Xen is a small hypervisor that "paravirtualizes" CPU scheduling and assigns hardware resources to virtual "domains". The first domain, dom0, is responsible for talking to your PC's hardware directly. Each "guest" domain, or domU, can only talk directly to hardware if it has been configured to allow such access. Typically, a domU only has "frontend" drivers that talk to resources exposed by a "backend" typically from dom0. Things like virtual block devices and virtual network interfaces are handled by native Xen aware device drivers in such paravirtualized domUs.
Xen can also run in HVM mode. This means that instead of paravirtualized devices, a real set of virtual hardware is exposed to the domU to use real device drivers to talk to. Much like VMWare.
Xen initially called the HVM subsystem "VMX", but quickly abstracted it when SVM support was added. If you see mention of VMX in Xen mailing list archives, related that to the newer HVM layer.
HVM hardware is emulated via a patched "device manager" (qemu-dm) daemon running as a backend in dom0. There is no SCSI emulation, only PIIX3 IDE (with some rudimentary PIIX4 capabilities), Cirrus Logic or vanilla VGA emulated video, RTL8139 or NE2000 network emulation, PAE, and somewhat limited ACPI and APIC support. Basically the same devices available in QEMU 0.8.2 today (with a number of patches for performance, etc).
For our initial deployment, we are testing a number of AMDX2 capable motherborards. Only the AM2 and F socket based dies appear to offer SVM.
My next post will detail the conversion process for migrating VMWare images to HVM.