By
Philip Churchill on April 23rd, 2014
The beta release of StableBit DrivePool for WHS2011, Windows Server 2012 Essentials, Windows Server 2012 R2 Essentials plus lots more has had an update.
Version 2.1.0.503 BETA has the following change log, and its a big one:
* [D] Fixed x86 disk driver installer.
* [D] When removing the last limit on a pool part, the file system was not notified and that limit remained.
* If an Exception was raised in a delayed action during cancellation, a deadlock was possible, thus stalling service shutdown.
* Initial balancing settings will now default to balance immediately, but not more often than every 12 hours.
* Fixed critical balance bytes default in the initial balancing settings.
* [Issue #2165] Added warning strip to the file placement tab when balancing rules are not being satisfied due to low disk space or other conflicting rules.
* [Issue #2165] Added bar chart that shows file distribution per pool part when a folder is selected.
* [Issue #2165] Added folder size pie chart to file placement folder tree.
* [D] When the file system detects that a pattern limit has been violated, inform the service. The service will set a flag and it will be reported in the pool organization bar.
* When performing background duplication or drive removal, try to respect file placement limits:
– When looking for destination pool parts in order to duplicate a file part, prefer pool parts that don’t
violate existing file placement limits for that file.
– If a file placement limit must be violated, then reflect that in the balance state, which will be reflected in the pool organization bar.
* Drive removal progress percent was not being reported correctly in the pool organization bar.
* Drive removal no longer requires a remeasure after it completes.
* [Issue #2166] When balancing and emptying a disk, added edge condition to fully empty the last remaining files even if that strictly violates the target pool part’s balancing delta. For example, when one file is remaining on the source pool part and there are 2 target pool parts, that single file obviously can’t be split up in 2. This ensures that file evacuation works as expected.
* Added new balancing options to deal with Balancer <=> File placement interaction:
See Pool Options -> Balancing… -> Settings
– The file pattern mover should not violate real-time file placement limits set by the balancers.
– The existing pool part file mover should not violate file placement pattern rules when moving files around.
– Unless, the pool part is being emptied.
* After successfully removing a pool part, check file placement limits to make sure that there are no limits that exclude all existing pool parts. If such limits exist, they are meaningless, remove them.
* [Issue #91] Both measuring and a file consistency check is required, measure first then check consistency. Previously the file consistency check would take priority. This was causing user confusion.
* Implemented a background file placement balancer:
– When changing file placement rules, the "file placement balancing state" is marked dirty and a file placement background balancing run is needed to move the existing files on the pool in accordance with the file placement rules. This drops the balancing ratio to 0.0.
– In the horizontal UI mode, if the file placement balancing state is dirty, a little file icon will be shown next to each pooled disk’s balancing bar indicating that file placement balancing is required on this disk.
– When the file placement balancer needs to move a file off of an existing pool part because it is violating the pre-set limit, it uses these rules when deciding which pool part to place the file on:
– A pool part is chosen that doesn’t violate other pattern based file placement limits and doesn’t violate real-time file placement limits.
– If no such pool parts exist, the file is not moved.
– Protected files are never moved onto a pool part that resides on the same storage unit as another file part of the same file. This would break the file protection rules.
* Added a folder based file placement rule configuration UI. See Pool Options -> Balancing… -> File Placement ->
Folders:
– Specifying a folder rule will automatically generate a pattern based rule for that folder.
– The pattern for a folder based rule cannot be edited.
– Folder based rules cannot be defined for the meta-data and root directories.
– Only meaningful rules are saved. A rule with all drives selected is not meaningful.
* [D] Added real-time pattern based file placement rules. See Pool Options -> Balancing… -> File Placement:
– You can specify one or more rules that will direct matched new files to be put on one or more specific pool parts.
– Patterns can include wild-cards (*, ?).
– Given the wild-card support you can create patterns that are absolute such as "\Users\*" or relative "*.ISO".
– Each rule can optionally overflow files onto deselected disks if all the chosen disks are getting full.
– A non-overflowing rule will give an out of disk space message if all of the chosen disks are full for any file that matches that rule.
– A simpler folder based interface will be added.
* [Issue #2159] Each balancer has 30 seconds to calculate the balance ratio, if it takes longer than that then abort it.
* [Issue #2159] Respect DrivePool_BackgroundTasksVeryLowPriority when calculating the balance ratio. Prior to this, calculating the balance ratio would always be performed using idle thread priority.
* Fixed localizations for service and UI notifications.
* Merged community translation changes.
* [Issue #1160] Added community Bulgarian translation (thanks).
* [Issue #122] When removing the third or second drive from the pool, StableBit DrivePool would generate false duplication warnings about the CoveFS metadata that indicated that you need to add another disk to the pool.
* [D] [Issue #2157] Fixed exception handler in MDL creation function.
* [D] [Issue #101] The context of a byte range lock request is not always the current thread. (E.g. Hyper-V)
* [D] [Issue #101] FileObject->LockOperation seems to be inconsistent, switched to internal flag.
* [D] [Issue #101] Byte range locks were not being released immediately on file close. Oddly, this is exactly the expected behavior according to MSDN (http://msdn.microsoft.com/en-us/library/windows/desktop/aa365715): "If a process terminates with a portion of a file locked or closes a file that has outstanding locks, the locks are unlocked by the operating system. However, the time it takes for the operating system to unlock these locks depends upon available system resources." Unfortunately this was creating a number of issues.
* [D] [Issue #121] Removing a drive from the pool which has a reparse point file part would fail.
* [Issue #121] A failed drive removal would not show the failure error message.
* [Issue #106] Added RemoteControl_MulticastGroupIp and RemoteControl_MulticastGroupPort to advanced settings. You can use these settings to change how remote control peer discovery is done, either for segregation purposes or to resolve IP / port conflicts.
* Fixed error recognizing an additional pool created from the UI.
* First pool welcome message was not being shown. Rewrote test logic, it was too complex and error prone.
The first pool welcome message will be shown only after creating your first local pool from the UI.
Creating a remote pool or having an existing pool will not trigger it.
* [Issue #91] When denying balance ratio calculation, deny all queued instances as well.
* [Issue #91] Added additional trace data when denying the calculation of the balance ratio due to the pool measure state.
* [Issue #79] Added additional trace data for disk update notifications.
* [Issue #81] Fixed burn EXE deployment.
* [D] [Issue #74] When an oplock break possibility exists, wait for the first proxy call regardless of the returned status code.
* [Issue #56] When a pool part goes missing, set the pool to read-only until the missing pool part is reconnected or is removed from the pool.
* [Issue #65] Added a new advanced setting for overriding the default culture (DrivePool_CultureOverride).
* [Issue #59] Pools can now be in an "offline" state and remain that way for 365 days. This means that when a pool is ejected or all of the pool parts that comprise a pool go missing, the pool’s settings will not be lost.
* The pool title in the UI was not updating consistently.
* [D] [Issue #60] Allow safe ejection of the pool virtual drive (using the standard drive removal tray icon).
* [Issue #60] Do not keep a handle open to the pool at all times.
* Added .MSI creation to deployment script.
* [D] [Issue #51] WSS storage service would not recognize the pool drives because the drives were reporting that they were virtual drives. This was causing all kinds of problems with the Dashboard.
* [Issue #50] Changed how we delay file system access on metadata load to work around odd behavior by file system filter drivers causing a lock up on boot (observed with Avast).
* [Issue #50] Simplified and reworked how we obtain the volume device name on mount.
* [Issue #50] CoveFS on Windows 8.1 was not being updated to the 8.1 build. Windows 8.1 machines will need a reboot after installing this build.
* [D] [Issue #35] Pool performance statistics were being reported for all the pools at once instead of for each pool individually.
* Never balance the pool or calculate the balance ratio if the pool’s measurement is incomplete.
If the measurement gets into an incomplete state while balancing, abort the balancing run.
Otherwise this could lead to perpetual balancing, as re-measurement is disabled while balancing.
* Pooled / Non-Pooled disk counts were not being refreshed properly.
* [D] Fixed the extraneous 30 second delay when creating a new pool.
* Updated code signing certificate (2014).
* [Issue #19] Fixed service crash on clean install introduced with the new boot time tracing.
* [D] [Issue #13] Fixed race condition in work queue exiting causing potential lockup. Work queues are used when measuring the pool and in other places.
* [Issue #9] Added option to enable / disable file system activity logging under Troubleshooting.
* [Issue #9] Added option to enable boot time logging to the new "Troubleshooting" menu in the options drop down. Boot time logging will write CoveFS file system activity logs to %PROGRAMDATA%\StableBit DrivePool\Service\Logs\CoveFs. File system logs can be submitted to technical support for analysis.
* [Issue #8] Added error reporting functionality to detect errors on store change events (e.g. StoreValue_ItemChangedWeak).
* [D] Fixed querying for file IDs (this was causing issues with the NFS server).
With this beta release StableBit DrivePool now supports per folder (and per file) balancing, to learn more you can read the following blog post.