StableBit DrivePool 2.1.0.503 BETA – Per Folder Balancing

Well, it’s been quite a while since my last post, but I have something substantial to share with you today.

StableBit DrivePool 2.1.0.503 BETA now supports per folder (and per file) balanicng.

StableBit DrivePool 2.1.0.503 BETA
StableBit DrivePool 2.1.0.503 BETA

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.

File Placement

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.

Pool Options
Pool Options
File Placement - Folders
File Placement – Folders

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.

Statistics Toggle
Statistics Toggle
File Placement Statistics
File Placement Statistics

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.

Folder Placement Rules
Folder Placement Rules

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%.

Pool Organization
Pool Organization

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:

Folder Placement Limited
Folder Placement Limited

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.

Duplication Space Optimizer
Duplication Space Optimizer
Balancing Markers Adjusted
Balancing Markers Adjusted

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.

Add File Placement Rule
Add File Placement Rule

You can type in any pattern that matches one or more files.

  • A * matches 0 or more characters
  • A ? matches any one character.

For example:

  • \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.

Rule Conflicts

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:\.

File Placement Limiter
File Placement Limiter

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:\.

Conflicting Rule
Conflicting Rule

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:

Pool Organization Conflict
Pool Organization Conflict

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.

File Placement Conflict
File Placement Conflict

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.

File Placement Settings
File Placement Settings

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:

http://community.covecube.com/index.php?/topic/594-stablebit-drivepool-file-placement-limits-architecture/

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

What’s Next

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.