Discussion:
VMWare Workstation Designer's Guide
(too old to reply)
John Doe
2004-07-09 18:27:37 UTC
Permalink
I'm working out some strategies for "condensing" the deployment and
testing under VMWare, specifically with Windows guest operating systems,
and will be putting this together in a "Designer's Guide" of sorts.

But I have some questions...

Lets say for example, that we have Win98, NT4, 2000, XP, and 2003 VMWare
guest images, all in their own self-contained image files. These take up
roughly 15GiB of space. Each image has its own copy of Office, Acrobat,
Visual C++, and other packages within it. These are all installed in an
identical fashion in each VM, and are all patched and packaged so that
they install in similar fashions. These core packages NEVER change while
inside the VM, other than a few changes to some individual tool options.

Is there a better way to express these packages across all VMs, without
doing an install of each, in each VM? It takes up a considerable amount of
space in each VM, which can be better utilized to make more test images
and saved VM sessions.

I thought about creating a "D:\" drive which each of these guest systems
can mount at startup time. On D:\Program Files will reside the Office,
Acrobat, Visual C++, etc. environments. I realize I'll have to install
these packages inside each guest, overwriting the existing data on D:\
already (to register the packages and put them in the Registry), but the
space used by these will be markedly decreased.

So now the question becomes..

1.) Can I mount D:\ (a virtual vmware disk image) on more than one
running guest image at the same time? (They will not be
written to, only read from by the guest OS itself)

2.) Is there an easier way to do what I'm trying to do here?

Are there any other space/speed/memory optimizations that anyone has come
up with to speed up VM access with Windows guest operating systems? We've
noticed a marked speedup by turning off swap entirely inside the VM, and
disabling some of the "hardware-specific" optimizations as well.

Of course, I'll document this all in the Designer's Guide when I'm done.

Thanks in advance for the help.
Chris Cox
2004-07-09 19:12:13 UTC
Permalink
John Doe wrote:
...
Post by John Doe
Lets say for example, that we have Win98, NT4, 2000, XP, and 2003 VMWare
guest images, all in their own self-contained image files. These take up
roughly 15GiB of space. Each image has its own copy of Office, Acrobat,
Visual C++, and other packages within it. These are all installed in an
identical fashion in each VM, and are all patched and packaged so that
they install in similar fashions. These core packages NEVER change while
inside the VM, other than a few changes to some individual tool options.
Win98 != NT4 != W2K != XP != W2K3

And you'll find that in general, there are subtle differences
in the installs, especially of any Microsoft product, across those
disparate operating systems.
Post by John Doe
Is there a better way to express these packages across all VMs, without
doing an install of each, in each VM? It takes up a considerable amount of
space in each VM, which can be better utilized to make more test images
and saved VM sessions.
You might be able to automate the install into each, but a native
install would have to be done on each in order to maintain
integrity.

I wish you well in your efforts to reduce space. However the
problem is getting worse over time and not better with regards
to the Microsoft based OS's.
Helmut Wollmersdorfer
2004-07-09 23:27:39 UTC
Permalink
Post by Chris Cox
I wish you well in your efforts to reduce space.
In my opinion, saving space in a testing environment is a contradiction.
As I use VMware for testing, I want to have one and the same OS twice
or more installed with different options, e.g. an english and a german
installation of office, or a debian with kernel 2.4 and one with kernel
2.6. As tester I want well defined preconditions. Save space? Why? Buy
an additional 160 GB harddisk and be happy.

Helmut Wollmersdorfer
Michael Geary
2004-07-09 20:22:07 UTC
Permalink
Post by John Doe
Lets say for example, that we have Win98, NT4, 2000, XP, and 2003 VMWare
guest images, all in their own self-contained image files. These take up
roughly 15GiB of space. Each image has its own copy of Office, Acrobat,
Visual C++, and other packages within it. These are all installed in an
identical fashion in each VM, and are all patched and packaged so that
they install in similar fashions. These core packages NEVER change while
inside the VM, other than a few changes to some individual tool options.
Is there a better way to express these packages across all VMs, without
doing an install of each, in each VM? It takes up a considerable amount of
space in each VM, which can be better utilized to make more test images
and saved VM sessions.
I thought about creating a "D:\" drive which each of these guest systems
can mount at startup time. On D:\Program Files will reside the Office,
Acrobat, Visual C++, etc. environments. I realize I'll have to install
these packages inside each guest, overwriting the existing data on D:\
already (to register the packages and put them in the Registry), but the
space used by these will be markedly decreased.
No, that won't work at all. You have to install your applications separately
for each OS.
Post by John Doe
So now the question becomes..
1.) Can I mount D:\ (a virtual vmware disk image) on more than one
running guest image at the same time? (They will not be
written to, only read from by the guest OS itself)
No, you can't do that unless you like disk corruption. You can achieve the
same effect with normal Windows network file sharing. Have each of your VMs
map a network drive to a shared folder on a server somewhere. This is safe
and reliable. It still won't let you do shared software installations, but
you may find it useful for other purposes.

-Mike
Spiro Trikaliotis
2004-07-10 10:10:29 UTC
Permalink
Hello,

["Followup-To: vmware.guest.windows2000" set.]
Post by John Doe
I thought about creating a "D:\" drive which each of these guest
systems can mount at startup time. On D:\Program Files will reside the
Office, Acrobat, Visual C++, etc. environments. I realize I'll have to
install these packages inside each guest, overwriting the existing
data on D:\ already (to register the packages and put them in the
Registry), but the space used by these will be markedly decreased.
I have done this before on a mixed Win 95/NT4 installation with Offcice
95, and it worked. As you say, you have to install each and every
application on every OS version, but they can share the binaries.
Post by John Doe
1.) Can I mount D:\ (a virtual vmware disk image) on more than one
running guest image at the same time? (They will not be written to,
only read from by the guest OS itself)
No, you can't do this simultaneosly. Anyway, it might be possible to use
the same approach for this drive as described in the started starting at

http://groups.google.com/groups?selm=bquf40%24t0s%241%40london.vmware.com

(MsgId: <bquf40$t0s$***@london.vmware.com>, or for OE:
<news:bquf40$t0s$***@london.vmware.com>)

to use a non-writable "base" partition, and only the differences will be
stored for each OS version.
Post by John Doe
2.) Is there an easier way to do what I'm trying to do here?
Yes, I believe. I remember that some of these products allow (or
allowed?) for a "network install" or a "CD based install". In these
settings, only the minimal amount of data is copied to the local HD, and
the rest is always read from the network/CD. If you choose CD based, the
"CD" can be a network share, too.

HTH,
Spiro.
--
Spiro R. Trikaliotis
http://www.trikaliotis.net/
http://www.viceteam.org/
CBee
2004-07-12 15:27:43 UTC
Permalink
Post by John Doe
I'm working out some strategies for "condensing" the deployment and
testing under VMWare, specifically with Windows guest operating systems,
and will be putting this together in a "Designer's Guide" of sorts.
But I have some questions...
Lets say for example, that we have Win98, NT4, 2000, XP, and 2003 VMWare
guest images, all in their own self-contained image files. These take up
roughly 15GiB of space. Each image has its own copy of Office, Acrobat,
Visual C++, and other packages within it. These are all installed in an
identical fashion in each VM, and are all patched and packaged so that
they install in similar fashions. These core packages NEVER change while
inside the VM, other than a few changes to some individual tool options.
Is there a better way to express these packages across all VMs, without
doing an install of each, in each VM? It takes up a considerable amount of
space in each VM, which can be better utilized to make more test images
and saved VM sessions.
I thought about creating a "D:\" drive which each of these guest systems
can mount at startup time. On D:\Program Files will reside the Office,
Acrobat, Visual C++, etc. environments. I realize I'll have to install
these packages inside each guest, overwriting the existing data on D:\
already (to register the packages and put them in the Registry), but the
space used by these will be markedly decreased.
Good thinking. This has been done for ages on many os-es.

However, it is not possible with any Micro$oft OS after M$Dos (maybe M$Windows
3.11) since that has such a wonderfull thing called a Registry...

UP to some level it can be done with some tools. However, the registry settings
are effectively stored on C:\somewhere. Hecnce if settings in the registry
change, they must be synced over the OSes, preferably without starting the OS...

In the end, the registry files are not that well documented, binary files that
are verry hard to edit....
Post by John Doe
So now the question becomes..
1.) Can I mount D:\ (a virtual vmware disk image) on more than one
running guest image at the same time? (They will not be
written to, only read from by the guest OS itself)
2.) Is there an easier way to do what I'm trying to do here?
Sorry, no.
Post by John Doe
Are there any other space/speed/memory optimizations that anyone has come
up with to speed up VM access with Windows guest operating systems? We've
noticed a marked speedup by turning off swap entirely inside the VM, and
disabling some of the "hardware-specific" optimizations as well.
Nice. We do that in linux but we donnot do that in M$Windows since lots of stuff
depends on swapping...
Post by John Doe
Of course, I'll document this all in the Designer's Guide when I'm done.
Thanks in advance for the help.
Eric Mockler
2004-08-10 21:59:37 UTC
Permalink
Try the "run from cd" install and use iso files, that can certainly be shared among
the guests. I think your original idea would severely limit the portability of a vm
that is an inherent feature of vmware. So if you move the xp guest to another host
you would have to drag the whole D:\ drive and there goes your space savings.
Post by CBee
Post by John Doe
I'm working out some strategies for "condensing" the deployment and
testing under VMWare, specifically with Windows guest operating systems,
and will be putting this together in a "Designer's Guide" of sorts.
But I have some questions...
Lets say for example, that we have Win98, NT4, 2000, XP, and 2003 VMWare
guest images, all in their own self-contained image files. These take up
roughly 15GiB of space. Each image has its own copy of Office, Acrobat,
Visual C++, and other packages within it. These are all installed in an
identical fashion in each VM, and are all patched and packaged so that
they install in similar fashions. These core packages NEVER change while
inside the VM, other than a few changes to some individual tool options.
Is there a better way to express these packages across all VMs, without
doing an install of each, in each VM? It takes up a considerable amount of
space in each VM, which can be better utilized to make more test images
and saved VM sessions.
I thought about creating a "D:\" drive which each of these guest systems
can mount at startup time. On D:\Program Files will reside the Office,
Acrobat, Visual C++, etc. environments. I realize I'll have to install
these packages inside each guest, overwriting the existing data on D:\
already (to register the packages and put them in the Registry), but the
space used by these will be markedly decreased.
Good thinking. This has been done for ages on many os-es.
However, it is not possible with any Micro$oft OS after M$Dos (maybe M$Windows
3.11) since that has such a wonderfull thing called a Registry...
UP to some level it can be done with some tools. However, the registry settings
are effectively stored on C:\somewhere. Hecnce if settings in the registry
change, they must be synced over the OSes, preferably without starting the OS...
In the end, the registry files are not that well documented, binary files that
are verry hard to edit....
Post by John Doe
So now the question becomes..
1.) Can I mount D:\ (a virtual vmware disk image) on more than one
running guest image at the same time? (They will not be
written to, only read from by the guest OS itself)
2.) Is there an easier way to do what I'm trying to do here?
Sorry, no.
Post by John Doe
Are there any other space/speed/memory optimizations that anyone has come
up with to speed up VM access with Windows guest operating systems? We've
noticed a marked speedup by turning off swap entirely inside the VM, and
disabling some of the "hardware-specific" optimizations as well.
Nice. We do that in linux but we donnot do that in M$Windows since lots of stuff
depends on swapping...
Post by John Doe
Of course, I'll document this all in the Designer's Guide when I'm done.
Thanks in advance for the help.
Loading...