StableBit DrivePool 2.X
Limitations
- Not compatible with the Windows Subsystem for Linux 1.
Info
Driver = Driver was modified (reboot required after update)
Summary
- Various bug fixes and optimizations.
- Discontinued support for Windows Server 2012 / 2012 R2 / 2012 Essentials.
RELEASE
Version 2.3.11.1663
- Release final.
- Issue #28962 Updated the installer's minimum supported OS version check to Windows 10 / Windows Server 2016.
Version 2.3.10.1661
- Release final.
- Issue #28956 Fixed localizations.
- Fixed an installer deployment issue.
Version 2.3.9.1654
- Release final.
- Discontinued support for Windows Server 2012, Windows Server 2012 R2, Windows Server 2012 Essentials.
BETA
Build .1646
- Driver Issue #28949 Handle section acquisition failures gracefully with rollback support.
Build .1644
- Fixed HMAC verification for split Live Connection packets.
Build .1643
- Driver Mount pools in read-only mode if the exact number of pool parts is known and at least one is missing.
- Setting CoveFs_WaitForKnownPoolPartsOnMountMs to 0 disables this behavior.
Build .1638
- Driver Issue #28945 Do not allow a section to be released if it was never acquired.
Version 2.3.9.1636
Build .1635
- Issue #28943 When a task cannot be started due to the parent object being gone (e.g. pool, or disk), show a more descriptive error message.
- Issue #28943 Generic error messages should be owned by the top-most modal window.
- Issue #28943 Fixed an error showing an error message on the Balancing -> File Placement tab due to the dispatcher being suspended due to reentrancy issues.
Build .1633
- Background duplication was not always finding the correct base path to work on, based on the queued path hints.
- Background duplication was not always reporting the correct base path that it was working on.
Build .1629
- Added the ability to specify priority for each folder being duplicated in the background (this does not apply to real-time duplication):
- Create a file named 'drivepool-duplication-priority.json' in any folder where you wish to prioritize the duplication of sub-folders.
- Format: {"sub-folder-name": priority, ...}
- Example: {"Pictures": 1, "Documents": 2, "File History Backups": -1}
- Higher numbers will be duplicated first, lower numbers will be duplicated last. The default priority is 0. Folders with the same priority are duplicated in alphabetical order.
- The file can be hidden (using 'attrib +h drivepool-duplication-priority.json').
- This feature can be used to set up folder duplication recovery priorities, allowing you to prioritize (or deprioritize) the reduplication of certain folders after a drive failure.
Build .1626
- Issue #28929 Fixed unnecessary repeated saving of settings.json.
Build .1625
- Driver [Issues #28920,#28926] Fixed IoGetRequestorProcess causing a crash with some IRPs on Windows Server 2022 (observed in WdFilter).
- When selecting not to delete files on drive removal (archival remove), skip the final file enumeration step to speed up the process.
- When selecting to duplicate files later on drive removal (quick removal), do not count files first, go straight into migration to speed up the process.
Build .1619
- Fixed an issue where an incorrect license transfer request was displayed in the UI when the license was actually invalid for other reasons (e.g. expired).
Build .1618
- Driver Reduced the amount of non-paged memory used when measuring directories, especially with a large number of files.
Build .1616
- Driver Further optimized the measuring pass to yield access to the pool on demand, improving pool response time during measuring while reducing the overhead on the measuring pass itself.
- CoveFs_MeasureFindFilesTimeoutMs now only applies to prioritized measuring. It controls the minimum amount of time to wait before yielding again. In other words, when prioritized, do not yield more often than CoveFs_MeasureFindFilesTimeoutMs (now defaults to 100ms).
- Accelerated lock reacquisition now depends on how many other I/O requests are waiting on the measuring pass, not on the priority of the measuring pass.
Build .1612
- Driver When measuring directories with a large number of files, yield access to the pool to allow other operations to proceed.
- If processing a directory takes too long, an intermediate processing state will be entered. In this state, files will be processed in groups to prevent locking up the pool. A final (synchronizing) enumeration pass will be performed at the end.
- A new CoveFs_MeasureFindFilesTimeoutMs advanced setting has been added to control how long to wait before entering intermediate processing (Defaults to 250ms).
- Prioritizing the measuring pass (with the fast forward button) will increase the timeout to 1000ms and will accelerate lock reacquisition between processing each group. It will also increase the thread I/O priority, as it did before.
Build .1608
- Do not report balance ratio calculations to the cloud. It's unnecessary and excessive.
Build .1607
- dpcmd is now also located in %programfiles%\StableBit\DrivePool.
- Fixed correcting file attributes after a successful duplication hash check on file parts (in service).
- Added a new option to the dpcmd "check-pool-fileparts" command.
- You can now select the consistency checking algorithm to use.
- Select the new "Full" checking algorithm to hash every file part for a deeper consistency check. If inconsistencies are found, the file parts' attributes will be changed to mark the file inconsistent. DrivePool will then be informed of the inconsistency.
- The "Normal" algorithm is the default. It performs a much quicker file attributes check on all of the file parts and informs the DrivePool service if any inconsistencies are found. DrivePool will then perform a full hash check on the affected file parts.
RELEASE
Version 2.3.8.1600
- Release final.
- Various shell related windowing fixes.
BETA
Build .1586
Version 2.3.8.1581
Build .1579
- Optimized theme switching speed.
Build .1577
- Added 50/50 snapping to the performance pane splitter.
- Updated dark theme.
Build .1572
- Issue #28890 Fixed a licensing issue based on submitted error reports.
RELEASE
Version 2.3.7.1570
BETA
Build .1569
- Added additional consistency check error handling in file duplication.
Build .1568
- Issue #28880 Improved cloud license activation / deactivation handling.
Build .1567
- Fixed time shift detection and mitigation for app states.
- Fixed some miscellaneous layout issues.
Build .1564
- Issue #28866 Fixed a potential deadlock in the Store when raising change notifications.
RELEASE
Version 2.3.6.1562
BETA
Build .1559
- Do not allow multiple update installers to run at the same time.
RELEASE
Version 2.3.5.1557
BETA
Version 2.3.5.1556
Build .1555
- Tweaked the automatic updates dialog.
Build .1554
- Issue #28853 Automatic balancing can now be triggered by any size value, in addition to a percentage ratio.
Build .1553
- The available HTTPS TLS versions will now be determined by the operating system.
- The minimum supported version of the .NET Framework is now 4.8.
Build .1549
- Updated the legacy non-cloud download server host name to 'covecube.download' (global CDN).
Build .1548
- Issue #28849 Added logging of measurement data upon the successful completion of a measurement pass (under FileSizeTracking / Information).
Build .1543
- Fixed cloud application settings synchronization of unsigned integral types.
RELEASE
Version 2.3.4.1542
BETA
Version 2.3.4.1540
Build .1539
- Issue #28835 Added additional logging to the FileMover's 'building bucket lists' step (at Informational and Verbose levels).
Build .1537
- Driver Issue #28834 Report no seek penalty for the pool if all of its pool parts are also reporting no seek penalty (see 'dpcmd list-pools').
Build .1529
- Added application settings synchronization throttling tiers (free vs. plus) for improved server load distribution.
Build .1527
- Issue #28828 Clean up conflicting file placement rules when multiple rules exist for the same pool part.
Build .1524
- Driver Issue #28820 Fixed a memory management issue on rename, when the target folder didn't exist.
Build .1521
- Added additional diagnostics to help troubleshoot cloud settings synchronization failures.
Build .1519
Build .1518
- Fixed cloud DataInfo binder startup timing.
Build .1517
- Improved cloud settings synchronization speed.
Build .1515
- Improved how balancing markers are displayed when overlapping.
Build .1514
- Removing a drive from the pool while the pool was measuring showed an incorrect "Measuring..." state while the drive was being removed.
- Added a new option for removing a drive from the pool: 'Leave pooled file copies on the removed drive (archival remove).'
- This option retains a copy of all pooled files on the drive being removed from the pool, even after they are migrated to other drives.
Build .1513
- Fixed an issue where file reduplication could be delayed during drive removal if another device in the pool experienced I/O errors while a drive was being removed.
Build .1512
- Driver Issue #28774 Fixed invalid memory access on File ID lookup.
RELEASE
Version 2.3.3.1505
BETA
Build .1504
- Added an explicit placement limit setting to the Disk Space Equalizer balancer.
- Fixed a balancing calculation issue when moving unprotected files on a pool with less than 3 storage units, with a maximum fill limit set.
Build .1501
- Issue #28751 Added an option to equalize by used disk space to the Disk Space Equalizer balancer.
Build .1500
- Issue #28746 Fixed a deadlock in the task scheduling system.
Build .1499
- Fixed the reporting of task states to the cloud when multiple tasks are queued for the same pool.
Build .1498
- Fixed a deadlock when removing the last drive in a pool.
Build .1497
- Improved LAN remote control port usage in order to minimize the possibility of port conflicts.
Build .1494
- Fixed a crash on UI startup.
RELEASE
Version 2.3.2.1493
BETA
Version 2.3.2.1482
Build .1481
- Fixed error reporting in the UI.
Build .1478
- Native ARM64 support without emulation in the 64-bit build (on Windows 11 22H2 and newer).
Build .1469
- Issue #28697 Added a Norwegian community translation (machine seeded).
Build .1468
- Fixed a memory leak potentially affecting all service and UI binaries.
Build .1467
- Issue #28690 Fixed a deadlock in task queueing.
- Issue #28690 Added a Scanner_Wmi setting. Set it to false in order to prevent fetching the disk metadata from the StableBit Scanner via WMI.
Version 2.3.2.1466
- Fixed the licensing UI on high DPI screens.
Build .1460
- Driver Issue #28685 Added ARM64 compatibility to the 64-bit build.
- This also enables Apple silicon (M1, M2) support via virtualization.
- Driver Enabled Direct I/O in the disk driver.
Build .1450
- Fixed tooltip icon sizes.
RELEASE
Version 2.3.1.1448
BETA
Build .1437
- Driver Issue #28675 Empty volume names were not being saved.
Version 2.3.1.1434
Build .1433
- Reduced the cloud synchronization frequency on the free tier.
- Improved the cloud App UI service startup experience.
Build .1430
- Live connection protocol V10:
- Added support for large packets.
Build .1429
Build .1427
- Issue #28668 Added a new cloud app state for pool part removal failures.
- BETA builds now use the BETA cloud API endpoint.
- Added an update ready cloud app state for notification purposes.
Build .1421
- Added an update available cloud app state.
- Enabled cloud synchronization for update settings.
Version 2.3.1.1410
- Added theme palette support to the cloud dialogs.
Build .1398
- Disable the remote control bar animation when animations are disabled in the OS.
- Added new dark, light, and high contrast themes.
Build .1391
- Detect and mitigate clock shifts into the past when setting cloud states.
Build .1390
- Driver Issue #28653 Fixed compatibility with iOS/iPadOS Files <-> SMB2 <-> DrivePool.
RELEASE
Version 2.3.0.1385
- Release final.
- Issue #28645 Temperature (from the StableBit Scanner) was not being shown in the tooltips of pooled drives.
Build .1384
- Release candidate.
- Added a StableBit Cloud+ trial expiration notice.
- Issue #28642 UI placement persistence was being cleared on non-primary monitors.
Build .1379
- Release candidate.
- Updated translations.
- Use "Switch to English" from the in-app menu to disable translations.
- https://translate.covecube.com to submit corrections for future releases.
- Corrections with the highest votes are used.
BETA
Build .1375
- For notification purposes, do not report balancing events unless data actually needs to be moved.
- Improved HTTP 503 recovery for the StableBit Cloud.
- Auto 30 day trial for the StableBit Cloud.
Version 2.3.0.1372
Build .1371
- Fixed thread pool tasks getting lost.
Build .1368
- When linked to the cloud, clicking through to purchase a license from within the app will automatically add the purchased license to the cloud.
Build .1367
- Added support for StableBit Cloud+.
Build .1365
- Fixed an HMAC validation optimization in the live connection protocol.
Build .1364
- If started sending real-time metrics, then keep sending for at least 1 minute.
Version 2.3.0.1363
- BETA.
- Fixed StableBit Cloud integration issues with the Windows Home Server / Essentials.
Build .1359
- Fixed a user atom leak in the service.
Build .1358
- Optimized how remote control deals with firewalled peers to reduce CPU usage. Firewalled peers will be rechecked every hour to determine if their firewalled status has changed.
- Optimized brush resource usage.
Build .1353
- Fixed an issue in the remote control keep-alive checker that was causing excessive resource consumption when a connection could not be established to a remote IP.
Build .1352
- Issue #28583 Fixed an OverflowException in the Volume Equalization balancer.
- Issue #28618 Always check duplication tags for consistency and perform repair before checking file duplication consistency.
- Issue #28618 Duplication tags with a duplication count > 9 were not being repaired if damaged.
- Issue #28618 Added additional log warnings when repairing duplication tags.
- Faster live connection recovery after connection loss.
Build .1347
- Added support for linking to a site from the StableBit Cloud installer.
- Issue #28609 Added a simplified chinese machine seeded community translation.
Build .1345
- Parallelized pre-shutdown processing.
- Fixed "unable to enumerate folder" error when setting folder duplication.
- Issue #28612 Clean up excessive duplication error records on startup.
Build .1342
- Fixed statistics not being sent without a live connection.
Build .1341
- Cloud storable metadata was being persisted to disk too often.
- To optimize idle CPU usage, run 1 second resolution performance sampling only when the cloud requires it.
Build .1340
- Only send the real-time metrics that are actively being observed.
Build .1338
- Application settings synchronization updated:
- New V4 API (with new back-end store).
- Existing settings will be migrated automatically.
- Existing links to statistics will be maintained.
- Certain features in the cloud will be disabled for older builds that use the previous APIs.
Build .1335
- Send real-time metrics when the web dashboard is open.
- Never synchronize unchanged settings to the cloud.
Build .1331
- Fixed a deadlock in the cloud token refresh API.
Build .1328
- Improved the reliability of live reliable packets with a 64-bit sliding window and other improvements.
Build .1327
- Cloud API tier switching improvements.
- Handle server keep-alive failures from the cloud API.
- A full store synchronization should not take too long when it encounters adverse network conditions.
Build .1321
- Improved how the live connection protocol deals with long-term network interruptions and network changes.
Build .1319
- DataInfo binder should not access disposed objects.
Build .1318
- Power state transitions support for the cloud.
- Extended the live connection protocol to detect one way restrictive firewalls.
Build .1311
- Optimized code to reduce idle CPU usage.
Build .1306
- Recover from invalid cloud object / change IDs.
Build .1305
- Bind the disk state (missing, error, working, ...) to the cloud.
- Fixed disk identification not showing up for missing disks after a service restart.
- Resynchronize app states on live connection loss.
- Fixed an incorrect metrics cloud object ID on send.
Build .1300
- Added additional cloud UI bindings for pool tags.
Build .1295
- Live connection protocol updates:
- Server connection steering for load balancing support.
- Improved connection management.
Build .1294
- Issue #28583 Balancing was sometimes not grouping pool parts into storage unit groups.
- Update VDS physical disk IDs on existing pool parts.
- Fixed miscellaneous potential null references based on static analysis.
Build .1293
- Issue #28586 Do not allow access to FileSizeTracking / CalculateBalanceRatio after the pool has been disposed.
Build .1292
- Added open files count metrics / statistics.
- Report pool free space in the cloud summary app state.
Build .1289
- Added additional per-disk information to cloud summary app state.
Build .1285
- Added support for StableBit Cloud+ API endpoint switching.
- Fetch the live connection servers from DNS.
Build .1282
- Issue #28571 If an update file is missing when clicking install, requeue it for download.
- Issue #28571 Periodically check to make sure that a downloaded update file is still there.
- Added additional live connection servers.
- Updated StableBit Cloud dev / local scope domains.
Build .1278
- Issue #28551 Clarified balancing settings as suggested:
- Balancer tooltip now indicates if a balancer can force immediate balancing or set real-time file placement limits.
- Force immediate balancing is independent of the automatic balancing setting.
- Scanner balancer is the only one that can force immediate balancing.
Build .1277
- Fixed restarting the notifications client in a disconnected RDP session.
Build .1273
- Fixed a crash in the activation required notification tray.
- Fixed a cloud store synchronization issue that was causing objects to be reverted to their previous state. This was rare but caused all kinds of strange intermittent behavior, such as licenses appearing to get spontaneously deactivated once in a while.
- Tweaked cloud license activation timing.
- Fixed auto cloud linking.
Build .1265
- When cloud licensing is enabled and there is no license found, explicitly show that in the cloud status dialog.
- Updated the cloud update signature keys to be in sync with the StableBit Cloud Installer.
Build .1262
Build .1260
- General reliability improvements for AppStates / Notifications.
Build .1255
- Disable local email notifications when StableBit Cloud email notifications are enabled.
- Handle unknown storable types during cloud synchronization.
Build .1249
- Fixed repetitive license queries.
Build .1248
- Report service status to the cloud.
Version 2.3.0.1244
- Metrics / statistics from older builds will no longer be accepted.
Build .1243
- Improved AppState retry logic.
- Issue #28501 Simplified license expiration detection.
Build .1240
- Fixed duplicating / balancing app state race condition.
Build .1239
- Tweaked the cloud update download retry delay.
- Added StableBit Cloud tooltip icons throughout the UI to indicate what is being synchronized with the cloud and in some cases with other apps.
- Updated StableBit Cloud branding.
Build .1236
- Driver Issue #28485 Do not report a file change when the FilePositionInformation is set.
- Requeue metrics if unable to send using the API.
Build .1233
- Added support for transactional consistency to AppStates.
Build .1231
- Live Connection protocol V8.
Build .1224
- Increased Live Connection retransmission aggressiveness.
Build .1222
- Statistics are now reported every 30 minutes.
- Not all statistics were being reported at shutdown.
Build .1220
- Issue #28475 Fixed license activation under non-Gregorian calendars.
Build .1219
- Extended the live connection protocol to support health and activity reporting:
- Health alerts will be reported at all times.
- Activity alerts will only be reported when the dashboard is open.
- Summary reporting will be accelerated when the dashboard is open.
- The HTTP API will be used when the live connection is not available or as a fallback.
- Restart tray notifications on failure.
Build .1217
- Health / activity reporting retry control.
Build .1216
- Enabled real-time metrics in activity alerts.
Build .1215
- Added a health summary to health and activity reporting.
Build .1210
- Driver Issue #28460 Fill in the FILE_ATTRIBUTE_REPARSE_POINT attribute, file ID, and reparse tag, when STATUS_BUFFER_OVERFLOW is returned.
Build .1204
- Fixed disappearing health alerts after StoreSynchronizationService reconnect.
Build .1202
- Added support for hiding health alerts in the cloud.
Build .1200
- Added the StableBit Cloud health and activity reporting feature.
Build .1197
- Driver Issue #28459 Removed the in-flight IRP limit for reads and writes on Windows 10 / Windows Server 2016 / Windows Server 2019 and newer.
Build .1195
- Driver Issue #28458 Support for FILE_SUPPORTS_EXTENDED_ATTRIBUTES, FILE_FILE_COMPRESSION, FILE_SUPPORTS_OBJECT_IDS, and FILE_SUPPORTS_ENCRYPTION, is dependent upon the capabilities of the pool parts.
Build .1193
- Driver Issue #28455 Return STATUS_INVALID_INFO_CLASS for IRP_MN_QUERY_DIRECTORY when the info class is not recognized.
Build .1190
- Fixed OS name reporting to the StableBit Cloud.
- Fixed cloud balancers not synchronizing sometimes.
- Fixed cloud licenses not activating in a timely manner.
Build .1185
- Extended the licensing system to be better at automatic activation / deactivation when connected to the StableBit Cloud.
Build .1165
- Issue #28438 Added a Danish machine seeded community translation.
Build .1163
- Issue #28433 The external drive flag for pool parts was not being updated.
Build .1161
- Driver Fixed a crash on shutdown.
Build .1159
- Fixed a deadlock in the DataInfoBinder.
- Issue #28416 Added PoolPartUpdates_AlwaysConsistent config option to disable the remeasure and duplication check passes after a missing disk comes back online.
Build .1157
- Tweaked Web UI object synchronization throttling rules.
Build .1155
- Added the pool organization bar to the Web UI.
Build .1154
- Tuned statistics reporting intervals to enable additional statistics in the StableBit Cloud.
Build .1152
- Included balancing plugins with the main installer.
- Driver Rebuilt the virtual disk driver.
- Using the latest tooling.
- Certified for Windows Server 2019.
- Fixed GPT emulation (was causing issues on Windows 10 Insider Preview).
Build .1144
- Web UI compatibility changes for the StableBit Cloud.
Build .1142
- Issue #28320 Disk identification infos are no longer persistent.
Build .1138
- Driver Upgrade all legacy pool IDs to use a unique legacy pool ID.
- Legacy pools are pools that were originally created with versions < 1.3 (before 2013).
- Multiple legacy pools connected to the same StableBit Cloud account will no longer share the same settings.
- Upgraded legacy pools will continue to emulate legacy MBR disks in order to prevent mount point reassignment. Non-legacy pools emulate GPT disks.
- Fixed metrics flush on shutdown.
Build .1130
- Issue #28379 Added a DrivePool_CultureOverride setting to force a particular UI language (will need to restart the service and UI).
- If pool synchronization fails, write an error report and retry 10 times.
Build .1128
- Added per-object type synchronization throttling rules.
- Real-time object synchronization is now active only when the StableBit Cloud Web UI is open.
- Reported in the live connection status tooltip.
Build .1124
- Improved StableBit Cloud uptime status reporting:
- Before allowing new connections, check the availability of the service.
- If the service becomes unavailable while connected, all functionality pauses.
- Do not show security specific errors unless there is an explicit deauthorization from the service.
Build .1123
- Driver Issue #28336 Added support for FSCTL_SET_PURGE_FAILURE_MODE.
- Driver Signed driver with SHA-256.
Build .1121
- Fixes for StableBit Cloud license management.
Build .1118
- Added status tooltips to each connected StableBit Cloud service:
- Application settings synchronization:
- Shows how many objects were synchronized to / from the cloud in this session (objects are only synchronized when they change).
- Live connection:
- Shows the current connected host.
- Packet loss percentage on send / receive.
- Packet retransmission factor on send (e.g. x1.0 means 1 additional packet had to be sent to ensure reliability of the connection per each one sent normally).
- License management:
- Shows whether cloud licensing is enabled.
- If enabled, shows whether a license was found in the cloud or not for the current app.
- Enhanced update delivery:
- Shows the currently subscribed to scope and channel for update push notifications.
- Shows if an update was found and which version.
- Metrics and statistics:
- Shows if real-time metrics are currently being sent via the live connection (if the Web UI is open in the cloud).
Build .1117
- Lowered timeouts on metrics API calls.
- Fixed a thread pool exhaustion caused by metrics if the server is not responding.
Build .1112
- Improved overall handling of StableBit Cloud server downtime.
Build .1106
- Live connection protocol reliability fixes.
- Fixed a lockup in the StableBit Cloud token service.
- Added a backup automatic update mechanism.
- Metrics improvements to prevent double reporting when the transmission protocol switches.
Build .1098
- Added metrics support for the StableBit Cloud:
- Various metrics are supported, depending on the application (e.g. disk space, performance, bandwidth).
- Metrics can be sent either in real-time (for immediate display purposes), or periodically (for historical statistics).
- Real-time metrics require a live connection and will be enabled as needed, depending on the web app usage.
- Historical metrics are sent at all times.
- 3 transmission protocols are supported:
- Unreliable secure UDP (very low overhead): used for real-time metrics.
- Reliable secure UDP (low overhead): used for historical metrics.
- JSON HTTP (normal overhead): used for historical metrics when UDP is not available or cannot be used due to poor network conditions.
- Batching of multiple metrics is supported on all protocols for efficient transmission (up to 60 metrics per 1000 bytes for UDP).
Build .1079
- If remote control cannot be started for any reason, show a warning in user feedback.
Build .1078
- Added the cloud DataInfo binder, enabling the ability to build real-time app UIs in the cloud.
Build .1074
- Updated the remote control protocol to handle computer names more consistently.
- Updated the service control DLL in the installer in order to avoid unnecessary reboots.
- The performance pane was not always getting enabled when using remote control.
Build .1069
- For remote control, fixed multicast when multiple connected adapters are present and the LAN adapter doesn't have the lowest interface metric.
- Added a what's new link to the automatic cloud update dialog.
Build .1064
- The service will now start and stop the notification UI automatically for all active sessions.
Build .1057
- Fixed Windows tray notifications when balancing plugins are installed.
Build .1056
- Require administrative access for the UI.
Build .1052
- Improved the reliability of the live connection in the presence of heavy packet loss.
- Added StableBit Cloud powered automatic updates.
- Instant update notifications. No need to "check for updates", updates are pushed to you in real-time as soon as they're released.
- Support for multiple release channels (Dev BETA, BETA, Release Final).
- Automatic downloads.
- Legacy automatic updates will be disabled when connected to the StableBit Cloud.
- Fixed tooltip positioning.
Build .1030
Build .1028
- Added centralized licensing with the StableBit Cloud.
- The local licensing UI will be inaccessible when using cloud licensing.
- Issue #28236 Trim whitespace before using an email address for notifications.
- Added dev / local server toggles for the StableBit Cloud.
- Added the ability to target specific versions with automatic updates.
Build .1025
- Enabled StableBit Cloud integration:
- Application settings synchronization:
- Synchronizes all persistent settings to the cloud.
- If something goes wrong and you lose your settings locally, or you have to reinstall the OS, simply connect the app to the cloud to restore your settings.
- StableBit DrivePool specific features:
- Per pool persistent data (such as Performance settings, Balancing settings) are automatically synchronized across different app instances connected to the same StableBit Cloud account.
- Optimized how Store item change notifications are issued:
- Coalesce multiple item change notifications into a single notification if they are issued over the same object and happen within the same lock context.
- Use 2 dedicated background item change notification threads that are separate from other change notification threads.
- Do not throttle item change notifications if the maximum notification queue size is exceeded, simply drop any additional notifications and log a warning.
Release
Version 2.2.5.1237
- Driver Issue #28485 Do not report a file change when the FilePositionInformation is set.
- Issue #28475 Fixed license activation under non-Gregorian calendars.
- Driver Issue #28460 Fill in the FILE_ATTRIBUTE_REPARSE_POINT attribute, file ID, and reparse tag, when STATUS_BUFFER_OVERFLOW is returned.
- Driver Issue #28459 Removed the in-flight IRP limit for reads and writes on Windows 10 / Windows Server 2016 / Windows Server 2019 and newer.
- Driver Issue #28458 Support for FILE_SUPPORTS_EXTENDED_ATTRIBUTES, FILE_FILE_COMPRESSION, FILE_SUPPORTS_OBJECT_IDS, and FILE_SUPPORTS_ENCRYPTION, is dependent upon the capabilities of the pool parts.
- Driver Issue #28455 Return STATUS_INVALID_INFO_CLASS for IRP_MN_QUERY_DIRECTORY when the info class is not recognized.
Version 2.2.4.1162
- Driver Fixed a crash on shutdown.
- Driver Rebuilt the virtual disk driver.
- Using the latest tooling.
- Certified for Windows Server 2019.
- Fixed GPT emulation (was causing issues on Windows 10 Insider Preview).
- Issue #28320 Disk identification infos are no longer persistent.
- Driver Upgrade all legacy pool IDs to use a unique legacy pool ID.
- Legacy pools are pools that were originally created with versions < 1.3 (before 2013).
- Upgraded legacy pools will continue to emulate legacy MBR disks in order to prevent mount point reassignment. Non-legacy pools emulate GPT disks.
- Driver Issue #28336 Added support for FSCTL_SET_PURGE_FAILURE_MODE.
- Driver Signed driver with SHA-256.
Version 2.2.3.1019
- Release final.
- Issue #28219 Hidden volumes don't have a volume GUID path so exclude them from use.
- Fixed service-based localizations.
RC
Version 2.2.3.1016
- Release candidate.
- Updated localizations.
- Big updates to Dutch, Japanese, Russian community translations, and miscellaneous updates to other languages.
- Thank you to everyone who submitted translations!
- Visit https://translate.covecube.com to submit any corrections (and don't forget to vote up the best translations).
BETA
Build .1012
Build .1008
- Driver Issue #28108 Added support for FSCTL_GET_NTFS_VOLUME_DATA.
- Improved UI startup time.
Build .978
- Driver Issue #28081 Increased the amount of stack space reserved on callouts.
Build .963
- Driver Issue #28076 Real-time file placement limits were not always being respected when real-time duplication was disabled.
Build .961
- Issue #28069 Added an option to sort the pooled disks list by drive letter / mount point.
- If multiple mount points are defined, the shortest one is used.
- If no mount points are defined, disks are sorted by physical disk number.
Build .960
- Driver Issue #28059 Bytes per sector will now be reported based on what individual pool parts report. This fixes compatibility with 4K drives (that don't emulate 512 bytes per sector) and applications that perform unbuffered
(non-cached) I/O on the pool.
- If CoveFs_ForceSectors512 is set to true, then 512 bytes per sector will always be reported.
- If CoveFs_ForceSectors4K is set to true, then 4096 bytes per sector will always be reported.
- Otherwise, on each query, each pool part will be asked for its bytes per sector and the largest value will be reported for the pool (only 512 and 4096 bytes per sector are supported).
Build .957
Build .953
- Issue #28031 Fixed missing disk warning after reboot when used with StableBit CloudDrive.
Build .952
- Driver Added additional progress tracing to measurement code.
Version 2.2.3.950
- Driver Rebuilt with 17763.134 WDK. Tested and signed for Windows Server 2019.
Build .948
- Issue #27993 Factor out WMI from the system volume device ID query at service start.
Build .947
- Issue #27985 Updated miscellaneous driver deployment code to be FIPS compliant.
- Issue #27985 Made the licensing engine FIPS compliant.
Build .946
- Driver Issue #27976 For deleted files, in response to any future IRP_MJ_DIRECTORY_CONTROL/IRP_MN_NOTIFY_CHANGE_DIRECTORY IRPs, issue an explicit STATUS_DELETE_PENDING without first pending the IRP.
Build .943
- Driver Issue #27973 Issue a STATUS_DELETE_PENDING in response to any pending IRP_MJ_DIRECTORY_CONTROL/IRP_MN_NOTIFY_CHANGE_DIRECTORY IRPs when a file is deleted.
Build .941
- Do not save a copy of the most recent log entries along with an error report (ErrorReporting_SaveLog).
Build .940
- Issue #27945 Update the pool part paths if the persistent mount points (aka volume GUID paths) change.
Build .939
- Issue #27942 Updated CRT dependency to the latest 2017 and fixed deployment on x86.
Build .938
Build .936
- Driver Fixed a deadlock in real-time file size tracking.
Release
Version 2.2.2.934
RC
Version 2.2.2.933
- When running the incorrect installer architecture (x86 vs x64), display a more informative error message.
- Driver Measurement failures were sometimes being treated as a success and were not being shown in the user feedback UI.
- Driver Fixed an intermittent error reading the duplication count tags.
- This was causing measuring to end prematurely, among other issues.
Build .928
- Driver Issue #27757 Fixed a memory leak due to ECP handling.
Release
Version 2.2.1.926
RC
Build .925
- Driver Issue #27818 Fixed bug in filename normalization after FileNameInformation query, when dealing with root directories.
Build .923
- [Issue #27741,#27778] If a file was deleted while balancing was running, there was a chance that a "The system cannot find the path specified" error was encountered.
Version 2.2.1.922
BETA
Build .921
- Issue #27721 Restored the ability to show both pool and disk performance at once, along with variable resizing.
Build .920
- Issue #27792 When "balance immediately" is enabled, and "not more often than every..." is not checked, do not post task completed messages to user feedback in order to avoid excessive feedback.
Build .919
- Added new dpcmd command: "delete-removed-poolparts"
- This will delete all removed pool parts and their contents on a volume.
- Pool parts that are part of a pool are skipped.
- Handles read-only attributes and ACL security.
Build .918
- Issue #27685 Added new dpcmd command: "delete-poolpart-reparse-points"
- Deletes all reparse points under all pool part folders that are part of a pool. Reparse points are not allowed to exist in pool part folders.
Build .917
- Issue #27796 Only save the last balancing state if pool parts were rebalanced.
Build .916
- Issue #27740 After using dpcmd's "ignore-poolpart", if the last pool part in a pool is ignored, that drive and any drives that were missing at the time, were not being made available for use in other pools.
Build .915
- Driver Issue #27786 Fixed a crash due to FCB rekeying (introduced in .911).
Build .913
- Issue #27720 Added explicit trace messages when pool part rebalancing or file placement rebalancing is performed.
- Issue #27720 Got rid of the excessive and misleading "Balance not critical" log messages. That message will now be logged once and only when balancing is skipped due to it not being critical.
- Issue #27720 When manually rebalancing, the last known model state is reset.
- Issue #27720 Added the FileBalance_CalculateRatioInterval advanced setting which controls how often the balancing ratio is recalculated, regardless of how much data has changed on the pool.
- Issue #27720 Added FileBalance_CalculateRatioNotMoreOftenThan which throttles balancing ratio calculations when a lot of data changes on the pool all at once.
Build .911
- Driver Issue #27778 Fixed a potential "file not found" error after a rename.
Build .909
- Issue #27785 Fixed upgrade problem with installer.
- Changed CRT dependency to 2017 (v141).
Release
Version 2.2.0.906
RC
Build .904
- Driver All code signing now uses a Covecube Inc. EV (extended validation) code signing certificate and the file system is signed by Microsoft.
Version 2.2.0.903
- Driver Fixed erroneous and frequent "Incorrect function" error reports and event log entries.
- Driver Issue #27727 Fixed ECP handling.
- This was causing an issue with Windows Defender on Windows 10 and Microsoft update KB4052623 (it did not affect Windows Defender on Windows Server 2016).
- The KB update would fail to install and Windows Defender would crash sporadically.
Version 2.2.0.901
- Driver Fixed measuring issue introduced in RC build 900.
Version 2.2.0.900
- Eliminated some extraneous user feedback.
- Driver Reduced non-paged memory consumption of reparse points.
Build .898
- When using another language, added the ability to switch to English from Settings.
- Deprecated the DrivePool_CultureOverride setting.
- Applied localizations.
- Professional translations for French, Italian, German and Spanish.
- Community translations for Bulgarian, Japanese, Dutch, Polish and Russian (https://translate.covecube.com/).
- Driver Release candidate.
BETA
Build .896
- Issue #27696 Fixed some scrolling issues in the balancing window.
Build .895
- Driver Issue #27704 Added a new setting (CoveFs_WaitForPoolsAndPoolPartsAfterMountMs) that controls how long the service will wait for all of the detected pools to finish mounting, and then for all of the known pool parts to get
recognized on those pools (see CCR: https://stablebit.com/Admin/IssueAnalysis/27704).
- Issue #27704 Changed the default of CoveFs_WaitForKnownPoolPartsOnMountMs to 10000.
Build .893
- Issue #27699 Added the ability to force a recheck of file duplication across all of the pools.
- Issue #27699 Updated the file part automatic conflict resolution rules to better deal with file parts that have the same last write time but different sizes. In that case, the smaller file parts will be replaced with the larger
ones.
- Driver Issue #27699 When running check-pool-fileparts using dpcmd, the attributes of file parts will be checked for consistency. If inconsistencies are found, the Service will be notified and will resolve them.
Build .892
- BitLocker should monitor for unlocks while waiting for pool parts to arrive.
Build .891
- Driver Issue #27695 Revamped how pools are mounted in order to speed up the mounting process, and at the same time, ensure that all of the known pool parts are present at pool mount time.
- Pools can now be made aware of how many total pool parts they are comprised of.
- Legacy pools, prior to receiving this information, will function with an "unknown" pool part count, just as before.
- If a pool is aware of how many pool parts it's made of, at mount time, it will wait for all of those pool parts to arrive before allowing the OS to finish mounting the pool.
- This wait time is controlled by a new setting CoveFs_WaitForKnownPoolPartsOnMountMs. Set to 0 to disable this wait.
- Additionally, just as before, all pools can wait for the system to finish enumerating new volumes.
- This wait time is controlled by CoveFs_WaitForVolumesOnMountMs. Again, you can set it to 0 to disable.
- Generally, this wait will not take place if the pool is aware of how many pool parts it has.
Build .890
- Fixed a few file duplication log messages.
Build .889
- Driver Improved performance opening / creating files, especially when there are many thousands of files open on the pool (optimal up to ~1 million).
- Read / write pool performance now shows the 10s average in the tooltip.
- Added an open file count to the pool performance pane, including the file open rate in the tooltip.
- This is not a count of open handles but a count of how many unique files are currently open on the pool (including files that don't have handles associated with them).
Build .885
- Driver Renaming the volume name of a pool that had other pools as pool parts did not work.
- Issue #27679 Boot time logging trace files are now named *.Boot.etl to differentiate them from regular file system trace files.
- Issue #27679 The switchover from boot time logging -> regular file system logging now takes place at the end of service startup. The initial state of file system logging is controlled by CoveFs_TracingEnabled (which is disabled by default). If
boot time logging was taking place, then file system logging will always be enabled by default with a 1 second
flush to disk.
- Issue #27679 Boot time logging now flushes the log to disk every second.
- Issue #27679 Fixed boot time logging generating empty trace files.
Version 2.2.0.881
- Driver Issue #27689 Added CoveFs_FastIo advanced setting. When set to false, Fast I/O will not be used in the file system.
Build .878
- Performance sampling was sometimes not starting when a new pool was created.
- Fixed deadlock when starting performance sampling.
Build .877
- Driver Fixed reparse point directory enumeration attribute issue for reparse points that exist directly under the root.
- Driver Upgraded to the latest WDK (1709) and compiled driver in VS 2017.
Build .876
- Fixed service deadlock in the performance sampling controller.
Build .875
- Translate pool parts under disk performance.
Build .874
- Disable drive letter toggle menu item while toggling drive letter.
Build .871
Build .870
- Issue #27663 Use the kernel path to locate the VDS volume for a pool part.
Build .869
- Preserve the currently selected drive across UI restarts.
Build .868
- Performance sampling would not start when the UI was opened.
- Issue #27625 Lowered CPU usage when the performance pane is open.
Build .866
- Issue #27655 Added an indicator to the pooled disk tooltip to show when a drive is detected to be external.
- Driver Issue #27655 When a file is opened, each open context is given a priority. Read striping will always work over the highest available priority class.
Priority classes from lowest to highest are:
- CloudDrive, CloudPool, LocalExternalDrive, NonCloudPool, StandardDrive
Build .865
- Added an option to sort pooled disks by the physical disk number.
Build .864
Build .863
- Driver Issue #27638 Added support for FileRenameInformationEx.
Build .862
- Driver Issue #27647 Processing a reparse point that ended in a \ on Windows 7 would cause NTFS to crash.
Build .861
- Fixed pool selection bar not loading when there are no pools.
Build .860
- Use the file size and not the file allocation size when reporting file pattern violations.
- When disabling duplication, file placement rules should have been respected by deleting files that violated those rules first.
- File placement balancer was violating the fill limit at times.
- Synchronize the performance pane state across all of the pools.
- Added a toggle button to hide pool performance in the UI.
Build .859
- Do not show the performance pane until the first sample has been collected. Instead, show a loading bar.
- When a suitable destination could not be found for a file placement rule (i.e. not enough target disks selected to fit all of the files necessary), the total reported size of files that weren't moved was sometimes being exaggerated in the warning UI.
- Show the maximize / minimize buttons in the vertical UI.
- Issue #27631 Canceling an update download wouldn't work in a timely manner if the server wasn't responding.
- Added an option to force an update check under the settings menu.
Build .858
- Added the ability to easily assign and remove drive letters from the Manage Pool menu.
- The same drive letter will be reassigned to the same drive, whenever possible.
- Pools that are not part of other pools and have no drive letter assigned to them will get a warning in the UI.
- Driver Fixed an issue with the virtual disk driver pool spawning code that would cause the same pool to be spawned more than once.
Build .854
- Miscellaneous UI fit and finish tweaks.
- Updated disk tooltips.
- Fixed DPI on PNGs.
Build .853
- Fixed a UI crash when changing duplication.
- Background file duplication was not respecting file placement rules correctly.
- Fixed path hint construction for file duplication.
- Changed how path names are displayed in the UI.
- Hide kernel volume path prefixes.
- Translate pool parts that represent other pools into human readable pool names.
- Fixed the check boxes in the pool selection bar context menu.
Version 2.2.0.852
- Issue #27628 Fixed error message when opening performance pane.
- Added a context menu to the pool selection bar.
- Display used space vs. capacity in the pooled disks list when in horizontal UI mode.
Version 2.2.0.848
- Fixed issue upgrading from .561.
Version 2.2.0.847
- Driver Fixed crash in Fast I/O lock / unlock path.
Build .846
- Fixed drive removal when files are in use.
Build .845
- Fixed "Can't cancel task" UI error.
Version 2.2.0.844
- Driver Fixed lockup while shutting down hierarchical pooling and cloud drives.
Build .843
- Fixed pool enumeration issue on service startup.
Build .841
- Fixed non-pooled volumes not updating their mount paths in the UI.
Build .840
- Force deletion of the recycling bin, "System Volume Information", and .covefs folders when a pool part is being removed. (deal with invalid ACLs and read-only attributes).
- Perform background duplication after measuring completes, if it's inconsistent.
- Sort pools by name.
- Driver Fixed hierarchical pool part duplication tags. Hierarchical pool part duplication tags will reset.
- Fixed pooled disk list UI flicker.
Build .836
- Driver Issue #27622 Fixed detection of CoveFS revision mismatches after upgrade.
Build .835
- Driver Added explicit pool arrival / departure notification events (instead of VDS notifications).
Build .834
- Added additional synchronization with StableBit CloudDrive .914+ on service start.
Build .833
- Issue #27582 Remember and restore the main window's startup position.
Build .832
- Issue #27602 Added the concept of an invalid file placement rule.
- If a custom file placement rule no longer has any of its disks checked, then it's considered invalid.
- Invalid rules will be marked with a red file placement icon and an exclamation mark on the file placement's rules tab. An appropriate tooltip will be shown as well.
- Invalid rules have no effect on file placement.
- Folder rules can never be invalid (they will be automatically cleaned up as before).
Build .831
- Driver Issue #27617 Added support for the undocumented FileDispositionInformationEx (used by Linux).
Build .830
- Driver Issue #27600 Fixed opt-in for no-execute (NX) non-paged pool.
Build .829
Build .828
- Driver Fixed access denied error with cloud pools.
Build .827
- Driver Pools that were unmounted were not immediately delisting their data structures if there were handles open to the volume or file system.
- Added the list-pools command to dpcmd. This will list all of the mounted pools.
- Implemented local error reporting for the UI. Error reports will be saved to: %PROGRAMDATA%\StableBit DrivePool\UI\ErrorReports
- Added the force-close-open-files command to dpcmd. This lets you force close open files on a pool (or pool part).
- Added the list-open-files command to dpcmd.
- This is capable of listing all of the open files and file parts on all of the pools, and their associated processes and PIDs (when applicable).
- Open files that have had all of their pool part handles closed will be marked with an [X].
- Open files that don't have an associated open handle (e.g. memory mapped files, files open by the kernel cache manager) can be optionally listed and will be marked with a [M].
- Open alternate data streams will be listed with a [S].
- Changes to dpcmd's check-pool-fileparts:
- File part and directory part summary statistics will now be listed by pool part UID.
- Information about named alternate data streams will now be listed in the output and in the summary statistics.
Build .823
- Driver When read striping is disabled, and multiple file parts are available, avoid choosing cloud drives and cloud pools.
- Driver Added the concept of a cloud pool. A cloud pool is a StableBit DrivePool pool that consists entirely of StableBit CloudDrive drives. Such pools are treated like cloud drives when deciding which disks to read from. Cloud pools will be marked in
disk tooltips.
Build .822
- Refactored VDS out of the pool synchronization process. The service no longer needs to query every volume in the system when looking for pools.
Build .821
- Force UI updates at critical points, even if the service is busy.
- Measuring status was not being reported consistently.
Build .819
- Driver Save measurement data on pre-shutdown.
- Driver Do not allow remeasure after StableBit CloudDrive pre-shutdown.
- Driver Wait for all of the pools to finish mounting their file systems on service start.
Build .812
- Duplication tag repair code is now aware of pool part tags.
- Driver Pool part duplication tags are now associated with a particular pool.
Build .811
- Driver When a pool is storing part of the contents of another parent pool, you can now set folder duplication and file placement rules in the child pool, on the partial contents of the parent pool. These rules are separate and different from the parent
pool's file duplication and file placement rules.
- E.g. If HybridPool consists of CloudPool and LocalPool, where CloudPool is a pool of multiple cloud drives, and LocalPool is a pool of local disks, you can *selectively* duplicate the contents of HybridPool that is stored on LocalPool over
multiple local disks. On LocalPool, you can now set the duplication of the "\Pictures" contents of HybridPool to x3,
while the "\Videos" contents of HybridPool to x2. While on CloudPool, you can make different duplication and file
placement choices of the "\Pictures" and "\Videos" contents of HybridPool.
Build .810
- Resolving and repairing duplication tag conflicts was not working for read-only folders (such as .covefs).
Build .809
- Do not check duplication tag consistency under PoolPart folders that are on the pool (the parent pool is responsible for that).
Build .808
- Always show other pools in the folder duplication window, even when show hidden folders is unchecked.
Build .807
- Driver Fixed STATUS_PRIVILEGE_NOT_HELD when adding a disk to the pool.
Build .806
- Issue #27597 Fixed some dpcmd commands that weren't working (e.g. ignore-poolpart, unignore-poolpart).
Build .805
- Driver Issue #27596 Fast I/O MDL reads now work with read striping enabled.
Build .804
- Additional miscellaneous UI responsiveness fixes.
Build .803
Build .802
Build .801
- Driver Issue #27586 Persist the CoveFs_ReportAs... settings to registry and apply at boot time.
- Improved Add / Remove action UI responsiveness.
Build .800
- Setting file placement rules should only affect the file placement clean state of that pool.
- Do not run background duplication or balancing when other pools in the same pooling hierarchy are doing so at the same time.
Build .799
- Driver Fixed some PoolPart arrival / departure timing issues having to do with hierarchical pooling.
- Driver You can now enable folder duplication on the partial contents (PoolPart) of a pool.
- E.g. If OmniPool consists of CloudPool and LocalPool, where CloudPool is a pool of multiple cloud drives, and LocalPool is a pool of local disks, you can duplicate the contents of OmniPool that is stored on LocalPool over multiple local disks.
- The service would not start if there were pattern limits set on a missing disk.
Build .798
- Driver Added coordination between StableBit CloudDrive (.900 and newer) and StableBit DrivePool (.798 and newer) in order to ensure that any cloud drives part of the pool don't cause missing disk warnings, incomplete file warnings, unnecessary remeasures,
and unnecessary duplication passes after a reboot.
- Fixed reboot requirement after upgrade.
- When the StableBit CloudDrive service is starting, wait for it to finish starting.
Build .781
- Fixed disabling pool duplication on a pool that is part of another pool.
Build .780
- Driver Issue #27573 When background duplication needs to regenerate a file, first prefer to use a local drive as the source, then another pool, and finally a cloud drive, if nothing else is available.
Build .779
- Advanced application settings are now stored in %PROGRAMDATA%\StableBit DrivePool\Service\Settings.json:
- Each setting has a "Default" and "Override" values.
- When "Override" is set to null, the "Default" value will apply.
- Set "Override" to some value other than null in order to override the default.
- Setting changes are applied instantly, but some settings may require a service restart or a reboot in order to go into effect.
- The old DrivePool.Service.exe.default.config is no longer required.
- If you've specified settings by creating a DrivePool.Service.exe.config, those will continue to work and will automatically propagate to Settings.json as "Default" settings. It is recommended to remove DrivePool.Service.exe.config and apply all of the
custom settings as "Override" values in Settings.json, but it's not required.
Build .777
- Added the service log to the troubleshooting menu.
Build .776
- Driver Cloud drives are now marked in the disk tooltips and when identifying missing disks.
- Fixed various UI quirks and optimized things.
- Added built-in performance profiling to the UI (hit 'P' to activate in BETA builds).
Build .775
- Show the exact amount of free space on the pie chart.
- The task priority increase button should be synchronized with the task's state.
Build .774
- After removing a missing disk, check for meaningless pattern limits and invalidate measurement data.
Build .773
- Bug fixes and usability tweaks to the file placement UI.
Build .772
- Got rid of the troubleshooting start menu shortcuts. Use DrivePool.UI.exe /? for command line options.
- Reorganized the Pool / Settings menus.
- The Troubleshooting menu is now always visible.
- Issue #17740 Added verify after copy to the Troubleshooting menu (it will default to DrivePool_VerifyAfterCopy).
Build .770
- Issue #19772 File backed virtual drives cannot be added to the pool.
Build .769
- Issue #27220 After removing a missing disk, a duplication error on the ".covefs" metadata folder might have been shown.
- Driver Issue #27553 Fixed reparse processing when the filename contained a trailing backslash.
Build .767
- Driver Fixed system crash on drive removal.
Build .766
- Issue #17688 Missing disk notifications were showing up for offline pools.
Build .765
Build .764
- Driver Issue #27212 Do not allow applications to set encryption when EFS is disabled (CoveFs_EfsEnabled).
- Never allow the service to launch multiple times.
Build .762
- Driver Issue #25953 Upgraded reparse point storage format to V3. Older reparse points will still load.
- Driver Issue #25953 Added support for all types of reparse points (including non-Microsoft).
- Driver Issue #25953 Updated how reparse points are processed in order to fix remote to local symlinks.
Build .760
- Driver Issue #25961 When "file placement rules respect real-time file placement limits set by the balancing plug-ins" was not checked, and a new file was being created on a pool part with a protected or unprotected real-time placement limit set,
the permissible file placement rule would not override the restrictive real-time protected or unprotected rule.
Build .759
- Issue #25962 Do not allow multiple pools to exist in the store with the same Pool ID.
- Issue #25962 Do not allow multiple pool parts to exist in the store with the same UID.
Build .757
- When a drive is being removed from the pool, and there are in use unduplicated files preventing the drive removal, a dialog will show exactly which files are in use and by which process.
- Driver Fixed crash when cloning an exceptionally long path due to running out of stack space.
- Driver Rewrote how drive removal works:
- The pool no longer needs to go into a read-only mode when a drive is being removed from the pool.
- Open duplicated files can continue to function normally, even if one of their file parts is on the drive that's being removed.
- Open unduplicated files that reside on the drive that's being removed will need to be closed in order for drive removal to complete successfully. An option to automatically force close existing unduplicated files is now available on the drive removal dialog.
When not enabled, the service will move everything that's not in use before aborting drive removal.
- Driver Added the ability to close handles on the pool, either by file name, pool part, or a combination of those.
- Driver Added reference counting and locking to open contexts.
- Driver Kernel code in common with StableBit CloudDrive is now shared with StableBit DrivePool.
- Driver Ported file system to C++.
Build .754
- When there were > 100 file duplication errors, the UI would not connect to the service properly.
Build .753
- Driver Issue #27155 Avoid using cloud drives when read striping, except when all of the available file parts are on cloud drives.
Build .752
- Issue #27352 There was a small chance that "Sequence contains no elements" would be raised when duplicating files in the background.
Build .751
- Issue #27353 For file placement rules, when never placing files on a pool part, use a maximum ulong for the pattern limit instead of the volume size.
Build .750
- Updated to VS 2017 and WiX 3.11.
Build .748
- Issue #27481 Added file system tags to disk tooltips and the pool pie chart.
- Issue #27481 Added additional .config settings for file system reporting:
- CoveFs_ReportAsNtfs (not new) - Always reports as NTFS.
- CoveFs_ReportAsRefs - Always reports as ReFS.
- CoveFs_ReportAsPoolPartFileSystem (default) - Reports as the file system of the pool parts. If CoveFs_AllowMixedFilesystems is enabled and the pool consists of mixed file systems, then it will report as "CoveFS".
- If none of the above are enabled, will report as "CoveFS".
- Driver Issue #27481 The pool will now report the file system of the pool parts (ReFS vs NTFS).
Build .747
- Driver Issue #27464 Do not process SetFile and QueryFile where FileInformationClass >= FileMaximumInformation.
Build .746
- Driver Issue #27438 The multiple duplication tag was sometimes not being written to the pool part root folder. This was CoveFS 2 behavior and worked correctly as far as duplicating files, but it was causing the multiple tag cleanup routine to never run,
even on new pools. The multiple tag cleanup code simply removes redundant duplication tags that are no longer necessary.
To cleanup your multiple tags, just change any duplication setting anywhere on the pool once.
- Driver Issue #27438 Fixed "access denied" error setting folder duplication after build .744.
Build .745
- Driver Issue #27425 Opt in for no-execute (NX) non-paged pool.
Build .744
- Driver Added hierarchical pooling support:
- Pools are now made up of either disks or other pools.
- Each pool handles its own separate folder duplication settings.
- Balancing can work over a pool part, but file placement settings are limited to the entire pool part only.
- Circular pooling is not allowed (e.g. Pool A -> Pool B AND Pool B -> Pool A). Contrary to popular belief, this does not lead to infinite disk space.
Build .742
- Issue #27399 The balancing "not more often than" setting is now more granular.
Build .741
- Driver Issue #27389 Windows 10 is sending us a query for "FileIdInformation", even though it's not supposed to (according to MSDN and the SDK). Handle it.
Build .740
- Issue #27333 Ensure that balancing works with file times that are at their maximum value of 0x7fffffffffffffff (year 30828).
Build .739
- Driver Fixed access denied on drive removal.
Build .738
Build .737
- Driver Issue #27226 Multiple reparse point fixes:
- When a reparse point could not be persisted to disk, there was a chance of memory corruption.
- Renaming a directory that contained one or more reparse points under it, or in its sub-directories, would cause those reparse points to get lost.
- Opening a reparse point directly and querying for information about that reparse point would not return reparse-based information if Fast I/O was enabled (i.e. it would look like a regular file). This led to some strange behavior, such as when copying a reparse
point, a 0 byte file would be created.
Build .736
- Issue #27285 Added to dpcmd the ability to work with pools which are mounted through a symbolic link.
Build .735
- Fixed the NT API calling convention.
Build .734
- Do not report missing disks for pools that are completely disconnected.
Build .733
- Tweaked the UI for the Essentials Dashboard.
Build .727
- Driver Fixed pool lockup on rename or delete while measuring.
Build .723
- A reboot should not be required after performing a clean installation on Windows 10 / Server 2016.
- msiexec on Windows 10 is not marked for Windows 10 compatibility and therefore runs in Windows 8.1 compatibility mode.
- Therefore, *all* MSI installers that attempt to detect the current Windows version (in InstallFinalize) will detect Windows 8.1 and might end up installing files that were meant for Windows 8.1.
- Fortunately, after the installer finished, our service was smart enough to detect the incorrect drivers installed and was fixing the problem by replacing them with the correct files for Windows 10. This is what was causing the extra reboot after a clean
install, and this reboot will no longer happen.
Build .722
- Fixed unusable for duplication calculation.
- Fixed inactive border color on Windows 10 / Windows Server 2016.
Build .721
- Driver Measuring can now be boosted in priority from the pool organization bar. The same priority rules apply here as the rules that apply to the CoveFs_MeasureBackgroundTaskPriority advanced setting, except priority changes happen in real-time
and no reboot is required.
- Driver Measure each pool part individually and do not adjust the file sizes of other measured pool parts.
- Driver When measuring the pool, a tooltip over the pool organization bar will now show which pool part is currently being measured and which directory.
- Driver Added additional locks to the measuring pass to prevent file creation / overwriting while a directory is being enumerated and measured.
- Driver Do not attempt to measure file allocation sizes for statistics and balancing purposes.
- File allocation sizes cannot be accurately measured in real-time under all circumstances. File compression, deduplication and potentially other technologies are able to modify the file allocation sizes on the underlying volume in the background. Without
any way of subscribing to get notified about these types of changes, there is no way to determine whether the recorded file
allocation size at end of I/O time is still accurate later.
- For balancing purposes, in order to maintain the accuracy of the balancing rules, always use the file sizes sum to compute the balancing model and to determine the balancing ratio, and never correct them to reflect the actual used space on the volume.
- If the measured sum of all file sizes exceeds the total used space on the volume, as reported by the file system, always consider the measured sum of all files to be authoritative. The measured sum of all files together with the volume free space, as reported
by the file system, will constitute the pseudo-capacity of the volume. For balancing purposes, this pseudo-capacity can be greater
than the actual volume capacity when compressed or sparse files are present on the volume.
- When the pseudo-capacity is greater than the actual volume capacity, it will be noted so in the tooltip that appears over any such pooled drive.
- The pseudo-capacity is used to draw the statistics graphics, but it is not directly shown anywhere in the UI.
- A remeasure will be forced after upgrading to this build.
Build .711
- Driver Fixed a deadlock when one or more cloud drives (from StableBit CloudDrive) are storing their data on one pool, and those drives are then used to create another pool.
- Modified the pool part locking model to accommodate this usage scenario.
- Each pool now uses its own thread pool for finding files in pool parts (CoveFs_AsyncFindFilesThreads).
- Reduced the shared critical thread pool to 2 threads (CoveFs_AsyncFindFilesThreads).
Build .708
- Driver Added additional locks to the measuring pass to prevent directory changes while enumeration is taking place.
- Added an advanced setting to turn off background task priority for the measuring pass (CoveFs_MeasureBackgroundTaskPriority).
- When disabled, the kernel measuring thread will run at normal thread priority and normal I/O priority. Finding files on pool parts for measuring will run in parallel at time critical priority.
- When enabled (default), the kernel measuring thread will run at DrivePool_BackgroundTasksPriority priority (defaults to lowest) and very low I/O priority. Finding files on pool parts for measuring will not run in parallel (single threaded) and will use
idle thread priority.
- A change to this setting requires a service restart and a reboot (or 2 reboots) to apply.
Build .705
- Added advanced setting to allow mixed ReFS / NTFS drives part of the same pool (CoveFs_AllowMixedFilesystems).
Build .704
- The file mover and the file pattern mover will now work with file allocation sizes when computing move sets.
- The volume equalization balancing algorithm was not equalizing protected files properly and sometimes it was computing incorrect unprotected file deltas.
Build .703
- After performing any pool management tasks (e.g. change duplication, add / remove drive), the balancing ratio and balancing state would not update until the service was restarted.
Build .702
- If a folder on the pool could not be duplicated by the background duplication pass, and on a subsequent pass that folder is deleted, do not error out with a path not found error.
- When finding the common path prefix for a duplication pass after one or more warnings, do not consider the file name as part of the search.
Build .701
- Driver Do not allow mixing of ReFS and NTFS volumes in the same pool (unless they are already mixed).
- When formatting a new drive, let VDS choose the correct bytes per cluster instead of using 4096.
Build .699
- Driver Measurement pass was failing when encountering a reparse point in a pool part.
- Driver Added additional details to user feedback for failed measuring attempts (pool part, file path, error code and error message).
- Added CRT 2013 / 2015 dependency and CoveUnmanaged in order to access the NT API directly, bypassing Win32.
Build .696
- Applied Windows 10 UI tweaks to child windows like folder duplication, remove options, etc...
Build .695
- Driver Measuring pass would not correctly measure files with > 2 file parts (forced remeasure).
- Driver Querying for a file ID on the root directory would incorrectly modify the file name to be blank. Subsequently, opening another handle to the root directory using a related file object (with the previously modified file name) and a blank file name would
incorrectly result in trying to open a blank file name. This would end up raising an invalid parameter error.
- Driver Fixed processing create with "\\" as the path.
Build .693
- Fixed persisting balancing settings.
- Added volume statistics to "dpcmd list-poolparts".
Build .692
- Driver File size tracking updates:
- Reworked the file size tracking algorithm to update file size statistics whenever a file handle is closed. Previously it would only update statistics when the last file handle was closed.
- Fixed numerous issues having to do with file size tracking and measuring.
- In order to better synchronize the presentation of statistics in the UI, the pool part free space and total size are now retrieved directly from the kernel at the same time as the file size statistics. This only happens when the UI is running in order to
conserve system resources.
- Added the ability to display exact file size statistics to "dpcmd list-poolparts".
- Driver Use FASTIO_QUERY_OPEN to determine whether a file exists on a pool part. This is faster than sending an IRP and should be more reliable. In some cases we were sending 3 IRPs when querying for information about a file on a pool part. This
accomplishes the same thing but uses Fast I/O instead (0 IRPs sent).
Build .689
- Fixed the ability to install into a non-default folder (INSTALLLOCATION property passed to MSI now overrides the default).
Build .686
- Fixed numerous issues with remote control.
- The list of computers used to lose systems periodically, leading to one way visibility between two systems. This was due to DNS lag.
- Reduced chatter between systems.
- Adjusted keep-alive retries for busy networks.
- Remote control cannot be turned off when connected to a remote system.
Build .685
- Added JSON serializer/deserializer to the Store for faster service startup times.
Build .684
- Driver Added FILE_SYNCHRONOUS_IO_NONALERT to directory opens. These are used to enumerate folders when reading the duplication count, processing file pattern limits, and processing reparse points.
- Enabling duplication on file names > around 200 characters would not work. File names on NTFS are limited to 255 characters, but because we were generating the temporary file name used for background duplication based on the existing file name, it could
potentially exceed that limit. This will never happen now. File names on the pool can now be at their maximum 255 character limit.
Build .683
- Driver Issue #27165 When a useless (redundant) call buffer came back from a directory listing, it was not being reissued. This created a small opportunity for a directory listing to stop prematurely. This did not affect
non-duplicated folders.
Build .682
- Allow manual rebalancing when the balancing ratio falls below 1.0 (not 0.99).
Build .681
- Fixed deadlock in performance sampler that was causing the service to lock up.
Build .680
- Driver Accessing any existing files directly under a folder with a "multiple" duplication tag would show the error "File not found" (or STATUS_OBJECT_PATH_NOT_FOUND). Copying new files into such a folder would not work.
Build .679
Build .678
- Driver Do now allow IRP_MJ_READ / IRP_MN_MDL with IRP_NOCACHE.
Build .677
- Driver Issue #27084 When driver verifier is enabled for covefs.sys, display a user feedback warning. Inform the user that having driver verifier enabled will degrade pool performance.
Build .676
- Driver Issue #27052 Fixed compatibility issue with Symantec's Windows 2000 legacy file system filter driver (PGPfsfd.sys).
Build .673
- Issue #25989 Added Wpf_SoftwareOnlyRendering option to the UI .config to force software rendering of the UI.
Build .672
- Driver Issue #20851 Very rarely, a pool part folder is reported to not exist, while a sub-folder under that folder does exist. This causes duplication inheritance to get confused and to inherit the wrong value from the root. This issue
was reported on Windows 7 and WHS 2011. It could not be reproduced.
- Added reset-duplication-cache command to dpcmd.
Build .669
- Added "duplicationLevel" parameter to dpcmd's "check-pool-fileparts".
Build .668
- When a file was renamed on the pool, with the intention to overwrite another file, the size of the file being overwritten was not subtracted from the file size tracking statistics.
Build .665
- Updated code signing certificate to SHA-256.
Build .663
- Got rid of some unnecessary user feedback messages. Only show them on a failure.
Build .662
- Driver Report measurement failures to user, including pool part that failed measuring and the path.
- Implemented user feedback, similar to StableBit CloudDrive.
- Driver Remeasuring should clear measure failed flag on pool part.
Build .660
- Issue #22900 Pooled drive tooltip pie chart would not be consistent with size bars sometimes.
- Issue #22900 Fixed disk tooltip text getting cut off.
- Do not calculate the balance ratio more often than every 30 seconds, regardless of how much I/O the pool is seeing.
- Issue #22900 Pooled drive size bars could exceed drive size.
- Issue #22901 Do not write out error reports if BitLocker monitoring fails to start.
Build .659
- Added usage information and examples for set-duplication-recursive.
- Added check-pool-fileparts to dpcmd.exe. It's able audit your duplicated files and find inconsistencies.
- For usage and examples: "dpcmd check-pool-fileparts"
Build .655
- Issue #21848 Rewrote dpcmd.exe to accommodate for a more structured command module layout and added a bunch of new commands (requires command prompt with Administrative rights).
- Added:
- ignore-poolpart - Immediately disconnects a pool part from the pool and prevents it from participating in future pools by placing an ignore tag on it.
- refresh-all-poolparts - Forces the reenumeration of all the pool parts and pools.
- remeasure-pool - Recomputes a pool's file usage statistics.
- set-duplication-recursive - Recursively sets the duplication count on one or more folders on the pool matching a pattern (regex or file pattern).
- unignore-poolpart - Removes the ignore tag from a pool part, and readds it to the pool.
Build .653
- Driver Issue #21842 Roll back the change to fix request throttling crash on x86, simply avoid running that code on x86.
Build .652
- Driver Issue #20856 Added MDL read optimization for protected files.
Version 2.2.0.651
Build .651
- Fixed service crash when last disk in a pool was removed.
Build .650
- Driver Added ReFS support on Windows 8.1 and newer (or Windows Server 2012 R2 and newer).
Build .649
- Driver Issue #20787 Use QPC to measure the speed of read I/O for read striping purposes.
- Driver Issue #20787 Fixed a bug calculating read I/O transfer speed, for the purposes of read striping.
Build .640
- Added FileBalance_RetryOnUnmovable advanced setting. A balancing run will be allowed to run, even when the exact same model has run in the past, if in the past, there were unmovable files. This is enabled by default.
- Automatic retries will happen at most every 5 minutes, if "Balance immediately" is selected and "Not more often than every ..." is unchecked.
- Otherwise, retries will be subject to your balancing trigger settings.
- Driver Fixed real-time measuring issue. When a new file was created, and its allocation size was > 0, we would record an incorrect allocation size for that file. This was introduced in build 633 with a fix for Issue #16694. The result of
this was "other" space on the pool would be reported greater than it actually was.
Build .639
- Issue #18754 Measurement inconsistencies will now be reported in the pool disk tooltips (labeled as "corrected").
- Issue #18754 Disable automatic remeasuring upon encountering a measurement inconsistency.
Build .637
- Fixed a locking issue in the task queuing code that was causing a service crash.
- Issue #18768 When the first pool part in a pool was unlocked using BitLocker, the pool parts were not refreshed.
- Issue #18768 Enabled BitLocker_PoolPartUnlockDetect by default.
Build .636
- Driver Windows 10 support.
- Created new driver binary targeting Windows 10.
- Recompiled everything using Visual Studio 2015.
- Implemented alternate window management code for UI glitch in Windows 10 that leaves 7 unusable pixels at the top of a border-less window.
- Modified code to enabled DWM animations.
- Updated WiX Toolset to 3.10 RC.
- Licensing fixes.
Build .634
- Driver Issue #17716 Added per-file filter context support.
- Driver Issue #17716 Per-stream filter context reference counting was not working correctly. This prevented file system filter drivers (e.g. A/V applications) from unloading properly.
Build .633
- Driver Issue #16694 Sparse files on the pool were not being measured correctly.
Build .632
- Driver Issue #15579 Issue #13504 introduced a race condition which can lead to a crash.
Build .631
- Driver Issue #17706 The fix for issue #15603 caused the pool ID to change, which lead to the pool drive letter changing and the pool settings being reset.
Build .630
- Driver Issue #15603 Added CoveFs_IsDiskRemovable advanced setting. This controls whether pool drives show up as removable disks. It defaults to False and takes effect after a reboot. Previously, all pools were removable disks.
- Issue #17695 Do not prevent drive removal from proceeding if the Server service is not running.
- Driver Issue #16674 When renaming a file, if the target of a rename is another folder, then issue delete / create notifications, not rename old / rename new.
- Driver Issue #17685 Added CoveFs_SortedDirectoryQueries advanced setting. Enabling this option will pre-buffer and pre-sort all directory enumerations in the kernel. This has a major negative impact on directory
enumeration performance and should only be enabled if directory enumerations must come back
in a sorted order (normally the application performing the enumeration will sort the output for you).
- Driver Issue #16689 When the target of a complex rename had a backslash at the end, the rename would fail.
- Driver Issue #15604 Make the emulated physical disk read-only in order to prevent malicious software from overwriting it causing the pool to become inaccessible.
- Driver Issue #15581 Use the requestor thread context when forwarding I/O requests.
- Driver Issue #15572 Fixed crash on reparse point creation.
- Issue #15558 When "If the balance ratio falls below" is set to 100%, a balancing run will always be scheduled, if at least one byte needs to be moved on the pool. Previously it used floating point math to calculate when
a balancing run should begin, which can be imprecise when dealing with large numbers.
- Driver Fixed updating issue having to do with certificates (rebuilt the disk driver).
- Issue #14546 The Dashboard add-in now runs in a separate AppDomain, fixing any potential future DLL conflicts with other add-ins.
- Issue #14517 Demoted the calculate balance ratio task to a new category of "idle" tasks that only run when no other tasks are running and no UI tasks are running.
- Issue #14574 Fixed repairing duplication tags on read-only folders, such as the .covefs hidden metadata folder.
- Driver Issue #13472 The file system dirty bit was not being reported correctly, potentially causing tools that query the health of the file system to incorrectly report that it's not healthy.
- Driver Issue #13513 When in troubleshooting mode, the ".covefs" special metadata folder will be visible on the pool for troubleshooting purposes.
- Issue #13517 When the "dedup" file system filter is installed, "Bypass file system filters" is overridden and disabled. This allows pooled drives that are utilizing data deduplication to work correctly with
StableBit DrivePool.
- Issue #13517 Added a new "Bypass file system filters" per-pool option under Pool Options -> Performance. This promotes the advanced setting "CoveFs_BypassNtfsFilters" into a UI option. The advanced setting
still exists and serves as a default for new pools and pools that did not have the UI option previously.
See the tooltip for an explanation on what it does. This is now a real-time option that is enabled /
disabled in the file system at the instant that you check it or uncheck it. At boot time the setting
is preserved and loaded at the file system level before any system services are started. The setting is
enabled by default.
- Issue #14517 Moved the calculate balance ratio task down the priority hierarchy so that it doesn't interrupt UI background tasks (such as calculating folder sizes).
- Issue #14538 Changed the tone of the text in the licensing window.
- Driver Issue #14542 Fixed file change notifications vs. folder change notifications.
- Driver Issue #14519 xcopy / robocopy did not work when using the pool root directory as the source due to alternate streams that exist on that directory.
- Driver Updated code signing certificate.
- Driver Issue #14527 Fixed file modification notifications.
- Issue #13499 Limit the number of duplication errors reported after a drive removal to 100. A duplication pass will report more if necessary.
- Driver Issue #13504 Optimized some spin lock code that was causing a DPC_WATCHDOG_VIOLATION on Windows 8+.
- Added native compilation (NGEN) for faster startup times for the UI and Service.
- Issue #13493 Added a new troubleshooting mode to the UI called "force TCP". This will force the UI to communicate with the service via. TCP instead of IPC. (command line: /ForceLocalTcp /ForceLocalTcpPort=N)
- Issue #13493 Removed the troubleshooting menu. It can be enabled from the new "Troubleshooting" folder in the start menu. (command line: /TroubleshootingMode)
- Driver Issue #13467 Fixed a bug in the volume label retrieving code, when there is no label set on a pool drive.
- Issue #13476 Do not take a UI lock when updating the volume free space.
- Fixed an issue where the license would get into a "transfer needed" state, where a transfer was not needed and would not exit this state until a restart.
- Added /LaunchUI=0 option to the EXE installer and the LAUNCHUI=0 property can be set on the MSI to avoid the initial UI launch. This is useful for managed deployments.
- Driver Issue #13437 On x86 systems, in-flight request throttling was causing sporadic system crashes.
- Driver Issue #13443 When a folder delete fails because of files in one pool part folder, roll back the delete on any other pool parts.
- Driver Issue #13432 Fixed potential crash in the file size tracking code.
- Issue #12411 The CoveFS metadata folder is now shown in the per folder duplication settings window and the file placement tab under balancing. The metadata folder is automatically duplicated up to x3 on the pool.
- Issue #12412 Fixed UI list issues introduced in recent BETA.
- Issue #12409 Activation ID text can now be mangled.
- Driver Issue #12398 Added trace code instrumentation over the kernel file size tracking code.
- Signed all binaries with Covecube Inc. Authenticode certificate in hopes of preventing false positive A/V warnings.
- Issue #12385 Saving file placement rules on one pool would clear file placement rules from all the other pools.
- Issue #6316 Added DrivePool_BackgroundTasksPreventSleep advanced .config option.
- Driver Issue #8332 When a disk went missing from any pool, all the pools were unnecessarily remeasured.
- Issue #7335 Added SMTP support for sending email notifications. See: https://wiki.covecube.com/StableBit_DrivePool_2.x_Advanced_Settings
- Driver Issue #6266 Rewrote exception handlers in completion routines that handle in flight counts.
- Issue #4220 Do not consider disconnected pools when determining which disks are available to be added to the pool.
- Driver Issue #3202 Fixed avast (and possibly other A/Vs) getting stuck for 30s on creating a new pool.
- Added community RU translation (thank you guys).
Release
Version 2.1.1.561
- Added automatic license migration from 1.X -> 2.X when installing 2.X for the first time.
Version 2.1.0.558
- Unnecessary error reports were being generated after the last pooled drive was removed.
- Logging in as a different user when remote controlling was not working.
- Driver Issue #5222 Added support for FileFsSectorSizeInformation.
RC
Version 2.1.0.553
BETA
Version 2.1.0.552
- Driver Fixed a real-time file size tracking inconsistency that would cause the pooled file size to drift upwards when files were overwritten (FILE_SUPERSEDE, FILE_OVERWRITE, FILE_OVERWRITE_IF). Existing pools will be remeasured
automatically.
- Added new .config option FileSizeTracking_UpdateSizeIntervalS to the service, mainly for testing purposes.
- Finalized all translations.
- The .covefs meta-data folder now doesn't show up in duplication / file placement.
- Do not write out error reports when operations are canceled.
- Driver Issue #3204 Fixed renaming in a folder that's a reparse point.
- Issue #1146 Added test email option after entering email addresses for notifications.
- Windows will now save their maximize state in addition to their size.
- Added minimize / maximize buttons to the horizontal UI.
- Cap WPF animations to 30 FPS on WSS.
- Issue #47 Refactored licensing code to prevent the licensing request from showing up unnecessarily.
- Issue #2158 Fixed the performance pane turning off on slower systems, even while it's still open.
- Increased default performance sample interval to 2 seconds.
- Issue #3198 Fixed spelling mistake on the change duplication dialog.
- Added a tooltip over the balancing plug-ins to show the version of the plug-in and the creation time (if external).
- Issue #3192 Added VDS as a service dependency to the StableBit DrivePool service. This improves system and service startup time.
- Issue #114 When the System Volume Information folder doesn't have the inherit flag set on the SYSTEM permission, drive removal would error out with "Access denied".
- Issue #2188 Refactored the disk enumeration code to not error out when a disk or volume is encountered which has the same persistent key as one that we already know about. Detailed trace data will be written out to the log
file when this happens and disk enumeration will continue.
- Issue #3190 Added DrivePool_RunningFile .config setting. When specified, a file at this path will be created whenever a background task is running, such as balancing, background file duplication or measuring. After all
background tasks end, this file will be deleted.
Version 2.1.0.528
- Driver Fixed creation of empty "PoolPart..." files on drive removal (harmless but annoying).
- Issue #2165 Meaningless folder placement rules are now defined as rules that are set up exactly the same way as the immediate ancestor rule. These rules will be automatically removed. With this change a rule with all the
drives checked can now be "meaningful" as long as it has a different immediate ancestor rule. This allows
you to effectively "override" and disable an ancestor folder placement rule on one or more specific
child folders.
- Issue #2165 Changed folder placement icon to a green filter icon when a folder placement rule is defined on a folder. The icon will turn black (and shrink) if a folder is "inheriting" a folder placement rule from an ancestor.
- When removing a drive from the pool, and one or more empty directories can't be deleted because something has a handle open to them (like SMB), schedule a directory deletion on reboot.
- Disks list will now update more smoothly.
- Fixed disk tooltip disappearing issue over pooled disks.
- Driver When renaming a file violates a file placement limit, the service will be notified by the file system in real-time.
- Driver Fixed a crash when a new file is created and a measuring pass just started, before the first directory is enumerated.
- Issue #2165 Added disk tooltips over the file placement disk list.
- Issue #2187 File placement rules were not being saved if the only thing that changed about them was the order.
- Issue #2165 For a new folder based file placement rule, the UI will now base the rule off of the parent folder's rule. A new rule will only be created for the sub folder if it differs from the parent rule.
- Issue #2166 Fixed emptying protected disks.
- Issue #2165 "Balance immediately" wasn't taking file placement rules into account.
- Issue #2165 Meaningless rules will now be saved, if they are pattern based (not folder based).
- Issue #2165 Added multi-select support for file placement rules (hold down Ctrl or Shift to select multiple rules).
- Issue #2165 Folder based rules can now be rearranged, as long as the new arrangement doesn't violate the path depth rules. Folder rules defined on deeper directory structures must always have a higher priority than folder
rules defined on shallower directory structures. The depth of a folder rule is defined as the number of "\"
characters.
- Issue #2165 File placement rules now have an option that automatically excludes new drives from being selected for that rule.
- Issue #2165 Automatically prioritize file placement rules if any exist from previous builds with no priority. Also force a rebalance using the new priority based rules.
- Added drag and drop to the ordered lists in the balancing window.
- Issue #2165 When file parts need to be cleaned up due to duplication changes, file parts that are violating placement rules are cleaned up first.
- Driver Issue #2165 File placement rules now have a priority associated with each rule. Whenever a file path matches multiple patterns, the rule with the highest priority is applied.
- Folder based file placement rules have a priority automatically assigned to them. Folders that are deeper have a higher priority.
- Manually defined pattern based file placement rules can now be moved up and down the list to define their priority. Rules at the top have higher priority than rules at the bottom.
- Issue #2173 Added new "Increase priority" toggle button that will become visible in the pool organization bar. When toggled on the currently running task will be boosted in CPU and Background I/O priority.
- Added new .config settings DrivePool_BackgroundTasksPriority. This controls the CPU thread priority for background tasks such as calculating the balancing ratio. Valid settings are -15 to 15 (inclusive). Default is -2.
- A task could have taken on the thread priority / background I/O settings of another task in the same task group if the tasks were in the same queue. Each task now consistently sets its own background I/O and thread priority.
- "Balancing plug-ins respect file placement rules" was not working correctly.
- Fixed measurement inconsistency when removing a disk with duplicated files.
- Fixed checking for duplication consistency of the .covefs meta-data folder after implicit duplication count change.
- When duplication state was "Unknown" there was no option to start a manual duplication pass in the UI. The pool organization bar will now reflect this.
- Issue #2173 Pool organization progress percent will now move more smoothly when moving large files while rebalancing and removing drives.
- Issue #2173 Tasks such as rebalancing and file duplication can now be aborted from the pool organization bar.
- Issue #2151 Added "Reset all settings" menu options under Settings -> Troubleshooting. This will reset all Store meta-data in the service.
- Issue #2151 All concurrent tasks now write out error reports on failure.
Version 2.1.0.503
- Driver Fixed x86 disk driver installer.
- Driver 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.
- Driver 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.
- Driver 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.
- Driver Issue #2157 Fixed exception handler in MDL creation function.
- Driver Issue #101 The context of a byte range lock request is not always the current thread. (E.g. Hyper-V)
- Driver Issue #101 FileObject->LockOperation seems to be inconsistent, switched to internal flag.
- Driver Issue #101 Byte range locks were not being released immediately on file close. Oddly, this is exactly the expected behavior according to MSDN
(https://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.
- Driver 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.
- Driver 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.
- Driver 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.
- Driver 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.
- Driver 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 remeasurement is disabled while balancing.
- Pooled / Non-Pooled disk counts were not being refreshed properly.
- Driver 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.
- Driver 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).
- Driver Fixed querying for file IDs (this was causing issues with the NFS server).
Version 2.1.0.432
- CoveFS metadata (/.covefs) will be automatically duplicated, depending on the number of disks in the pool, up to 3 times.
- Driver Reimplemented symbolic links (file / directory), junction points and mount points on the pool. (CoveFs_ReparsePointsEnabled in .config, enabled by default)
- Reparse point metadata is now stored in a special hidden reparse metadata folder on the pool: /.covefs/reparse. This folder will not be enumerated on the pool but is used by CoveFS to manage
reparse points.
- The special NTFS specific \$Extend\$Reparse:$R:$INDEX_ALLOCATION file, for enumerating all of the reparse points on a volume is not supported yet.
- Added disk index to the disk tooltips.
- Added total disk count to disk lists.
- Disk metadata updating with the Scanner was sometimes generating error reports if a disk was removed as we were querying for information about it.
- Driver Finally figured out the workaround for the "Samsung magician" bug. Turns out that they don't like something about our disk name, perhaps it was too long and their app was crashing. I've reduced the
name and the bug no longer manifests, but unfortunately due to how Plug and Play works in Windows
this fix will only be effective for new pools.
- Driver Added product / vendor / firmware codes to our virtual disks in an attempt to work around some kind of bug in the "Samsung magician" software, but attempts at a workaround have failed.
- Driver Redefined our virtual disk enumerator into a SCSI Adapter in order to make it participate in WMI SCSI Controller enumeration.
Release
Version 2.0.0.420
- When saving remote credentials, if you entered the wrong credentials, you would not be able to bring up the credentials dialog again.
RC
Version 2.0.0.417
- The UI will no longer lock up if WMI is not responding when querying the Scanner for data.
- Driver Fixed inconsistent read oplock breaking with read striping enabled over duplicated files.
- Driver Fixed crash due to race condition when processing oplocks.
- The first pool message was erroneously popping up sometimes after connecting to a peer.
- The first remote control attempt would sometimes spontaneously switch you back to local mode.
- Fixed a race condition in the IPC layer that was causing a UI crash.
- When you are not authorized to connect to a remote peer, the computer name that you're connecting to is now shown in the message that prompts for credentials.
- Sometimes when the remote peer was not authorized, "Connecting to service..." would be shown indefinitely, with no prompt to enter proper credentials.
- When using remote control, clicking "Back to '...'" would not save the fact that you connected to the local service last.
- When the Windows performance counters were corrupt, the UI was not able to connect to the service.
- Driver Issuing a SetFileTime with 0xFFFFFFFF values would incorrectly report that a file has changed to anyone listening for file change notifications. In particular, this was causing an issue with NOD32
v6, where image files would get reloaded constantly using the Windows Picture Viewer.
- Missing disk notifications were showing up even if the entire pool was disconnected.
- Added DE, ES, FR, IT, PL localizations to Service and tray notifications and fixed some UI localizations.
Version 2.0.0.400
- Added DE, ES, FR, IT, PL localizations to UI.
- When adding a RAW disk to the pool it would disappear from the disks list for a bit, which looked odd.
- Pooled disk list was not being resorted automatically.
- Creating partitions was failing on x86 systems. As a result, adding a blank disk to the pool was not working. This was due to a bug in .NET's COM interop. A workaround is now in place.
- Do not show the performance UI when creating a new pool.
- Fixed issue where error reports were being written out after updating.
- Before duplicating a file, update the task status so that the correct folder is shown in the tooltip.
- Minor file duplication service tweaks related to the timing of things.
- When clicking save on the balancing window, the overall settings are saved first before each balancer's settings are saved. This is to ensure that any changed triggers and the balancing time are processed
correctly with the new settings.
- Added UI_NoVersion to the UI .config. This will hide the version number from the UI, which is useful for taking demo screenshots / videos.
- Driver Changed the part of the read striping algorithm that passively calculates the speed of each disk to work correctly with concurrent I/O.
- Driver Fixed synchronization and a division by zero error in the read striping disk selection algorithm.
- Driver Fixed crash due to race condition in file create.
Version 2.0.0.387
- Increased the default size of the main window to 750x300.
- Fixed installation script for Windows Server 2012 R2 Essentials.
- Driver Fixed a memory leak of a few bytes when fully unloading the virtual disk driver.
- Moved all persistent UI state information into the UI Store and out of the .config. (your UI state will reset)
- Added the ability to sort the pooled disks list in the horizontal UI. The default sort order is now "By Name".
- Ignore disk updates from disks that have no media. This was causing the service and UI to refresh too often. Observed this with a DELL USB flash card reader.
- Persistent UI settings are now upgraded, so that you don't lose them when performing an update.
- Added a new help window that shows up after you create your first pool that explains the basics of how the pool works.
- If the UI disconnects from the service then any open UI windows will be automatically closed.
- Disk temperature will now be shown in Fahrenheit or Celsius, depending on your Scanner settings. (requires Scanner 2.5.0.2942 or newer)
- Added Dashboard component for Windows Server 2012 R2 Essentials.
- Added a warning message to the UI when a pool has no drive letters assigned to it. This can happen if automount is disabled in Windows.
- A pool that was not assigned a drive letter would display an incorrect duplication status in the UI.
- When automount was disabled in Windows, a new pool would not be recognized, and creating a new pool would get stuck as 95% and fail.
- Sometimes a new pool would not be recognized if it was assigned a drive letter that was previously assigned to a non-pool volume.
- Added "hint-poolpart" command to dpcmd.
- Added "add-poolpart" command to dpcmd.
- Added "list-poolparts" command to dpcmd.
- Driver Added support for receiving pool part hints from user mode.
- Driver Fixed an issue where Windows was setting the virtual disk to read-only mode.
- This was causing the NFS Server to not work over the pool.
- Driver Enabled file ID support by default. (CoveFs_OpenByFileId)
- Got rid of the large blank space in UI when creating a new pool in horizontal mode.
- Disk tooltips are now centered.
- Added DrivePool tab to the Dashboard in Windows Server 2012 Essentials.
- Added StableBit DrivePool tab to the Dashboard in WHS 2011 (and similar).
- There will be no separate wssx installer.
- WSS notifications are not supported.
- Added option to increase / decrease the duplication count of a duplicated folder, without first disabling duplication.
Version 2.0.0.355
- Disk performance was stripping out the first directory component.
- Rewrote the find common path prefix algorithm to take the '\' characters into account.
- Driver Added preliminary EFS support (CoveFs_EfsEnabled in .config).
- Right now, background duplication and rebalancing are not supported for EFS encrypted files.
- Added a folder size pie chart to the per-folder duplication window. This pie chart is computed automatically whenever you select a folder in the folder duplication window. It breaks down
file data vs. duplication data and gives you the exact numbers as they are stored on the disks.
You can use this as a visual confirmation that your data is duplicated properly.
- The pie chart is not available when other more important tasks are running (such as background duplication).
- Child task groups were being un-paused prematurely at times.
- Driver When enabling folder duplication, some pool parts may not have been processed leading to inconsistent duplication tags on the pool. This is now fixed. The duplication tag consistency
check repairs existing pools with this issue automatically without any user intervention.
- Changing the duplication level of a folder while background duplication was running would needlessly restart the duplication pass as many times as you've changed the level. What we were
supposed to be doing was aborting the current pass, finding the common path prefix of all of the
queued changes and running a single pass over the common prefix. This is now working correctly.
- The tooltip over the pool organization bar is now showing more details when background duplication is running, including the common prefix that we're checking and the last folder scanned.
- Fixed "Duplicating..." in pool organization bar. It would show up intermittently.
- When changing pool / folder duplication level, sometimes the pool organization bar would drop unnecessarily.
- Pool modes were not being set properly in some cases (such as read-only pool, etc...).
- Added ability to set and see duplication counts > 2 in the UI.
- In the per-folder duplication UI, the selected folder and the expand state of all the folders will not change after changing the duplication level.
- Added a refresh button to the per-folder duplication UI.
- Added a legend to the per-folder duplication UI to explain the new coloring scheme.
- In the per-folder duplication UI, folders without any sub-folders will not show the expander without you clicking on it.
- After changing the duplication level of a folder, if that folder has any subfolders with explicitly set duplication levels equivalent to the newly set level, we change those explicit levels to 'I'.
- Changed how the folder duplication UI shows folder duplication levels as follows:
- A "+" is shown for a folder that has one or more subfolders with a different duplication level than itself (a hint for you to expand the folder).
This is equivalent to the 'M' flag in CoveFS.
The root is always 'M1' by default for DrivePool 1.X compatibility.
- Folders with an explicit duplication level set will show up either green or red.
- Folders that are inheriting their duplication level are blue.
- The actual duplication count set is shown in the 'x?' label.
This makes it less confusing to change folder duplication levels and the system should
automatically do what is more intuitive.
- Driver Implemented a new duplication 'M' tag cleanup routine in CoveFS that is run after every duplication tag set.
Duplication 'M' tags with no sub-folders that have explicitly set duplication counts are
redundant. Removing them improves the overall performance of the duplication tag query
system.
- Driver When setting a duplication count, the file system can now optionally make better use of the 'I' (inherit) flag. In addition, if the folder doesn't have a 'M' (multiple) tag,
then we can simply remove the tag altogether because all folders have an implicit 'I' tag.
For example, when setting a duplication count of '1' on a folder, if the parent folder also has
a duplication count of '1' (whether inherited or explicitly set, it doesn't matter), it
makes more sense to inherit the duplication count from the parent folder rather than to
set it explicitly. So this is what we do now.
If we don't do this, then setting a duplication count of '2' on the parent folder has the
counter intuitive result of not propagating that duplication count to the one sub-folder
with the (previously set) explicit duplication count of '1'.
- Driver When setting a duplication count fails, the file system will now notify the service to run a duplication tag consistency check.
Version 2.0.0.345
- Fixed disk enumeration failure.
- If a directory was marked as read-only on the pool (not in Explorer, but actual attribute), when removing a disk, that directory would get migrated properly, but would not be deleted
from the pool part folder on the disk being removed. We now delete empty read-only folders
as well. Windows uses the "read-only" flag on directories to indicate a special folder
(such as My Documents or My Pictures).
- Fixed a service lock up when it was being stopped.
- The UI will now remember which computer is was connected to last, and on startup it will automatically connect to that computer (unless it's unavailable).
- Disk performance is now being reported per-pool (not for all pools).
- Extended integration DLL to expose the "first seen" time of a pool part. The ordered file placement plug-in makes use of this.
- Added static peer support for remote control. Use this when multicasting is not working on your network.
- See C:\Program Files\StableBit\DrivePool\RemoteControl.default.xml.
- There are further instructions in the XML file.
- Fixed task labels not updating their state properly in the UI (Add / Remove disk).
- Changed store change notification thread pool performance parameters to resolve a bottleneck that would lead to the service stalling for a few minutes sometimes. Did not affect pool I/O.
Version 2.0.0.333
- Fixed service crash after removing the last disk in the pool.
Version 2.0.0.332
- Duplication tag consistency check now also works with legacy pools (pre 1.3).
- Converted the duplication tag consistency check to a pool task. It will run when each pool arrives, and not on service startup.
- Changed "Duplicating..." to "Checking..." in the pool organization bar when we're not actually duplicating anything.
- Added a comprehensive duplication tag consistency check and repair. Every time that the service starts up it will traverse all of the existing duplication tags on each pool and ensure that
each tag on every pool part folder (and sub-folder) is consistent with all of the other pool parts.
If a conflict is found it is resolved by examining both tags and constructing a new repaired
and valid tag from the contents of the existing tags. Then both tags are overwritten with the
repaired tag and a full duplication check is then scheduled to be immediately run over the
entire pool.
- Fixed a race condition in the code that was turning off CoveFS tracing. This was generating error reports needlessly for those with CoveFS tracing enabled permanently.
- Driver Fixed memory leak when pool part find files errors out. This happened if one of your disks dropped from the system unexpectedly.
- Incorrect disk names were being shown in the tooltips when the StableBit Scanner was not installed.
- Performance UI now remembers its expanded state once again.
- Driver When setting a duplication count, always write through the number to disk before considering the set successful (i.e. bypass the cache) (port from 1.X).
- Driver Changed how pools are enumerated at boot time to get rid of the 1 second delay between when the virtual disk driver is loaded and when it spawns its disks (port from 1.X).
- Put error handler around background duplication size change reporting (port from 1.X).
- Driver Fixed drive removal issue where volume manager would not let DrivePool read the pool part ignore tag due to the pool part being marked for deletion. This would cause a removed disk
to remain in the pool until a reboot (port from 1.X).
- Driver Implemented MDL based read / write requests. Protected MDL writes are disabled.
- Driver Fixed crash with race condition in internal buffer management, as reported.
Version 2.0.0.320
- Driver Fixed lock up due to reparse point processing. There was some experimental reparse point processing code added prior to build 312, and it
wasn't successfully reverted. Applications that would query the pool for reparse points would
lock up with build 312.
- Added code to upgrade CoveFS from kernel 8.0 -> 8.1, in case Windows is upgraded and DrivePool is not.
- Driver Compiled a new driver for the Windows 8.1 kernel. Windows 8.1 support is new and will require further testing.
Version 2.0.0.312
- Implemented a workaround for a bug in .NET's ReaderWriterLockSlim. Bug observed on Windows 8. Even though there are no lock holders and many waiters, the waiters are not signaled.
This was causing the service to lock up once in a while for no reason. Typically you would
see "Calculating..." in the pool organization bar, and it would never stop. If your service
is in such a state then you must terminate the "DrivePool.Service.exe" process prior to upgrading
or just reboot the machine. Pool I/O was not affected by this because all pool I/O is handled
in the kernel.
- Corrected the tooltip text, Network I/O Boost does not boost write requests by default. (can be enabled in .config)
- Driver Network I/O boost was not detecting network activity consistently.
Version 2.0.0.310
- Fixed UI lock up due to a deadlock in the service.
- Driver Completely re-engineered how file performance is measured. We no longer parse ETW events in real-time, this is slow and unreliable. CoveFS now maintains file performance
data, but only when we are actively querying for it. There is virtually no overhead
on the file system when performance data is not needed.
- Driver Fixed crash in skip list insertion / removal. Observed on x86.
- Driver Increased skip list depth limit on directory listings to support up to 1 million efficient lookups.
- Added an error message that is shown when trying to remote control DrivePool which has plug-ins installed that we don't have.
- Renamed "File Performance" to "Disk Performance", since it really shows performance of individual disks.
- Driver File renames that have the same destination as the source should always succeed.
- Driver Added file-level TRIM support for SSDs that may be part of the pool. (Windows 8+)
- Driver Offloaded memory / cache manager interaction to NTFS.
Version 2.0.0.280
- Fixed reboot required dialog on upgrade.
- Driver Fixed crash in FastIoQueryNetworkOpenInfo, as reported.
- Enabled CoveFs_ReportAsNtfs by default. There seem to be many applications that assume FAT32 limitations if the file system does not report as "NTFS", regardless of what the
actual reported capabilities are.
Version 2.0.0.274
- Set up more stringent testing procedures for upgrades.
- Fixed crash on upgrade, if upgrading on Windows 8 / Server 2012.
- File performance will now work with disks that are not assigned a drive letter.
- Changed the color scheme on the performance UI a bit.
- Driver Fixed crash when removing the last disk from the pool.
- Fixed free space refresh error, as reported.
- Driver Fixed rare crash in pool part find files, as reported.
- Driver Added a dedicated covefs driver for Windows 8 to better support compatibility.
- Driver Fixed bad interaction with the Windows Search service on Windows 8 / Server 2012. This was causing the Windows Search service (and as a consequence the rest of the
system) to lock up for a few minutes when any operation (such as a rename or delete)
was immediately performed on a newly created directory. This looks like a bug in
Windows Search that is triggered when a FS supports oplocks but not the USN journal.
Version 2.0.0.266
- Driver Fixed critical bug in FastIoQueryNetworkOpenInfo that was causing a system crash.
Version 2.0.0.265
- Driver Added support for:
- FastIoQueryNetworkOpenInfo
- FastIoQueryStandardInfo
- FastIoQueryBasicInfo
Version 2.0.0.263
- Driver Disabled Fast I/O network reads on Windows 8 / 2012 as a workaround for a system crash.
- Added "Pool options" text to the pool options button.
- Driver When moving a directory with an explicit per-folder duplication (or that has sub-directories with explicit per-folder duplication counts set) to a new folder on the same pool, make sure to correctly repropagate
the M / I flags.
- Driver Deleting a directory that had per-folder duplication enabled, and then recreating a new directory with the same name would incorrectly mark the new folder as duplicated as well (usually until a reboot).
- Driver Fixed setting per-folder duplication on read-only folder (or folders whose parents may be read-only).
Version 2.0.0.260
- Reduced the load on the CPU when processing real-time file performance data.
- Added 2 new .config options for the UI:
- UI_VerticalOnly - When set to True, Disables the horizontal UI (and never loads it into memory).
- UI_HorizontalLite - When set to True, Disables the performance UI (and never loads it into memory).
- The performance UI controls will not be loaded into memory unless the performance UI is expanded.
- Performance UI will always start collapsed.
- Performance will only be monitored, if at least one connected UI has the performance UI expanded.
Version 2.0.0.256
- Driver Read striping will now take into account the speed of the disks when deciding which disk to read from. It now uses an adaptive algorithm that will passively measure the speed of each
disk and select the appropriate one at any given time.
- Added "Expand >" to vertical UI to get into Horizontal UI mode (hidden after first use).
- Added pool read / write speeds and other various statistics to the performance UI.
- Fast I/O percentage.
- Read striping percentage, including a breakdown of disk switches vs. disk holds.
- I/O prioritization percentage.
- Driver Made I/O prioritization be more explicit when requesting a particular priority.
- Driver I/O prioritization now allows cached reads through Fast I/O.
- Background duplication was not enabling Background I/O as intended.
- Enabling / disabling per-folder duplication will only work over that folder when performing background duplication (when possible).
- Added a pool file performance UI. This shows you the top file activities on the pool. (not supported in Windows Vista / Server 2008)
- Driver Fixed "Reached the end of file" error when enabling duplication on a folder that was previously duplicated, then was moved off of the pool and then moved back onto the pool (and so is no longer
duplicated). (Port from 1.3.2)
- Changed the rules for horizontal UI mode. DrivePool will now go into horizontal UI mode whenever the width of the window is 2 * the minimum width (ignoring the height).
Version 2.0.0.230
- Added disk remove options. SHIFT+Click on "Remove" to bypass, if you need to quickly remove many disks.
- Added rebalance markers and disk usage, for each disk in the pool, in the horizontal UI. (stretch the window wide).
Version 2.0.0.227
- Added check box to per folder duplication that hides hidden folders. Defaults to whatever the OS is set to.
- Added DrivePool_VerifyAfterCopy advanced setting (off by default).
- Driver Fixed MDL based Fast I/O calls. (port from 1.3.2)
- Driver Added support for file IDs. (See CoveFs_OpenByFileId advanced setting) (port from 1.3.2)
- Driver Fixed volume information query.
- Duplicated files that were not yet duplicated were not being selected for rebalancing. (port from 1.3.2)
Version 2.0.0.225
- Driver Fixed can't create iSCSI target on Windows Server 2012.
Version 2.0.0.222
- Driver Fixed inconsistent disk kernel path causing spontaneous missing disk warning. (observed on iSCSI drobo)
Version 2.0.0.220
- A new horizontal UI mode. Just stretch the UI wide to see it.
- Made the licensing notification be more explicit in stating that you can't create new folders on the pool, when you have no license.
- Driver Fixed non-Windows clients getting partial directory listings on Windows 8 / Windows Server 2012.
- Driver Fixed file properties recognizing folders as volume mount points on Windows 8 / Windows Server 2012.
- Driver Fixed indexing service compatibility on Windows 8 / Windows Server 2012. This also fixes Media Streaming on Windows Server 2012 Essentials
(rebuild your Windows Search index).
- Driver Fixed file change notifications.
- Added UI to control per-folder duplication.
- Driver Increased the stack reservation limit on x64 to 16 KB.
- Driver Added safeguard against multiple concurrent asynchronous directory queries.
Version 2.0.0.202
- Fixed some licensing issues that cropped up as a result of remote control.
- When remote controlling a computer, your local logged in user must be an Administrator on the remote computer (i.e. a user who is a member of the Administrators group).
- The ability to log in as a different user when remote controlling another computer.
- Uses the secure credential store to save your password, if you request to remember it for next time. Open 'Credential Manager' under the Start menu to manage your stored
passwords. In addition, passwords are encrypted.
Version 2.0.0.183
- Disk ids were not being persisted properly. Clean up old disk id metadata.
- Added remote control management.
- Easy, fast and complete.
- Complete management UI synchronization across all running instances (except licensing).
- Fast automatic discovery using multicast.
- Authentication and encryption done by .NET Remoting.
- Standard Windows NTLM authentication (via SSPI).
- Easily enable or disable remote control in Options.
- Automatic Windows Firewall configuration, including removing the rules when not running or disabled.
- More to come.
- Driver Added O&O driver to prohibited list.
Version 2.0.0.168
- Fix for countries that use a "," as their decimal symbol. The WPF path markup language parser gets confused when provided with decimal numbers in
these regions.
Version 2.0.0.165
- Missing DLL prevented DrivePool's automatic updating from working in older builds.
- Fixed disable privilege bug that was causing background duplication to fail on subsequent runs.
- Driver Fixed running EXEs from the pool as administrator on Windows 8 and Windows 2012.
Version 2.0.0.160
- Driver Server 2012 Essentials compatibility.
- Link in Server 2012 Essentials Dashboard to launch DrivePool UI from the Server Folders tab.
Version 2.0.0.154
- Added dpcmd.exe. Just open the command prompt and type 'dpcmd' for usage.
- Wrote a new UI from scratch.
- Completely rewrote the DrivePool service.
- New hierarchical concurrent background task system with Store integration.
- Got rid of obsolete code.
- Driver Ported drivers to 32-bit.
- Driver Ported drivers to Vista and newer.