Virtual machine scramble time

T

Tom Anderson

Hi,

This is not about java, but if we define "java programming" as "things
that java programmers do", then it's about java programming.

I've been doing an increasing amount of work (at a distance - i'm not the
VM Guy) with virtual-machine based systems. Virtual developer boxes
accessed from dumb-ish desktops, virtual server farms for test and
acceptance environments, that sort of thing.

One thing that's struck me is that we don't make much use of the ability
VMs give you to have disposable, single-use machines. I would like to do
this more, for things like nightly builds, or when rebuilding acceptance,
or even just giving developers a fresh machine every week or day or
something.

So, assume that you have a template or a non-running cloneable image, with
everything you need installed, so you just need to get a fresh machine
based on that template/image booted and happy. How long, in people's
experience, does it take to do that, to go from a standing start to a
fully operational virtual machine that you can start work on?

How much manual work is required? How hard would it be to script or work
around?

How do various VM systems compare in this respect?

Thanks,
tom
 
A

alexandre_paterson

I've been doing an increasing amount of work (at a distance - i'm not the
VM Guy) with virtual-machine based systems. Virtual developer boxes
accessed from dumb-ish desktops, virtual server farms for test and
acceptance environments, that sort of thing.

I setup this kind of thing myself for a few developers.

So, assume that you have a template or a non-running cloneable image, with
everything you need installed, so you just need to get a fresh machine
based on that template/image booted and happy. How long, in people's
experience, does it take to do that, to go from a standing start to a
fully operational virtual machine that you can start work on?

If you don't already have a copy then it's the time that the copy
takes + the time for the OS (and apps) to boot.

Say to copy a 3.2 GB *compressed* VMWare VM:

....# time cp /public/xpwareXPSP3/* .

real 2m18.078s

It depends where you're image is, its size, the
speed of the network/harddisk, etc.

Then the time to boot Windows, start IntelliJ IDEA and, say,
checkout from the VCS.

How much manual work is required? How hard would it be to script or work
around?

Really not much work: it's just about copying the images and starting
them.

Scripts can be made to pre-fetch images, so it really comes down to
the
time it takes booting the VMs.

It depends on your Script-fu :)

How do various VM systems compare in this respect?

Copying an image shall take basically the same time no matter
if it's, say, a VMWare, a Xen or a KVM image.

With so many choices out there it's hard to say what is best.

We use both Xen (for virtualizing the servers) and VMWare
(for virtualizing the desktops), for I set that up years ago
(2 years or so) and haven't looked back since.

If I was to setup all this today I'd probably use KVM
and/or Sun's VirtualBox (which looks really nice, supporting
VMWare image, working on OS X, etc. but we don't know what
Oracle's going to do with VirtualBox).

Do you want to go proprietary or not?

Do you want para-virtualization or hardware-virtualization?

Do you want "seamless" integration of the virtualized
system's windows with your destkop?

Do you need to be able to easily mount your image and
mess with the files inside (for example to run tripwire
files security checks)?

Do you need video hardware acceleration?

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


PS: As a Java developer, in addition to "disposable" virtualization
my "tricks of the trade" involve using several "disposable" user
accounts on my main workstation :)

PPS: If only OS X's licence allowed it to be virtualized... But, no,
we have
to deal with a Mac Mini running 10.4, another 10.5 soon another
running
Snow Leopard, etc. :((((
 
J

John B. Matthews

Tom Anderson said:
This is not about java, but if we define "java programming" as
"things that java programmers do", then it's about java programming.

I've been doing an increasing amount of work (at a distance - i'm not
the VM Guy) with virtual-machine based systems. Virtual developer
boxes accessed from dumb-ish desktops, virtual server farms for test
and acceptance environments, that sort of thing.

One thing that's struck me is that we don't make much use of the
ability VMs give you to have disposable, single-use machines. I would
like to do this more, for things like nightly builds, or when
rebuilding acceptance, or even just giving developers a fresh machine
every week or day or something.

So, assume that you have a template or a non-running cloneable image,
with everything you need installed, so you just need to get a fresh
machine based on that template/image booted and happy. How long, in
people's experience, does it take to do that, to go from a standing
start to a fully operational virtual machine that you can start work
on?

How much manual work is required? How hard would it be to script or
work around?

I don't know, but I've copied the same Parallels image running Linux
onto several Windows XP and Mac OS X boxes. I maintain the images but
not the hosts. The Macs were ready the same day, and I used one for
development while running the VM; the Windows boxes took several days
due to network & security requirements. Both prefer gobs of memory.
How do various VM systems compare in this respect?

Sorry, I've only used Parallels: <http://www.parallels.com/>.
 
A

Arved Sandstrom

Tom said:
Hi,

This is not about java, but if we define "java programming" as "things
that java programmers do", then it's about java programming.

I've been doing an increasing amount of work (at a distance - i'm not
the VM Guy) with virtual-machine based systems. Virtual developer boxes
accessed from dumb-ish desktops, virtual server farms for test and
acceptance environments, that sort of thing.

One thing that's struck me is that we don't make much use of the ability
VMs give you to have disposable, single-use machines. I would like to do
this more, for things like nightly builds, or when rebuilding
acceptance, or even just giving developers a fresh machine every week or
day or something.

So, assume that you have a template or a non-running cloneable image,
with everything you need installed, so you just need to get a fresh
machine based on that template/image booted and happy. How long, in
people's experience, does it take to do that, to go from a standing
start to a fully operational virtual machine that you can start work on?

How much manual work is required? How hard would it be to script or work
around?

How do various VM systems compare in this respect?

Thanks,
tom
In the work environment I've been in for some years now a lot of the
developers use Mac OS X, and most of them have Parallels. I'm very happy
with this for the occasions where I need Linux (not so often) or Windows
(often enough). Quick to set up off standard ISO images, and extremely
reliable (a typical Windows XP Pro VM might have Oracle SOA suite,
Oracle XE, SQL Developer, and JDeveloper, and runs just fine, and I've
done a lot of work where I'm accessing J2EE servers on the Mac OS X side
on my laptop from client apps (including browsers) on the VM side...no
problems.

Like John Matthews said, you do need gobs of memory, and Parallels VMs
plus Parallels itself need some careful memory finetuning for best
performance.

We also use a lot of Solaris containers. You can get these with Open
Solaris as well. All of the multi-user (non-developer) servers are in
Solaris containers, and while it's not my responsibility to set these up
I do know it isn't a major chore...once you've done a few.

AHS
 
M

Mike Schilling

Tom said:
So, assume that you have a template or a non-running cloneable
image,
with everything you need installed, so you just need to get a fresh
machine based on that template/image booted and happy. How long, in
people's experience, does it take to do that, to go from a standing
start to a fully operational virtual machine that you can start work
on?
How much manual work is required? How hard would it be to script or
work around?

How do various VM systems compare in this respect?

The only one I've used (and that very briefly) is Microsoft Virtual
PC. That allows you to save the current state of memory in addition
to the system image, so that on the next run there's no need to boot
the OS: in well under a minute you're up and running.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,483
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top