Virtual PC and SATA

charliemike

Weaksauce
Joined
Jun 13, 2005
Messages
64
I wasn't sure where to put this so feel free to move it if it's in the wrong place. I put it here because I am running a X2 3800+ system.

Here are my specs:

A64 X2 3800+
Foxconn NF4SK8AA-8KRS
2GB OCZ PC3200 (512mb x4)
Chaintech 6600GT PCIE
2 Seagate 7200.9 80GB SATA2 in RAID 0
1 Maxtor DiamondMax Plus10 250GB Hard Drive (SATA-150) 16MB Buffer
NEC 16X Dual-Layer DVDR
Windows XP Media Center w/SP2

I'm going to be doing some Virtual PC work on this PC. I work for a software company and need to test out our tools in a quasi-Enterprise environment. I don't have the RAM I want right now (going to max out at 4GB) but that's not my question.

Should I run the VPC VHDs (Virtual Hard Disks) on the RAID0 array or will the difference between the RAID0 SATA-300 and single SATA-150 be fairly insignificant?

I'm going to be running four images at a time. 1 Win2k3 DC, 1 2k3 Exchange Server, 1 Member Server with things like SQL and MIIS, and one XP Workstation. 2GB of RAM is about the bare minimum to run those images properly but I'm hoping a decently fast hard disk to host the images on will help.

Any advice anyone has is greatly appreciated.

TIA - CM
 
Why are you running 7200.9s in raid 0? Those are probably the slowest drives you could buy that are made in the last year. Seek times are terrible, buffer strategy is lacking, if they didn't have decent STR they'd be unusable.

I think you might be best off splitting up the disks and moving a pair of VMs onto each one. The VMs treat their virtual disk like it has a spindle, the closer you can get to actually having that the better. Raid 0 means both disks have to seek for every request, more or less (requests that don't cross a block boundary don't need to. But it doesn't help).

I think it'd be a good idea to put together a better machine for this. Is the company helping out with expenses on this?

 
Jeezus, I had read that the 7200.9s weren't all that bad.

I can't afford Raptors right now. No, my company won't help, unfortunately.

The Seagates are really that shitty?

Thanks for the advice.
 
They're not the bottom of the performance pile (I'd put the 7200.8s there...) but they're close. Check out SR's review of the 7200.9s. A WD drive would serve you better.

Usually I recommend staying away from the small drives in a given line, because they're not cost-effective, but I think in this case it does make sense to have more spindles, and disk space probably isn't a concern.

My remark about "build a better machine" wasn't directed at the drives, it's more about the philosophy this machine was build on. Don't get me wrong, it's a nice build, but it's still a consumer machine and not an enterprise one. Since your company isn't sponsoring this build, I can see why you'd go for this.

 
unhappy_mage said:
They're not the bottom of the performance pile (I'd put the 7200.8s there...) but they're close. Check out SR's review of the 7200.9s. A WD drive would serve you better.

Usually I recommend staying away from the small drives in a given line, because they're not cost-effective, but I think in this case it does make sense to have more spindles, and disk space probably isn't a concern.

My remark about "build a better machine" wasn't directed at the drives, it's more about the philosophy this machine was build on. Don't get me wrong, it's a nice build, but it's still a consumer machine and not an enterprise one. Since your company isn't sponsoring this build, I can see why you'd go for this.

Yeah, this is unfortunately the best I could do under the circumstances.

Thanks for the input on the Seagate drives.
 
charliemike said:
Yeah, this is unfortunately the best I could do under the circumstances.

Thanks for the input on the Seagate drives.
I wouldn't get to discouraged. Run HDtach on the drive and see what kind of numbers you get. That should tell you which drive to run it on. Or, if you can, break up the raid 0 array and have 2 vm's on 1 drive and 2 on a different drive. Depending on what you want to do you may find that you have enough performance. Though, more ram will definately help.

One thing you may want to do, or may not. :) is to run the array under the Linux version of VMware rather than the Windows Version. I believe that you'd have fewer demands on the hardware that way and so have more performance.
 
dekard said:
I wouldn't get to discouraged. Run HDtach on the drive and see what kind of numbers you get. That should tell you which drive to run it on. Or, if you can, break up the raid 0 array and have 2 vm's on 1 drive and 2 on a different drive. Depending on what you want to do you may find that you have enough performance. Though, more ram will definately help.

One thing you may want to do, or may not. :) is to run the array under the Linux version of VMware rather than the Windows Version. I believe that you'd have fewer demands on the hardware that way and so have more performance.

I hear you on Linux ... Perhaps in the near future.

Thanks for the reply and advice :)
 
charliemike said:
I hear you on Linux ... Perhaps in the near future.

Thanks for the reply and advice :)
Let us know what you end up doing... I love following projects like these..
 
charliemike said:
I wasn't sure where to put this so feel free to move it if it's in the wrong place. I put it here because I am running a X2 3800+ system.

Here are my specs:

A64 X2 3800+
Foxconn NF4SK8AA-8KRS
2GB OCZ PC3200 (512mb x4)
Chaintech 6600GT PCIE
2 Seagate 7200.9 80GB SATA2 in RAID 0
1 Maxtor DiamondMax Plus10 250GB Hard Drive (SATA-150) 16MB Buffer
NEC 16X Dual-Layer DVDR
Windows XP Media Center w/SP2

I'm going to be doing some Virtual PC work on this PC. I work for a software company and need to test out our tools in a quasi-Enterprise environment. I don't have the RAM I want right now (going to max out at 4GB) but that's not my question.

Should I run the VPC VHDs (Virtual Hard Disks) on the RAID0 array or will the difference between the RAID0 SATA-300 and single SATA-150 be fairly insignificant?

I'm going to be running four images at a time. 1 Win2k3 DC, 1 2k3 Exchange Server, 1 Member Server with things like SQL and MIIS, and one XP Workstation. 2GB of RAM is about the bare minimum to run those images properly but I'm hoping a decently fast hard disk to host the images on will help.

Any advice anyone has is greatly appreciated.

TIA - CM

Run the drives independently for the greatest performance.
The XP and the Exchange Server on one drive and the rest on the other.

If you are short on memory and want to run to all the VM at once, allocate a fix size swap file on the start of a separate drive.
 
If you can, run each virtual server on it's own drive. I'm currently only running one Windows 2003 R2 server running Citrix Presentation server 4.0 on a separate IDE hard drive on my workstation listed in my sig. I'm using the beta version of Virtual Server R2 SP1 because it actually takes advantage of VT, but you shouldn't need that with your current setup. (It really on helps with the boot and install times on windows boxes)

I allocated a full gig of ram to the virtual server and it runs great. I mainly use it for testing new apps that we're going to roll out through citrix. Eventually, I'd like to migrate some of our underused servers to virtual boxes and run 2 virtual servers on each physical server.
 
Based upon what everyone is telling me, RAID-0 is not a good idea in this case.

So, if not for this, what for then?

I probably don't understand the nuances of Virtual Machines but I can't see why DVD archiving makes sense on a RAID-0 and VM doesn't unless it's about the reads being longer ... So in a DVD archiving scenario (for backup purposes naturally) it's all about writing to the drives as fast as possible whereas VM requires reads as well, and therefore the extra time it takes to go back an forth on an array equates to lower performance?
 
Where did you get the idea that raid 0 was good for DVD archiving? :p DVDs are slow; less than 20 MB/s in all cases. A single, five-year-old disk will handle that with no problems. Someone might use raid 0 for DVD archiving to keep everything on one volume, but that'd be the only advantage in that case.

Raid 0 is good for things that need high sequential transfer rate. This means the disks don't have to seek a lot. An example of this would be capturing raw HD video to disk.

Raid 0 is *not* good for things that require seeking back and forth a lot. Running multiple machines on one volume guarantees that this will happen. If one machine asks for what it thinks is a nice, sequential transfer, and another machine does the same, the physical disks end up seeking like crazy. If they were seperate, the two machines would get the sequential transfer (and better speed!) they expected.

Why all this emphasis on seeking, you ask? Because it takes a really long time to seek. Say it's 10 ms to seek; in this time you can transfer about 500 KB on a decent disk. So asking for 64k chunks (not an unreasonable thing to do under normal circumstances) means you spend 88% of your time seeking back and forth waiting for the head to get to the right place.

 
unhappy_mage said:
Where did you get the idea that raid 0 was good for DVD archiving? :p DVDs are slow; less than 20 MB/s in all cases. A single, five-year-old disk will handle that with no problems. Someone might use raid 0 for DVD archiving to keep everything on one volume, but that'd be the only advantage in that case.

Raid 0 is good for things that need high sequential transfer rate. This means the disks don't have to seek a lot. An example of this would be capturing raw HD video to disk.

Raid 0 is *not* good for things that require seeking back and forth a lot. Running multiple machines on one volume guarantees that this will happen. If one machine asks for what it thinks is a nice, sequential transfer, and another machine does the same, the physical disks end up seeking like crazy. If they were seperate, the two machines would get the sequential transfer (and better speed!) they expected.

Why all this emphasis on seeking, you ask? Because it takes a really long time to seek. Say it's 10 ms to seek; in this time you can transfer about 500 KB on a decent disk. So asking for 64k chunks (not an unreasonable thing to do under normal circumstances) means you spend 88% of your time seeking back and forth waiting for the head to get to the right place.


It really would have been helpful for me to have taken the time and thought that through before I just installed my OS on the RAID-0 array when I was freakin out about not having my PC running ;)
 
If you're going to run 4 VMs and will use 4 GB of ram, I STRONGLY suggest you update your host to WinXP-64 bit. This is because it will be able to properly use all the 4G in your machine, otherwise XP sort of maxes out at 3G and you'll have a full useless 1G.
 
justice said:
If you're going to run 4 VMs and will use 4 GB of ram, I STRONGLY suggest you update your host to WinXP-64 bit. This is because it will be able to properly use all the 4G in your machine, otherwise XP sort of maxes out at 3G and you'll have a full useless 1G.
good point
 
not to mention swapping and any other file and disk activity is a ton faster on 64bit...

the software you use might not be 64bit but the OS is what is handling the swapping, memory, file and disk activity, and that is all 64bit (and extremely much faster when you have ALOT of files)

seeking files on xp64 (with disabled indexing service) is way faster then xp32 even with the help of the indexing.

64bit is the way of the future with servers for sure.
 
Thanks guys.

I had issues installing XP-64 due to balky raid drivers I think.

I'll have to retry in dual-boot and see what happens.
 
charliemike said:
Thanks guys.

I had issues installing XP-64 due to balky raid drivers I think.

I'll have to retry in dual-boot and see what happens.
Driver problems with xp-64 still make me twitch.. I won't use it now because I don't have a need for it. Hardcore VM work would benefit from the added ram, I know.
 
justice said:
If you're going to run 4 VMs and will use 4 GB of ram, I STRONGLY suggest you update your host to WinXP-64 bit. This is because it will be able to properly use all the 4G in your machine, otherwise XP sort of maxes out at 3G and you'll have a full useless 1G.

Nonsense... XP 32bit supports 4GB.
The gap you see at 3.5-3.6 to 4GB is due to BIOS addressing and will be present whether using XP 64bit or XP 32bit. I.e., it is a hardware limit and not an OS limit.
 
spectrumbx said:
Nonsense... XP 32bit supports 4GB.
The gap you see at 3.5-3.6 to 4GB is due to BIOS addressing and will be present whether using XP 64bit or XP 32bit. I.e., it is a hardware limit and not an OS limit.

It's too bad we can't go 1GB 1GB 1GB 512mb so I only had to buy 3 and not 4 1GB DIMMs :)
 
spectrumbx said:
Nonsense... XP 32bit supports 4GB.
The gap you see at 3.5-3.6 to 4GB is due to BIOS addressing and will be present whether using XP 64bit or XP 32bit. I.e., it is a hardware limit and not an OS limit.
Actually, if you have a decent modern board thats not present. You can access all 4 gigs. At that point the ability of xp-64 to give 4g to one program vs. a 2g limit in xp-32 makes it the superior operating system. So, more ram would be available to VMware.
 
dekard said:
Actually, if you have a decent modern board thats not present. You can access all 4 gigs. At that point the ability of xp-64 to give 4g to one program vs. a 2g limit in xp-32 makes it the superior operating system. So, more ram would be available to VMware.
But each VM is a seperate process, with its own seperate 2g limit. So unless you were going to give 2.5G to one VM and 256M to the other three, it's not a problem.

 
Note, this only applies to VirtualPC/Virtual Server. VMWare has different specs. check with their docs.

For Virtual PC
Each VM is not its own process. Underneath each VM runs in the same thread.

For Virtual Server
Each VM gets its own thread of execution.

There is a white paper at MS that describes the difference:
“Host multiprocessor support. Virtual Server scales across multiple processors on the host computer—up to 32. Each running virtual machine can take advantage of up to one CPU. For example, on a 32-processor host computer, you could allocate your CPU capacity so that 31 simultaneously running virtual machines would each use up to one CPU, leaving a CPU free for the host operating system.

Multithreading. Virtual Server 2005 is a multithreaded application that runs as a system service, with each virtual machine running in its own thread of execution. In contrast, Virtual PC is a single-threaded application in which all simultaneously running virtual machines run on the same processor.

Large RAM support. Virtual Server supports up to 3.6 gigabytes (GB) of RAM per virtual machine”

Now, as for how it works underneath, according to the MS documents, the virtual PC engine actually handles its own memory management and scheduling. It simply locks memory away from the normal kernel and schedules itself to run. When it runs it handles the scheduling of the VM’s that are available and keeps the NT Kernel out of its way. There are lots of documents at MS that describe the underlying architecture in detail. So I have greatly over simplified things here.

Note that this white paper does not indicate that you need 64bit OS’s to use the 3.6 gig/VM. The white paper was written prior to VS2005 R2 (the release that enabled VS to run in 64bit mode).

Also, if you check MS they will tell you not to use the /3G or the /pae switches as that may cause the NT Kernel to map memory that is usually accessble by the Virtual Machine manager.
 
Ah, I didn't realize that Virtual PC was the name of a VM implementation, so I assumed VMware. In any case, if you haven't bought VPC yet you might want to go with VMware, 'cause it's free ;)

 
klbennet said:
Note, this only applies to VirtualPC/Virtual Server. VMWare has different specs. check with their docs.

For Virtual PC
Each VM is not its own process. Underneath each VM runs in the same thread.

For Virtual Server
Each VM gets its own thread of execution.

There is a white paper at MS that describes the difference:
“Host multiprocessor support. Virtual Server scales across multiple processors on the host computer—up to 32. Each running virtual machine can take advantage of up to one CPU. For example, on a 32-processor host computer, you could allocate your CPU capacity so that 31 simultaneously running virtual machines would each use up to one CPU, leaving a CPU free for the host operating system.

Multithreading. Virtual Server 2005 is a multithreaded application that runs as a system service, with each virtual machine running in its own thread of execution. In contrast, Virtual PC is a single-threaded application in which all simultaneously running virtual machines run on the same processor.

Large RAM support. Virtual Server supports up to 3.6 gigabytes (GB) of RAM per virtual machine”

Now, as for how it works underneath, according to the MS documents, the virtual PC engine actually handles its own memory management and scheduling. It simply locks memory away from the normal kernel and schedules itself to run. When it runs it handles the scheduling of the VM’s that are available and keeps the NT Kernel out of its way. There are lots of documents at MS that describe the underlying architecture in detail. So I have greatly over simplified things here.

Note that this white paper does not indicate that you need 64bit OS’s to use the 3.6 gig/VM. The white paper was written prior to VS2005 R2 (the release that enabled VS to run in 64bit mode).

Also, if you check MS they will tell you not to use the /3G or the /pae switches as that may cause the NT Kernel to map memory that is usually accessble by the Virtual Machine manager.
nice post..
 
Thank you.

Also note that Virtual Server 2005 R2 is free as well. MS decided that since their roadmap made virtualization part of the OS, they would no long charge for Virtual Server. Now, you can read between the lines and see how this would affect people who are considering VMWare vs. Virtual Server.

Virtual PC (the desktop version) is still a non-free product.

So in the end, pick your poison. MS-VS runs only under Windows hosts. Service Pack 1 (currently in beta) will add CPU virtualization support (the new instructions from Intel and AMD that help with VM's). It also does not include USB support.

VMWare supports USB, runs under Linux and Windows hosts and has multi-cpu support in beta. I believe their CPU virtualization support is also slated for the current beta, but I don't know if it is included yet.

Also, if 64bit (both host and guest support) is important then check on that as well. I think VMWare supports/will support 64bit guests and hosts, whereas MS-VS only supports 64bit hosts.

Both have add-ins for Windows and Linux (beta for MS) which will help those systems run better as guest OS’s.

So try them both and see what you think. One thing is for sure, once you have VM's at your disposal, your life will never be the same again.
 
klbennet said:
Thank you.

Also note that Virtual Server 2005 R2 is free as well. MS decided that since their roadmap made virtualization part of the OS, they would no long charge for Virtual Server. Now, you can read between the lines and see how this would affect people who are considering VMWare vs. Virtual Server.

Virtual PC (the desktop version) is still a non-free product.

So in the end, pick your poison. MS-VS runs only under Windows hosts. Service Pack 1 (currently in beta) will add CPU virtualization support (the new instructions from Intel and AMD that help with VM's). It also does not include USB support.

VMWare supports USB, runs under Linux and Windows hosts and has multi-cpu support in beta. I believe their CPU virtualization support is also slated for the current beta, but I don't know if it is included yet.

Also, if 64bit (both host and guest support) is important then check on that as well. I think VMWare supports/will support 64bit guests and hosts, whereas MS-VS only supports 64bit hosts.

Both have add-ins for Windows and Linux (beta for MS) which will help those systems run better as guest OS’s.

So try them both and see what you think. One thing is for sure, once you have VM's at your disposal, your life will never be the same again.

Thanks for that info.

VServer is out because of the lack of USB. Because I do this for work, I have access to my internal network for things that require me to use a USB HDD to move install packages, etc from my laptop (with access via VPN) and my desktop (which doesn't).

I think they said that VMWare 5.5 had support for multi-processors but I'm now thinking that's just within the VM itself.

Regardless, 2GB won't cut it. I think I'll start with 3GB and see if I need the 4th. As far as XP-64 goes, I'm not impressed at all since I kept getting BSODs during setup.

Thanks guys!
 
On the USB topic, you can always hook the USB to your desktop or leave it connected to your laptop and access it via a network. I do this all the time with my external backup drive. You don't necessarily have to have access to the USB device from within the Virtual Machine.

To clarify the multi-processor part, both Virtual Server and VMWare Server will use multiple processors on the host hardware, but the OS on the VM will only see one processor. Both will spread the load of all the VM's across the available processors. VMWare has some stuff available (or in beta) that will allow VM's to present more than one processor the OS running on the VM.
 
Back
Top