Windows Home Server Drive Balancer Utility
by Tom Spinoso
Imagine getting a brand new shiny 2TB drive, slapping it into your home server, adding it to the pool, then heading over to the Disk Management add-in and rejoicing over all the copious TBs of storage you now have. Ah……what a great feeling, but doesn’t it look a bit lonely sitting empty? That could even be considered wasteful in come circles. Perhaps over a few days it will “balance out” on its own – probably not.
Thankfully, Beefcake has come up with this great little utility to help out.
Drive Extender (DE), the technology Microsoft uses in WHS to pool drives, typically fills one drive at a time with data before populating new ones. A detailed explanation of this technology from Microsoft can be found here. File duplication, drives sizes already in the pool, new drive sizes, data on existing drives, are all factors that can yield results from DE that may not be what you expect.
Beefcake (love that name) came up with a little utility he calls Drive Balancer that gives you some control over how your drives are utilized. Here is a thread over at WGS where the file can be downloaded and you can see some additional discussion and feedback. Below is a brief rundown of my experience with this utility and and how it performed.
Before running this utility, I highly recommend reading the “walk_through” and “readme” text files included in the download with the application. You will feel more comfortable and have a better understanding of what will happen to your data. Having a good backup of your data before running any utility like this is always a good idea.
There is no installation of the application, it is a stand alone executable. Just download it to a share, RDP in, and extract it to the desktop. I did have to “unblock” the zip file before extracting it to the server desktop due to a rights issue.
You will be faced with some questions upon running the program:
- Do you want to include D: in the balancing effort (y/n):
- Do you want to clear out the LandingZone (y/n):
The first question essentially gives you the ability to add pooled data to the system drive. There seems to be some debate on this topic, in general, but I prefer to keep the system drive separate and free of data for efficiency and speed reasons. To that point, I also feel that using the fastest and best performing drive for you system disk makes the most sense. It would be nice to have the ability to RAID1 two smaller drives for system redundancy…..ah, but I digress.
My understanding is that since PP1 the term “LandingZone” really does not apply anymore as any data copied to the server can be sent directly on the storage pool instead of the system drive. Answering “yes” to the second question will move any data off your system drive to the pool. You may not have any there depending on how you grew your storage.
After a short wait you are faced with deciding how you want to slice up your data. You have 4 options to choose from:
- Have an equal percentage of each disk used (my choice)
- Have an equal amount of data on each disk
- Have an equal amount of free space on each disk
- Create your own values (this one carries a big caution tag)
Here is a picture (figure 1) of Drive Manager after the process just got started. You can see how it fills up the system drive so it cannot be used in the pool.
I should point out that I ran the utility when it first came out, so my storage was well balanced as you can see from figure 1. I ran the new version (1.2) to show the screen shots and verify my first experience. The first time I ran the utility it took around 3 hours to even out about 1.5TBs of data.
You may notice some errors from the tray application calling out low storage space, just ignore them. This may happen multiple times during the process as it moves data around. After about 15 minutes the process was complete (figure2). Not much changed from my first run, but this is to be expected because neither did my data.
The Drive Balancer utility worked perfectly for me. I believe that having your data spread out across the pool grants increased efficiency and overall speed. This is even more true if you are serving multiple streams at once. Having all your data spread over multiple drives decreases the odds of data loss from a single catastrophic disk failure.
Thanks goes out to Beefcake for this great utility and all his hard work. I can’t help but wonder if something like this doesn’t belong in future releases of WHS.