How it All Works
Since File Placement is now implemented in the latest BETAs of StableBit DrivePool 2.1.0.X, I'm going to give you a short overview as to how the whole system works and what the impacts on performance are.
When you create a new rule, the pool that hosts that rule gets marked with a special flag indicating that a full background pattern based balancing pass is required. On the next balancing pass, StableBit DrivePool goes over every file on the drives that have any pattern rules defined and moves files matching those rules to their destination. Conflict resolution occurs at this time and any conflicts are saved for display to the user.
At the same time, your file placement rules are sent down to the file system, telling it to respect those rules on any new file creation.
Real-Time Rule Violations
Sometimes a file placement rule is violated because a new file had to be created on disks other than the ones that you've designated for that file. In those cases the file system notifies the service that file pattern rules were broken. At this point a balancing pass is scheduled to fully assess the situation.
This is an important point to make.
How do the new file placement rules affect performance? First of all, when you have no file placement rules defined, then performance is not affected at all.
Having one or more file placement rules enabled has these performance impacts:
- For the StableBit DrivePool service:
- After making any changes to file placement rules, a full file placement balancing pass is scheduled for the next automatic run. For automatic balancing, the regular balancing pass may not run if there is no need to do so.
- Manually initiating a balancing pass using the "rebalance" command will always run the regular balancing pass and perform a full file placement balancing pass, if there are any conflicts or you've made changes to the file placement rules.
- Overall, the balancing pass will take longer if you've made changes to the file placement rules or if there are file placement conflicts.
- Real-time performance impacts on the file system:
- Whenever a new file is created on a pool with one or more file placement limits, the decision where to place that file has to take those limits into account. For performance reasons that decision is made by the kernel file system driver with no involvement from user system service.
- There is no impact on Read / Write I/O performance as a result of having file placement limits defined.