# VMware



## SuperMiguel (Jun 9, 2009)

Has anyone tried to install VMWare in freebsd? does 64bit works? how is this installation done? or im better off using virtualbox?


----------



## phoenix (Jun 9, 2009)

The last working version of VMWare for FreeBSD is VMWare Workstation 3, an extremely old, no-longer supported version.

Currently, the only working virtualisation software for a FreeBSD host is QEmu.  Even with the kqemu module, it's not a speed demon.

Virtualbox support is being worked on, and should, hopefully, be ready for use soon.

As for installing FreeBSD into a VM, it works fine with Xen (full HVM), KVM, QEmu, VirtualBox, VMWare Server/ESXi/Workstation, Parallels, Hyper-V, Virtual PC, and so on.  Basically, anything that supports full system emulation or hardware-assisted virtualisation.  Paravirtualisation support is not yet added to FreeBSD (ie Xen).


----------



## SuperMiguel (Jun 9, 2009)

well im actually trying to install Windows Server 2003 on Freebsd.. Like i have FreeBSD running but i want to install Windows server 2003 on it


----------



## DrJ (Jun 9, 2009)

VMware 3.2.1 does work, but it is terribly inconvenient because it only works on single-core or -cpu systems.  So if you have more than one core or cpu, you have to turn off all the others.  It is also 32-bit only.

As phoenix said, right now the only practical solution is qemu/kqemu.  I find them terribly slow to the point where they are useless on my old hardware.  

VBox is coming, but there are still some rough spots.  For example, loading the kernel module any time after the initial installation locks my computer solid, and some others see the same thing.  Development is pretty rapid, though; I'd expect a usable port to hit the tree in a month or two.


----------



## SuperMiguel (Jun 9, 2009)

umm that sucks


----------



## SuperMiguel (Jun 9, 2009)

so im probably better off installing vmware esxi. And installing all my machines in there


----------



## DrJ (Jun 9, 2009)

If you need it now, that is probably the best solution.  Note: I've not used esxi.


----------



## SuperMiguel (Jun 9, 2009)

well im going to be taking the MCSA test in few weeks and i wanted to refresh my microsoft stuff, but dont want to get rid of FreeBSD.. So not sure what to do..


----------



## DrJ (Jun 9, 2009)

Have another computer, or a hundred or two dollars for a used one?  

For that sort of refreshing, you don't need much horsepower.  Heck qemu/kqemu would probably be good enough.  When I said that it was useless on my hardware, that was for doing routine office sorts of work on an old 32-bit Athlon dual CPU box.  For a systems refresher you probably don't need as much horsepower, and chances are good that you have more recent hardware than I have.


----------



## SuperMiguel (Jun 9, 2009)

well mine is a x2 6000+ 8gb of ram


----------



## DrJ (Jun 9, 2009)

That's about twice the speed of mine (it would roughly be a 3400 on the AMD scale).  My computer has enough memory so that it is not an issue.  

I'd suggest you give qemu/kqemu a try.  It won't be fast, but it should be good enough for what you want to do.  I assume that's mostly configuration and testing sorts of things, and if that's right, responsiveness should not be that big a deal.  I should add that qemu is pretty stable.

There is a couple of good tutorials for setting it up on the bsdnexus forums in the RTFM section.  There probably are others.


----------



## hedwards (Jun 10, 2009)

DrJ said:
			
		

> If you need it now, that is probably the best solution.  Note: I've not used esxi.


That's probably going to be the best, or really anything that installs to bare metal. Mainly because performance is probably going to suck big time if you're trying to run on OS on top of another one. For some applications that might be acceptable, but in my, admittedly little, experience it would have to either be a very simple program or a highly optimized VM.

I've been meaning to get around to testing esxi, but haven't gotten around to it, at very least it should run both OSes more or less full speed especially on computers with  multicore/multiprocessors.


----------



## dburkland (Jun 10, 2009)

I currently run ESXi at home (core 2 quad, 8GB of RAM, Perc 5i) and it runs a couple Server 2008 vms along with a few FreeBSD 7.2 x64 VMs just fine. I am in the process though of consolidating my FreeBSD vms into 1 using jails


----------



## knotabot (Jun 18, 2009)

Does ESXi bare metal need support from BIOS enabling of AMD-v or Intel-VT?
Otherwise defaults to a 32bit version?

How XenServer 5 works, you must enable AMD-v or Intel-VT in the BIOS.
If your hardware doesn't support enabling in the BIOS then XenServer uses KVM not bare metal.
This limits guests to 32bit modified guests only. Which means that FreeBSD wouldn't work running in guest.
Full support for 32bit Windows though, I think.


----------



## SuperMiguel (Jun 18, 2009)

knotabot said:
			
		

> Does ESXi bare metal need support from BIOS enabling of AMD-v or Intel-VT?
> Otherwise defaults to a 32bit version?



it does suppot 64bit os


----------



## phoenix (Jun 18, 2009)

You're confusing your VM technologies and terms.



			
				knotabot said:
			
		

> Does ESXi bare metal need support from BIOS enabling of AMD-v or Intel-VT?
> Otherwise defaults to a 32bit version?



VMWare uses software emulation, binary patching in memory, and a host of other tricks to allow for very fast virtual machines, on systems without hardware virtualisation support.  I don't know for sure, but I believe some of the newer VMWare software will also use hardware virtualisation (VMX/SVM) if it is available.

Thus, you can run VMWare software (including ESX/ESXi) on pretty much any CPU, and be able to run pretty much any OS (including FreeBSD and Windows) in the VMs.



> How XenServer 5 works, you must enable AMD-v or Intel-VT in the BIOS.  If your hardware doesn't support enabling in the BIOS then XenServer uses KVM not bare metal.



Not quite.  XEN and KVM are two very different virtualisation packages, that have nothing in common with each other.

If you can modify the guest OS such that it knows it is running in a Xen VM, then you can run it using "paravirtualisation" mode.  This allows you to use CPUs without hardware virtualisation support, and get close-to-native performance.  Currently, Linux, NetBSD, and Solaris are the only OSes (that I know of) that can run in a paravirtul Xen VM.

If you can't modify the guest OS (like Windows and FreeBSD), then you cannot run it in a paravirtualised VM.  In that case, you have to have a CPU that supports hardware virtualisation.  With hardware support, you can create "hardware-assisted VMs", or HVMs, that allow you to run pretty much any OS.

KVM is another, separate virtualisation software, that requires hardware virtualisation support in the CPU.  This also allows you to create HVMs, where you can run pretty much any OS.



> This limits guests to 32bit modified guests only. Which means that FreeBSD wouldn't work running in guest.
> Full support for 32bit Windows though, I think.



FreeBSD runs just fine in Xen and KVM, when you have hardware virtualisation support in the CPU.  So does Windows.  32-bit and 64-bit.

FreeBSD does not yet run in Xen in paravirtual mode, on CPUs without hardware virtualisation support.  There has been several attempts to make it work, some more successful than others.  And I believe Kip Macy is trying to get things ready to be included in FreeBSD 8.0.

(I've successfully run 32-bit and 64-bit FreeBSD 6.x and 7.x in Xen HVMs and in KVM HVMs.  Runs just fine.  I've also run 32-bit Windows XP and 32-bit and 64-bit Windows 7 RC1 in KVM HVMs.)


----------



## SuperMiguel (Jun 19, 2009)

ummm how do KVm run in freebsd? i tough kvm was from linux so i guess it needs to be ported?


----------



## knotabot (Jun 19, 2009)

phoenix said:
			
		

> XEN and KVM are two very different virtualisation packages,


For XenServer, that is how I understand it from what I have read.
I will have to review what I read and reply with links to the info.

Xen= Open source. Has version 3.x.x

XenServer= Closed Source. Operated by Citrix version 5.x (based on Xen opensource).

Documentation for one does not equal documentation for other.
By KVM I mean Kernel Virtualization not the product KVM.

With XenServer, If not enabled in BIOS of hardware V or VT, defaults to kernel virtualization, that limits to modified 32bit OS's and Windows 32bit.

Hope I explained a little better. So many acronyms, so little standardization. It's a virtual cornicopia of cross information contamination.



			
				phoenix said:
			
		

> You're confusing your VM technologies and terms.


I would like to thank Citrix for helping me to appear confused for terminology.


----------



## phoenix (Jun 19, 2009)

Xen itself is opensource.  Citrix uses Xen to create their XenServer products, which is really nothing more than Xen with some nice management GUIs.

On a CPU without hardware virtualisation, you can run 32-bit and 64-bit Linux, NetBSD, and Solaris.  This is done using paravirtualisation.  We run all our Xen PVMs using 64-bit Linux (dom0 and domU).

On a CPU with hardware virtualisation, you can run pretty much any 32-bit or 64-bit OS.

So long as you have a 64-bit CPU, and use a 64-bit Xen install, then you can run either 32-bit or 64-bit virtual machines.  All that matters is the Xen install.  Doesn't matter if the CPU has hardware virtualisation or not.

I have no idea what you mean by "kernel virtualisation".


----------



## phoenix (Jun 19, 2009)

SuperMiguel said:
			
		

> ummm how do KVm run in freebsd? i tough kvm was from linux so i guess it needs to be ported?



Currently, you don't.  KVM is a Linux-only solution.  However, there is a project underway to port KVM to FreeBSD.  I think it's stalled right now, though.

The only really usable, viable virtualisation software for FreeBSD hosts, right now, is Qemu (for running full OSes) and jails (for running multiple FreeBSD userlands on a single kernel).  VirtualBox is almost ready, though.


----------



## foo_daemon (Jun 19, 2009)

phoenix said:
			
		

> VirtualBox is almost ready, though.



I'm confused as to why you say it's _almost_ ready.  It has been committed to the ports tree, the guest additions compile and work, and I use it on i386 7.2-PRE (PCBSD 7.1) with minimal problems.


----------



## DrJ (Jun 19, 2009)

There still are wide-spread kernel panic problems on loading the VBox kernel module.  Most are on -CURRENT, but I have them on 7-STABLE too.  So while it is in the ports tree, it really is in the late debugging stage.

It seems to work well for those who do not have the kernel panic on kldload issue.


----------



## knotabot (Jun 20, 2009)

> Xen provides fast, secure, open source virtualization that allows multiple operating system instances to run as Xen Virtual Machines or VMs on a single physical x86 computer. Xen supports *modified guest operating systems* using a technique known as _paravirtualization_, which requires modifying the operating system to run on Xen, but offers near-native performance. Paravirtualized operating systems "know" that they are virtualized. Xen also supports *unmodified operating systems* using processor extensions from Intel (VT) and AMD (AMD-V).


1.3.1. Xen: the engine that powers XenServer



> HVM: a mode in which unmodified OS kernels run with the help of virtualization support in the hardware.
> PV: a mode in which specially modified "paravirtualized" kernels run explicitly on top of a hypervisor without requiring hardware support for virtualization.


Xen Server 5.0 Documentation: Section 3.4.1

From the above info, if I understand it correctly, you can not run an unmodified kernel of an OS in Xen Server if you do not have Intel-VT or AMD-V enabled in BIOS.

Back to my original question; Does ESXi function in a similar manner by limiting non HVM, a.k.a. paravirtualization, to modified kernels?

Also,

I have a Xen Server thread in OffTopic.


----------



## phoenix (Jun 22, 2009)

AFAIK, you can run (pretty much) any OS in a VMWare VM, regardless of whether it's on VMWare Workstation, VMWare Server, ESX, ESXi, etc.

On CPUs without hardware virtualisation support, VMWare uses a technique known as "binary patching" where they "rewrite" bits of the OS in memory, to make it work.  They also do a lot of hardware emulation, to make it seems like the guest is running on a real, separate, physical machine.  For Windows and Linux guests, with all the vmware-tools installed, they get very close to native performance.

I believe, in the past year or so, they've added support for using the hardware virtualisation support in CPUs to provide extra featuers.

But, VMWare has never required them, and runs just fine without them.


----------



## adamk (Jun 22, 2009)

foo_daemon said:
			
		

> I'm confused as to why you say it's _almost_ ready.  It has been committed to the ports tree, the guest additions compile and work, and I use it on i386 7.2-PRE (PCBSD 7.1) with minimal problems.



Run -CURRENT with INVARIANTS enabled in your kernel, and you'll get a kernel panic when using VirutalBox.

In addition, I would point out that bridge networking doesn't for VirtualBox on FreeBSD (but works fine on Linux).

Adam


----------



## SuperMiguel (Jun 22, 2009)

phoenix said:
			
		

> Currently, you don't.  KVM is a Linux-only solution.  However, there is a project underway to port KVM to FreeBSD.  I think it's stalled right now, though.
> 
> The only really usable, viable virtualisation software for FreeBSD hosts, right now, is Qemu (for running full OSes) and jails (for running multiple FreeBSD userlands on a single kernel).  VirtualBox is almost ready, though.



Qemu will run any OS but it is really slow correct?


----------



## phoenix (Jun 24, 2009)

Correct.  Qemu emulates a full PC, right down to the BIOS, so you can run just about anything in there.

Qemu by itself will give you something like 20-30% of native performance.  Adding the kQemu kernel module will give you something like 30-50% of native performance.  (Numbers are totally made up to show the relative performance.)


----------



## DrJ (Jun 24, 2009)

phoenix said:
			
		

> Adding the kQemu kernel module will give you something like 30-50% of native performance.  (Numbers are totally made up to show the relative performance.)



This really depends on the benchmark one uses.  Qemu/kQemu has pretty decent CPU and memory performance, on the order or 80% to 90% of native.  IO of all kinds is just terrible.  Well, disk performance is OK, but Ethernet and especially video performance just plain stink.

If you are interested, I have posted a series of benchmarks that I did for the old VMware, Qemu/kQemu and native Windows on bsdnexus.  These are more difficult to perform than you might imagine, because not all the video modes are supported in the various VMs, and that tends to terminate most common Windows benchmarking programs.


----------

