Lately I've been receiving a few emails asking me about issues with speeds when copying to and from Windows Home Server. Some of these issues can be network, some can be other things such as your Windows Home Server hardware setup. Especially if you build your home server yourself. This article discusses how you can ensure your Windows Home Server is setup optimally so you can ensure the fastest possible copying speeds.
When you install WHS, it partitions the install hard disk into a 20 Gigabyte primary OS partition and then puts the remaining space as drive D which becomes a 'Primary data partition'.
This 'Primary data partition' is where all of the actual network shares are located, so when you go to
\\server\videos your really going to the D drive partition on the primary disk.
When you copy a file across to the videos share for instance, the file is copied onto the D drive partition on your primary home server drive. On the WHS there is a service called the 'Windows Home Server Drive Extender' which is monitoring the videos folder (and all other network shares) which is actually physically located on the D drive 'Primary data partition' of the WHS primary hard disk.
The 'Windows Home Server Drive Extender' looks at the configuration for the share and works out based on this configuration which actual WHS storage drive it will move the file just copied to the share too. The service looks at several thing, such as where other files for the same share are, how much space is free, and if you are using folder duplication.
Once the drive extender service chooses a final destination and moves the media to that destination (If your using duplication it also copies it to another drive for duplication), it creates what is known as a 'tombstone' file in place of the file it just moved to the destination.
The 'tombstone' file is a very small file which points to where the actual file is. This frees up the original space used on the D: drive again and the file is now located on one of the WHS storage drives.
Now this is great as you never need to worry about disk space and you simply see one huge share which can contain the combined space of all of your WHS storage drives.
The problem and the reason copies can be so slow is that if the primary hard disk is slower than the actual WHS storage drives or the drive of the PC which is copying data to it then you're going to get bottlenecked by it.
Here is an example; lets say we have the following setup:
-
A 1 Gigabit network connection between the source PC and the WHS machine through a 1 Gigabit switch.
- The WHS has a 80 Gigabyte primary hard disk which is an ATA100 IDE 7200rpm drive with 2MB cache. It has a write seek time of 10.9ms average/read seek time of 8.9ms and Transfer rates of 420Mbits/s (max) buffer to disk and a buffer to host transfer speed 100.0MB/s.
- The WHS has 3 x 500 Gigabyte SATA2 drives which you very sensibly connected to a separate SATA2 PCI card with 3 independent SATA2 channels. The drives are 10,000rpm, with 5.2ms average write seek speed/4.6ms read seek time, and a buffer to host transfer rate of 1.5Gbits/s with a sustained buffer to disk transfer rate of 84 MB/s. In addition these drives also have a 16MB cache.
- A Windows Vista PC on the network which has a 250 Gigabyte 7200rpm SATA drive which has a read seek time of 8.9ms/write seek time 10.9ms, and a buffer to disk transfer speed of 748Mbits/s (max) and a buffer to host speed of 300MB/s.
The first thing worth mentioning is that the 1 Gigabit network should be able to copy in theory at about 100-200Mbits/s between the Vista PC and the Windows Home Server.
So lets say we want to copy a 60 Gigabyte file from the Vista PC to the WHS videos share. The file is being read from the Vista PC SATA disk a lot faster than it can write to the WHS ATA100 primary drive.
This is due to a large number of factors;
The faster read speeds of the SATA drive on the Vista machine, compared to the write speeds of the destination home server ATA100 primary hard disk.
The SATA drive being nearly twice as fast at moving the data from the disk to the drive buffer compared to the ATA100 primary drive in the WHS.
The SATA drive being 3 times faster moving the data from the drive buffer to the host (network), than the ATA100 primary drive in the WHS can move the data from the host (network) to the drive buffer.
In addition the buffer on the ATA100 drive in the WHS is 8 times smaller than that of the SATA drive on the Vista PC which it will take longer to get the data on disk due it not being able to buffer as much before it has to write it to the disk.
So as you can imagine already our copy is now slowed down significantly. There is no chance at this point we're going to be copying at 300MBits/s. So what can we actually expect?
With just the points we mentioned above the speed has already dropped down to about 60MBit/s.
So ok, we can expect 60MBit/s per second? thats not too bad right?
Well I'm sure if you have the above setup your not even seeing that.... So why, what else is wrong?
Well at this point, we only discussed the data getting onto the ATA100 D: drive. As mentioned before, the Windows Home Server Drive Extender service will then move it to an actual storage drive on your Windows Home Server.
You may now be starting to see the issue. Your destination drives are going to be copied to from only the WHS D: drive, nothing else will be writing to these at all.
That means due to the slower ATA100 D: 80 Gigabyte drive speed, along with the tiny 2MB cache, and the 420Mbits/s buffer to disk transfer rate is going to slow down the copy to your super fast drives 10,000rpm SATA2 drives.
Your ATA100 hard disk in this setup is your weakest link. Its slowing down both the copy across the network initially and the copy on the WHS to the storage drive after that. In addition add drive fragmentation of the storage drive/drives and your really getting into trouble.
But.... you could have even more issues, for instance, if you have Media Sharing turned on in WHS for streaming media to your 360's or Windows Media Player 11 etc, then every time you copy a new file to the WHS it is indexed immediately, which can cause some more additional slowdown.
In addition if you have duplication turned on for that particular folder it will be slower again due to having to move the file to two destination WHS storage drives.
So how much would all of the above actually effect your final copy speed?
Well I've seen in the worst case scenario of above, with the drive bottle neck, disk fragmentation on your storage drives, Media Sharing and Folder duplication turned on. The speeds can drop to as bad as between 1Mbits/s to 7Mbits/s which as you can imagine may disappoint you heavily especially if your on a 1 Gigabit network!
In the worst case scenario I'm talking about I saw copy speeds that slow it would take between 30-60 minutes to copy a 500MB file!
Now we didn't even discuss the scenario that other people may be copying to or from the WHS at the same time!
Finally I wanted to mention another issue, in the setups we talked about, the primary WHS hard disk was a 80 Gigabyte and the storage drives are 500 Gigabyte. This is bad, you want to have a primary hard disk of at least the same size as your largest storage drive if possible. This will ensure that you don't run out of space if you're copying large amounts of files or a single very large file to your home server. Remember they will end up copying to your 'Primary data partition' first!, and if it does not have the space to store the file, it really doesn't matter that you have enough space on your other drives. You need to consider this even more if you think it's likely you will be copying to the server from multiple machines at once.
So what can you do to prevent these situations?
Well... these would be my top 10 tips to ensure you don't get into this situation with Windows Home Server.
-
Ensure your primary hard disk on your WHS is at least the speed of the fastest disk on your network.
-
Ensure your primary hard disk on your WHS is at least the size of the largest hard disk in your WHS storage.
-
Use a disk de-fragmentation tool on your Storage drives (You need de-fragmentation tools specific to Home Server, such as Raxco Perfect Disk for Home Server or Diskeeper 2008 Home Server - Links below).
-
Unless you need duplication on a folder, turn it off. Duplication in intended for files you really want to ensure you don't loose. i.e. Photos, Personal documents etc.
-
Unless you need and use the Media Streaming feature of WHS leave it turned off.
-
Get a 1 Gigabit switch for your network and a 1 Gigabit network card for your WHS, attach your WHS and machines which talk to the WHS to the switch. At the very least your WHS will benefit from being connected to a 1 Gigabit switch even if your other PC's are not using 1 Gigabit network cards. This is due to your WHS being capable of sending more data to more PC's at once when using 1 Gigabit even if the other PC's themselves are only using 100megabit network cards.
-
Get 1 Gigabit network cards for your PC's which talk to the WHS if you can. As above at the very least get your WHS a 1 Gigabit network card. This tip is obviously contingent on you having a 1 Gigabit switch. Also ensure the cards are actually configured 1 Gigabit, otherwise it would defeat the purpose.
-
Don't expect to get the full 1 Gigabit speeds on your Home Server or any machine on your network. 1 Gigabit networks do not run 1 Gigabit in homes, they typically run at the fastest at around 300Mbits/s, and typically around 100-200Mbits/s. This is just how 1 Gigabit works in home environments. I included an article below which you can read which will explain some of the issues with speed on 1 Gigabit home networks.
-
If you are using custom plug-ins on your Windows Home Server be aware of what they are doing, you don't want to slow down the WHS as this could end up slowing down everything on the WHS including file copies.
-
Fully understand how Windows Home Server Drive Extender works by reading Microsoft's white paper (linked below).
So what speed can you expect if you use these tips and are setup optimally?
Well lets assume we have SATA 7200rpm drives on all machines including the primary disk on WHS. 1 Gigabit Ethernet running CAT6 all round our network on all machines. No WHS Folder Duplication or Media Sharing on our WHS destination share and all our WHS storage drives de-fragmented nicely.
In testing I found that I would get up to around 150Mbits/s which is really fast. The 60 Gigabyte file we talked about took around an hour. A 5 Gigabyte file took around 5 minutes and a 500MB file would wiz across in just 30 seconds!
Useful links:
Microsoft Home Server Drive Extender White Paper (PDF)
1 Gigabit Ethernet Need to Know article by Toms Networking
Raxco Perfect Disk for Home Server
Diskeeper 2008 for Windows Home Server