Well, it’s been quite a while since my last post, but I have something substantial to share with you today.
StableBit DrivePool 188.8.131.523 BETA now supports per folder (and per file) balanicng.
Download it here: http://stablebit.com/DrivePool/Download
This is a major addition to the already extensive balancing options and it basically allows you to select which disks will be used to store the files in a particular folder (I believe that this is a first in the industry). Let’s take a look at how this new feature works.
Even though this feature required extensive code changes to all 3 parts of StableBit DrivePool (the driver, service and UI), the UI to configure file placement sits under a single new tab in the Balancing window.
I’ve set up a sample pool for this post, and on the left you can see the folder structure of it.
Selecting a folder will calculate duplication and file placement statistics of that folder. You can toggle between the duplication or file placement statistics view from the toolbar at the top.
Each bar and pie slice has tooltips for more finer detail.
Folder Placement Rules
To define a folder placement rule, you simply select a folder and uncheck one or more disks on the right. Files in this folder and subfolders will only be stored on the checked disks.
Here you can see that I’ve defined a new rule stating that I don’t want any files in \Software\MSDN, a duplicated folder, to be stored on K:\. I also have the option to choose what happens when the other disks start running out of disk space. I’ve chosen to keep the default behavior and allow the files in \Software\MSDN to overflow to other disks if my chosen disks get used up to 90%.
After hitting Save you can see that the Pool Organization bar drops down to 0% and you are offered the option to start a balancing pass immediately. If you have automatic balancing enabled then a balancing pass will start as per your settings.
If you’re in the horizontal UI mode (the window stretched wide) then you can also see a little file icon next to each disk space usage bar indicating that this disk had a file placement rule changed recently and that StableBit DrivePool needs to go through the files on that disk and reorganize them based on the new rules.
After we let the balancer run, we can see that the file distribution for that folder now looks like this:
Interaction With the Existing Balancers
For the example above, just to make things simple, I’ve disabled all of my standard balancers. But let’s see what happens when I enable the Duplication Space Optimizer.
You can see that the balancing markers have adjusted and that StableBit DrivePool now wants to move some unduplicated files from both M:\ and L:\ onto K:\. This is so that you would have more disk space available to your duplicated files on M:\ and L:\.
Of course this would normally be taken care of for you automatically in a single balancing pass right after you define your file placement rules and you wouldn’t have to take any additional steps. In this case, I just wanted to show you this behavior.
Advanced File Placement Rules
If you want to define more advanced rules on a per file basis, you can do that as well. Under the File Placement tab select the Rules tab and add a custom rule.
You can type in any pattern that matches one or more files.
- A * matches 0 or more characters
- A ? matches any one character.
- \Software\MSDN\*.ISO – Match all .ISO files under \Software\MSDN and its subfolders.
- \Users\*\Downloads\* – Match all downloads in any user’s folder.
Don’t forget that you’re defining patterns to locate files and not folders, so you must at the very least include a trailing \*.
As you may have guessed, the simpler Folders interface for defining rules actually uses the same rule definitions under the hood. Those folder based rules can also be seen from the Rules tab.
With all this power there is now the potential so set up conflicting balancing rules. Let me show you a simple conflict in order to demonstrate.
I’m going to enable only the File Placement Limiter and I will tell it that I don’t want any duplicated files on K:\.
I will then go ahead and change my existing file placement rule for \Software\MSDN to tell it to place files only on K:\ and L:\.
You can see the problem here, \Software\MSDN is a duplicated folder, and I just told StableBit DrivePool to move the contents of that folder onto drives K:\ and L:\, but at the same time I’ve told the File Placement Limiter that I don’t want any duplicated files on K:\.
Let’s go ahead click save then rebalance and see what happens. The balancing pass completes rather quickly (because there’s not much to do) and you will see this:
You will see a new tooltip message over the pool organization bar telling you that some files could not be moved.
If you open up File Placement once again, you will get a more descriptive message.
Conflict Resolution Settings
StableBit DrivePool now features a number of automatic conflict resolution settings and they can be found on the Settings tab of the Balancing window.
How it All Works Together
I don’t want to get too technical in this post but if you want to read up a bit on how the architecture works I’ve posted that over here:
The StableBit.com Affiliate Program
I just want to wrap up this post by mentioning that there is now an affiliate program available for anyone to join. It’s completely free and basically it means that if you refer anyone to us and that reference results in a sale you will get 25% of that sale deposited to your account. Check it out, we could definitely use your help, and really do appreciate it. All you need is a PayPal account.
Become an affiliate: https://stablebit.com/Affiliate
StableBit DrivePool 2.1 has been in the works for a while now, and the list of fixes is also impressive (some of those were particularly difficult to pin down). This build features a whole lot of fixes and a major new feature, which is exactly how I like it.
Next, StableBit DrivePool 2.1 goes final and “Product 3” is actively in the works which should integrate with StableBit DrivePool quite nicely.
Let us know if you have any feedback on this build or about anything else @ stablebit.com/Contact.