StableBit DrivePool 2.x Advanced Settings

From Covecube - Wiki
Jump to: navigation, search


You can tweak advanced settings in Stablebit DrivePool by editing a .config file in notepad.

The file is located in C:\Program Files\StableBit\DrivePool\DrivePool.Service.exe.default.config.

In order to put the file into effect, you will need to rename the .config file to DrivePool.Service.exe.config and restart the StableBit DrivePool system service (or reboot).

Any time you upgrade, or reinstall DrivePool, it writes an updated "default" config file, but leaves the current "DrivePool.Service.exe.config" alone so it doesn't alter any of your settings.

Editing the config file

Open the file in notepad. You will see an XML formatted file. If you're not familiar with XML then all that you need to know is that the values that you can change look like this:


You can change this line to:


The setting name is right above that line:

<setting name="CoveFsLogSizeMB" serializeAs="String">

In this case the name is CoveFsLogSizeMB.

There are also numerical values and time values.


In the newer versions, we've depreciated the config file and have moved over to a JSON file. There are a number of reasons for this, but the best is that we include the default values here, as well.

The file is located in C:\ProgramData\StableBit DrivePool\Service\Settings.json. Note that this file is in "ProgramData", and not "Program Files". This folder is hidden by default, so you must type in the path, or enable "Show Hidden Files" in Windows Explorer.


Open the file in notepad. You'll see a JSON formatted file.

if you're not familiar with editing a JSON file, then you just edit the value for "Override", rather than the "Default" value. This will allow you to easily revert values to the default, by changing the override back to "null".

For instance, the default settings may look like this:

 "BitLocker_PoolPartUnlockDetect": {
   "Default": true,
   "Override": null

The default value means that whichever value is enabled by default. If you change the "null" in the override line to "false" and save the file, it will disable the setting in the future:

 "BitLocker_PoolPartUnlockDetect": {
   "Default": true,
   "Override": false

This example would disable the BitLocker pool detection feature, meaning that you may need to manually restart the service to detect unlocked drives.


Settings are organized by function.

Obsolete settings are crossed out.


  • BitLocker_PoolPartUnlockDetect (Default: Stable: "False", Beta: "True") - Set to True to add support for BitLocker encrypted pool parts. Adds a small overhead and is Disabled by default You must still manually unlock the drives, unless the system disk is also encrypted and configured to auto-unlock the other drives.


  • CoveFs_AllowMixedFilesystems - (Beta: "False") - Allows mixing of ReFS and NTFS pools. For compatibility, this should be left off. Enabling this is useful for migrating your pool from NTFS to ReFS or from ReFS to NTFS.
  • CoveFs_AsyncCriticalThreads (Default: Stable: "8" Betas: "2")- How many threads to use for critical asynchronous tasks. Asynchronous tasks are used throughout CoveFS to parallelize various file system operations. In particular, this affects how many disks in the pool are accessed at the same time when we need to query all the disks for some information.
  • CoveFs_AsyncFindFilesThreads - (Default: "8") - How many threads are used for finding files in pool parts (used for measuring, duplication checks, balancing, and dpcmd commands.
  • CoveFs_AsyncNormalThreads (Default: "20") - How many threads to use for normal asynchronous tasks.
  • CoveFs_BoostNetworkIoPriorityWrite (Default: "False") - Boost the priority of write network I/O.
  • CoveFs_BypassNtfsFilters (Default: "True") - This bypasses the normal NTFS filters and instead forwards the I/O directly to the NTFS disks, instead of through the filters. CoveFS (the drive pool) respects these filters, but some filters may freeze or crash if forced to process the same file more than once. This should be left enabled unless instructed otherwise.
  • CoveFs_EfsEnabled (Default: "False") - Enable experimental EFS support on the pool.
  • CoveFs_IsDiskRemovable (Default: Stable: "True"; Beta: "False") - Should the pool drive be a removable drive? Defaults to False. This setting takes effect after a reboot.
  • CoveFs_LogSizeMB (Default: "100MB") - The binary kernel log size. 100MB can be from a few minutes to 10 minutes worth of logs, depending on I/O activity. The kernel binary log records every operation on the pool in a high performance and compact log file.
  • CoveFs_MeasureBackgroundTaskPriority - (Default: "True") - Changes the priority at which the measuring pass is ran at. Enabling this runs the task at the "idle" process, and disabling it runs it at a normal priority as specified by "DrivePool_BackgroundTasksPriority" . The priority can be temporarily boosted in the UI.
  • CoveFs_OpenByFileId (Default: "True") - Open by file ID support. This allows applications to open any file on the pool by its unique file ID, instead of the file name. This feature is required by the NFS server. When enabled, the pool will keep track of every file ID that it gives out in pageable memory (memory that is saved to disk and loaded as necessary).
  • CoveFs_Oplocks (Default: "True") - Enable / disable file system oplock support.
  • CoveFs_ReadStripingBlockMode' (Default: "True") - Switch to the read striping block mode algorithm when sequential read access is used.
  • CoveFs_ReadStripingBlockModeNoCache (Default: "False") - Disable the NT read ahead cache when using read striping block mode.
  • CoveFs_ReadStripingStripeSize (Default: "1048576") - The stripe size to use for reading in block mode.
  • CoveFs_ReparsePointsEnabled (Default: "True") - Enables Reparse Point (symbolic link) support on DrivePool drive.
  • CoveFs_ReportAsNtfs (Default: "True") - Report as "NTFS" to most applications that ask.
  • CoveFs_ReportAsRefs (Beta: "False") - Report as "ReFS" to most applications that ask.
  • CoveFs_ReportAsPoolPartFileSystem (Beta: "True") - 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".
  • CoveFs_SortedDirectoryQueries (Default: "False") - 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).
  • CoveFs_SynchronizeDirectoryTimes (Default: "False") - On NTFS, when creating a new file in a directory, the last write time of the directory that contains that file gets updated. In order to have CoveFS ensure that directory modification times are updated consistently, this needs to be enabled. There is a small real-time performance penalty for having this enabled. The algorithm that makes this work is multi-threaded and will benefit from multiple CPU cores.
  • CoveFs_TracingEnabled (Default: "False") - Enable user / kernel logging by default. This should be set to True for the beta test, just in case you run into problems and need to submit logs.
  • CoveFs_TracingFlushS (Default: "0") - When CoveFs_TracingEnabled is enabled, this sets flush to disk the interval. 0 will flush on every trace.
  • CoveFs_WaitForVolumesOnMount (Default: "True") - Some volumes arrive late in the boot process so DrivePool will wait for all the volumes to arrive before allowing the pool drive to mount. The delay is adaptive, so it will be different for each system. Turning this off might shorten boot times, but is not recommended because it could expose a partially populated pool drive to system services that start right after booting.
  • CoveFs_WaitForVolumesOnMountMs (Default: "10000") - How long to wait for all the volumes to arrive in MS.


  • DrivePool_BackgroundTasksVeryLowPriority - Sets the CPU priority of background tasks such as re-measuring, background duplication and re-balancing to IDLE (Windows Priority 1). Note that this setting does not affect I/O priority which is set separately.
    • Depreciated in favor of "DrivePool_BackgroundTasksPriority" which is more comprehensive.
  • DrivePool_BackgroundTasksPriority (Default: "-2")- The CPU thread priority that should be used for background tasks such as calculating the balancing ratio. A value from -15 to 15 (inclusive).
  • DrivePool_CultureOverride - Overrides the UI culture setting. When set, text will appear in a different language than your OS culture. Set to a culture string such as "de", "es", "fr", etc... This works with remote control as well. When connecting to a StableBit DrivePool machine with an overridden culture, the UI on the connecting machine will be in the overridden culture.
  • DrivePool_BackgroundTasksPreventSleep (Default: "False")- Do not let the system go to sleep while background tasks are running.
  • DrivePool_RunningFile - 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. The folder must already exist for the file.
  • DrivePool_ServiceLoggingEnabled (Default: "True") - Enables normal service logging, such as remote control info, duplication and/or balancing errors, and other normal output.
  • DrivePool_VerifyAfterCopy (Default: "False") - After performing a file copy (or move), verify that the destination file was copied successfully by comparing it with the source.

File Balance

  • FileBalance_BackgroundIO (Default: "True")- Use background I/O for re-balancing the pool.
  • FileBalance_CalculateRatioForceByteDelta (Default: "104857600")- How many bytes have to be processed by the pool before the ratio is recalculated. The ratio calculation involves no I/O, is done asynchronously and does not block the pool.
  • FileBalance_DuplicationObstructionLimitRatio (Default: "0.25")- Internal variable that controls balance ratio calculation.
  • FileBalance_EvacuationPadding (Default: "True") - When evacuating a disk (i.e. re-balancing to move all the files off of it), we pad the amount selected to move off by the ratio of the amount of free space on the target. This is that ratio which is a value from 0.0 to 1.0.
  • FileBalance_RetryOnUnmovable (Default: "True") - When one or more files cannot be moved after a balancing run, allow the same exact balancing run to retry.

File Duplication

  • FileDuplication_AlwaysRunImmediate - If DrivePool detects that a file is not duplicated, or it's duplicated where it shouldn't be, a duplication pass will start immediately if this is set to True.
  • FileDuplication_BackgroundIO (Default: "True") - Use background I/O for background file duplication.
  • FileDuplication_DuplicateTime (Default: "02:00")- The time of day when files will be duplicated, if real-time duplication is disabled.
  • FileDuplication_MaximumPathDepthForEstimation (Default: "5")- This is the maximum path depth that background duplication will traverse to estimate the number of folders on the pool that it needs to work on. Increasing this value will increase the delay at the start of background duplication before it starts doing actual work, but will provide more resolution in the completion percentage reported in the Dashboard.
  • FileDuplication_NoConsistencyCheckOnNewPool (Default: "False") - Do not check duplication consistency when a pool is connected to the system.

File Size Tracking

  • FileSizeTracking_UpdateSizeIntervalS (Default: "15") - How often to query the file system for updated file size statistics, in seconds.


  • Performance_SampleIntervalMS (Default: "2000") - Sampling interval used for collecting Performance information from the system.

Remote Control

  • RemoteControl_FastShutdown (Default: "False") - When enabled, this will bypass socket cleanup on service shut down. Don't enable this unless your OS is having trouble closing sockets.
  • 'RemoteControl_MulticastGroupIp (Default: "")' - The multicast group IP to use for peer discovery.
  • RemoteControl_MulticastGroupPort (Default: "52332") - The multicast group port to use for peer discovery.
  • RemoteControl_MulticastTimeToLive (Default: "3") - Controls the number of "hops" the remote control packets will travel before being dropped, to prevent the network from being flooded.
  • RemoteControl_Port (Default: "27525") - Specifies the port used by DrivePool for remote management.
  • RemoteControl_StaticPeerSeekTime (Default: "00:01:00") - How often to check whether an offline static peer has gone online.


  • Smtp_ServerAddress - When set, email notifications will be sent using this SMTP server instead of Amazon cloud services (SES).
  • Smtp_ServerPort - When set to a positive number > 0 it will override the SMTP port used to connect to the server. Otherwise the default port will be used.
  • Smtp_UserName - When set, this username will be supplied to the SMTP server for authentication. Otherwise the connection will be anonymous.
  • Smtp_Password - Must be set together with the user name.
  • Smtp_UseSsl - When set to True a SSL connection will be established with the SMTP server.

Remove Drive

  • RemoveDrive_PoolReadOnly (Default: "True") - Make unduplicated folders on the pool read-only while a disk is being removed. Duplicated folders are always made read-only to preserve data integrity.

Don't forget to rename the config file after you make the change and restart the server (or service), as noted at the top of this page.


Allows you to configure some of the settings for the Remote Control features of the DrivePool 2.x User Interface.

The file is located in C:\Program Files\StableBit\DrivePool\RemoteControl.default.xml on the server.

In order to put the file into effect, you will need to rename it to RemoteControl.xml and restart the server (or just restart the StableBit DrivePool system service).

Any time you upgrade, or reinstall DrivePool, it writes an updated RemoteControl.default.xml file, so it will include any updated settings but leaves the current RemoteControl.xml alone so it doesn't alter any of your settings.


This setting is configured to be "enabled" by default, so that the User Interface will automatically find clients. However, you can set the value to "False" and this will only list entries that you have manually added to the "Peer" list.

The setting should look like this:

<MulticastDiscovery Enabled="True" />


The Peers Section allows you to specify a list of computers that you want available, in cases such as a specific computer isn't picked up by the automatic discovery, or if you want to disable automatic discovery and manually list the computers available.

All clients must be running the same version of DrivePool, and you must have any additional balancer Plugins installed as well.


You need to manually create an entry for each computer to be added. You can use the computer's host/DNS name, or the IP address, and you can specify a different port (if the service is configured for that, see Control above).