VM linux Raid 6 guest under windows using physical disks?

mikeo

Gawd
Joined
May 17, 2006
Messages
659
Has anyone ever tried a setup like this:
Host OS: Windows 7 (installed to motherboard's software raid1 using two disks).
Virtual OS: Some form of Linux, has direct access to around ten full physical disks, and has all of them in raid 6.
Host OS has this volume mounted over the fastest virtual interface possible (a virtual 10gigabit adaptor would be nice but not sure if this option is available)
Right now all of my disks are formatted NTFS, and I am using Flexraid for files that I don't care that much about, and frequent backups for files that I do. I like the idea of using a software raid 6, as I could potentially have a performance benefit along with the increased redundancy that it provides. I thought about building some form of this on a separate machine, but then I would be limited to gigabit network speeds to access the disks (I don't want to shell out the $$ for FC cards, and will mainly be using the disks from one workstation). Also, the saved power consumption/physical space would be nice.
What does everyone think about this as an option?

BTW: Machine is a Q6600 @ 3300mhz w/ 8gb of ram.
 
Depends, how many drives?

Only thing I would caution against is using an overclocked CPU to do parity calculations. Errors simply do occur more frequently in OC'd chips although 3.3GHz on a Q6600 isn't a big overclock, I would still be a bit cautious since you are not just doing parity in a VM, but a VM on an overclocked CPU.

Other than that should be fine.
 
I plan on putting 8 drives into the raid6 initially, and if it works well I would add another four. Also, do you think that the OC'd CPU would be ok for parity calculations if it passes 24 hours of prime95 running on all four cores?
 
It is kind of two different things and the only reason I mention it is because I've seen it happen on an overclocked core 2 duo that was doing software raid 5. The system was 100% stable and only came down for windows update reboots, yet about four months into a build a drive failed and the array did too. Maybe others have had different experiences, but my Core i7 920 based windows home server uses hardware raid and I won't even overclock that CPU due to my perhaps irrational fear of a similar fate.
 
I configured my ubuntu virtual machine (already running off of a physical disk) for host-only networking, and it is listed as connected at 1000mbps, however the fastest speeds I can get writing to it are 40-50 megabytes per second... This is when writing to either disk or /dev/shm over samba. If I were to build a machine just for raid6 and linux, would it be possible to put in two of these: http://www.newegg.com/Product/Product.aspx?Item=N82E16833166015 on each machine and have a load balanced 2 gigabit ethernet connection (connected by 2x crossover cables) between windows 7 and linux? Are there any other connection options that would be cheaper? I can't find any cheap FC pci-express cards, so I am guessing that two 1-gigabit connections load balanced would be quicker per $. I have had two seagate 7200.11 1.5tb drives die on me in the past week and like the idea of using raid 6. (One was 6 months old, another was 2 months).
 
You'd still be limited to 1Gbps speeds for each connection, but with two connections you could run two transfers at 1Gbps each. Also, you'll want to buy quality Intel gigabit pci-e cards and a very good switch if speed matters.
 
You can bond NICs together with linux. For example, you can create a logical 2 Gbps link from two physical 1 Gbps links. It is called NIC bonding, NIC teaming, or link aggregation. If you google those, you can find HOWTOs. I don't know how aggregation is done with Windows 7, but I expect it can be done.

As for the transfer rate you are getting, you should be able to do better, although I cannot give you advice with samba. What kind of transfer were you doing, was it encrypted? I know that with scp, my transfers over a 1 Gbps link between two linux machines max out at 80 MB/s with the default cipher. But specifying the arcfour cipher (using scp -c arcfour), I max out at about 110 MB/s. That is with on-board ethernet. I guess an Intel server PCIe card might be able to go a little faster.
 
I actually tried to do something like this using VirtualBox and Solaris for ZFS. Unfortunately performance was bad and it was unstable - sometimes the VM would hard-lock and other bad stuff. Granted I was using an older version of VirtualBox at the time, but bottom line if you want performance and you want to use windows its easier to just get a hardware raid card.
 
It would be very cool if it worked well, but I have my doubts. A dedicated box wouldn't cost that much in itself, but you're talking about some pretty pricey network gear to get the speeds you're aiming at.

Dustin
 
If you really want to do this, the way to go is probably used 4Gbit FC gear. This stuff is being liquidated pretty heavily right now, and you can pick up some decent gear fairly cheap - but still, unless you actually need a storage network it probably will cost a similar amount, perform better and be less complicated to just buy a hardware RAID card or switch to using Linux directly for whatever I/O intensive tasks you have in mind. I can't recall the adapter brand right now, but there were some fakeraid controllers available with decent software parity RAID on Windows I saw mentioned over on AVSforum. IIRC they only did RAID5, but performance was similar to Linux softraid and they were relatively inexpensive.

That said, your virtualization solution can probably be tweaked to perform better. Try the various adapter types VMware offers, I don't use it, but I know there's a fairly wide performance difference between some of them. Make sure you have jumbo frames enabled, don't use a routed network topology, tweak both OSs. Have you benchmarked the disks inside the VM itself, are you even sure the problem is the network? I'd think you shouldn't have too much trouble getting into the 80+MB/s arena with your proposed setup.
 
Back
Top