***This page applies to FlexRAID™ Basic and only to those using the command line client!***
Commands
Task properties reference
Advanced task properties reference
Advanced re-configuration
Multi-step parity
Algorithms (advanced customization)
Commands (specific to the command line clients)
- set-prefix: sets the task execution prefix context
Example1: set-prefix D:\MyFolder\
Example2: set-prefix "C:\Documents and Settings\user\Desktop\configs\"
(e.g., given an execution prefix of "C:\Folder\", a run/upload command such as "run create.txt" would be interpreted as "run C:\Folder\create.txt")
- set-postfix: sets the task execution postfix context
Example1: set-postfix .txt
Example2: set-postfix ".txt"
(e.g., given an execution prefix of "C:\Folder\" and posfix of ".txt", a run/upload command such as "run create" would be interpreted as "run C:\Folder\create.txt")
Commands
- connect: brings up the prompt to connect to a new host
Example: connect
- shutdown-server: shuts down the server connected to (note: you can only shut down a server locally)
Example: shutdown-server
- run: run a configuration file whose path (or prefix context) is relative to the host service application
Example: run create
- upload: run a configuration file whose path (or prefix context) is relative to the client application
Example: upload restore
- monitor: montior a running task
Example1 (monitor the last launched task): monitor
Example2 (monitor a task with a given ID value of "x"): monitor x
- status: get the status of a given task
Example1 (get the status of the last launched task): status
Example2 (get the status of a task with a given ID value of "x"): status x
- pause: pause a given task
Example1 (pause the last launched task): pause
Example2 (pause a task with a given ID value of "x"): pause x
- resume: resume a given task
Example1 (resume the last launched task): resume
Example2 (resume a task with a given ID value of "x"): resume x
- abort: abort a given task
Example1 (abort the last launched task): abort
Example2 (abort a task with a given ID value of "x"): abort x
- list: list all executed tasks and their IDs
Example: list
- max: alter the maximum number of threads for a given task
Example1 (set the max for the last launched task to 2 threads): max 2
Example2 (set the max for a task with a given ID value of "x" to 2 threads): max x 2
(note: the "max" command is only applicable to tasks that support the "processes" property)
Tasks
Flex
RAID currently supports the following tasks:
- create: initializes the RAID snapshot
- restore: restores data
- rsynch: re-synchronizes the RAID snapshot
- validate/quick-validate: validates the RAID configuration (validates through algorithms - fast and reliable)
- verify: validates the RAID configuration (validates by checking every single bit - very slow and most reliable)
- migrate: migrates the metadata from a previous release to the current release if there is such a need
Each task defines a number of required and/or optional properties.
Task properties are defined in a configuration file, which can be named anything.
Property names are case insensitive
Task Properties
| Property |
Description |
create |
restore |
rsynch |
validate |
verify |
required property
optional property
not applicable (ignored)
|
| task |
the task to execute
One of: create, restore, rsynch, validate/quick-validate, verify, readonly, or migrate.
|
 |
 |
 |
 |
 |
| processes |
the number of process threads to run the task under
The optimal setting for this property will depend on your system.
Setting it too low or too high will hinder the performance.
On most systems, a value between 3 and 5 will be optimal.
Do your own testing to determine what works for you.
This property can be altered at run-time by the "max" command.
DEFAULT: 2
|
 |
 |
 |
 |
 |
| buffer |
I/O buffer size
The ideal buffer size depends on your own disk configuration and cluster size.
Feel free to experiment with values greater or lesser than the default value to see what value
yields the greatest performance.
Choosing the proper buffer size is crucial to optimal performance.
DEFAULT: 1MB
|
 |
 |
 |
 |
 |
| leaveOff |
The amount of free space to leave off each parity target
You should leave some amount of free space to allow the parity metadata info to grow.
You can also use the property to reserve space for other use.
Eg.,
parity=PPU1{/Path1;Path2}|PPU2{/Path1}
leaveOff=50MB;0;20GB
50MB will be left off PPU1-/Path1, 0 byte on PPU1-/Path2, and 20GB on PPU2-/Path1
Warning: you should always leave some space (1 or 2MB) on each parity volume/partition due to how the various filesystems handle written data.
It is possible to get away with leaving 0 byte or just a few KB, but that widely varies per filesystem.
Users RAID'ing large amount of data (Terabytes+) should be safe and leave at least 10MB on each volume hosting the parity data.
The leaveOff property is optional and the default behavior is to leave off 10MB on each volume/partition hosting the parity data.
DEFAULT: 10MB
|
 |
 |
 |
 |
 |
| splitSize |
parity file split size
The splitSize should be less than the maximum file size supported by your filesystem.
DEFAULT: 1GB
|
 |
 |
 |
 |
 |
| data |
the data source paths
This property defines the paths of the source data to RAID.
Values are separated by semi-colons.
E.g., data=data=DRU1{/Path1;Path2;...;/etc.}|DRU2{/Path1;/Path2;...;/etc.}|...|DRUxxx{/Path1;/Path2;...;/etc.}
Note: changes to this property after a create will only be picked up during the rsynch task.
|
 |
 |
 |
 |
 |
| parity |
the parity target paths
This property defines the paths of the target that will contain the parity data.
Values are separated by semi-colons.
E.g., parity=PPU1{/Path1;Path2;...;/etc.}|PPU2{/Path1;/Path2;...;/etc.}|...|PPUxxx{/Path1;/Path2;...;/etc.}
Note: changes to this property after a create will only be picked up during the rsynch task.
|
 |
 |
 |
 |
 |
| metadata |
the folder path or the full path to the metadata file
The metadata file can be found in the first parity data path unless it was specified to be placed elsewhere.
E.g., metadata=/Path/flxr.meta
|
 |
 |
 |
 |
 |
| restore |
the DRU number to restore
E.g., restore=DRU1{}|DRU2{} (will restore DRU1 and DRU2 to their original paths)
E.g., restore=DRU1{/Pathx}|DRU2{/Path1;/Path2} (will restore DRU1 to /Pathx and DRU2 to /Path1 and /Path2)
E.g., restore=DRU1{}|PPU1{/Path3} (will restore DRU1 to its original path and PPU1 to /Path3)
Note: you can restore multiple DRUs and PPUs (mix and match) if the RAID engine you have chosen supports it.
|
 |
 |
 |
 |
 |
| abortRestoreOnError |
Whether to abort the restore process if an error is encountered
DEFAULT: true
|
 |
 |
 |
 |
 |
| strictOnFreeSpace |
Whether to abort the process if the OS does not report enough space for parity.
Setting this to false is useful when using mount points that causes the OS to not properly report the true free space of the underlying storage.
DEFAULT: true
|
 |
 |
 |
 |
 |
For power users only
Task Properties
| Property |
Description |
create |
restore |
rsynch |
validate |
verify |
| checksum |
the checksum implementation to use
|
 |
 |
 |
 |
 |
| digest |
the digest implementation to use
|
 |
 |
 |
 |
 |
| disableParityValidation |
Whether to disable datarot detection on parity data.
Parity validation can only be disabled during RAID creation time and cannot be changed afterward without re-creating the RAID.
Disabling parity validation will speed up rsynch operations.
Disabling parity validation will not disable data validation and datarot detection on your DRUs.
DEFAULT: false
|
 |
 |
 |
 |
 |
| disableRestoreValidation |
Whether to disable datarot detection on restored data during data recovery.
This property can be changed any time before the operation is started.
Disabling restore validation will speed up the restore operation.
DEFAULT: false
|
 |
 |
 |
 |
 |
| retryReadErrors |
By default read errors are not retries and will cause the process to abort.
DEFAULT: false
|
 |
 |
 |
 |
 |
| retryCount |
The number of times to retry a given read error before giving up.
DEFAULT: 10
|
 |
 |
 |
 |
 |
| retryIntervalMilliSeconds |
The amount of time to wait between read error retries.
DEFAULT: 100
|
 |
 |
 |
 |
 |
| ignoreReadErrors |
Whether to ignore read errors.
If read errors are set to be retried, read errors will be retried before this property is evaluated.
DEFAULT: false
|
 |
 |
 |
 |
 |
| enableUndoOperation |
Whether to enable the option to rollback failed rsynch operation.
You must define a URU (Undo Recovery Unit) when setting the property to true.
E.g., undo=URU1{/MyUndoPath1;/My Undo Path 2}
DEFAULT: false
|
 |
 |
 |
 |
 |
| undoLeaveOff |
Same as the leaveOff property except that it applies to the URU.
DEFAULT: 10MB
|
 |
 |
 |
 |
 |
| newFileDelayMilliSeconds |
A delay since the last modified date specifying when a new file is ready to be added to the RAID.
DEFAULT: 10000 (10 seconds)
|
 |
 |
 |
 |
 |
| verifyStart |
Start the verify operation starting at the specified byte.
Ex: verifyStart=2048000000
DEFAULT: (optional)
|
 |
 |
 |
 |
 |
| verifyNumOfBytes |
The number of byte(s) to verify.
If not specified when verifyStart is specified, all bytes starting from the specified start point will be verified.
Ex: verifyNumOfBytes=1000
DEFAULT: (optional)
|
 |
 |
 |
 |
 |
| validateSet |
The file or set of files to validate.
When not specified, all files will be validated.
Ex1: validateSet=/path1;/path2;...;/pathX (only the specified files will be included)
Ex2: validateSet=/path1* (all files starting with /path1 will be included)
Ex3: validateSet=*something/MyEndingPath (all files ending with something/MyEndingPath will be included)
Ex4: validateSet=[RegExp]MyRegularExpressionPattern (this will use regular expression for matching)
Of course, you can mix and match the patterns:
Ex5: validateSet=/Path1;*.mp3;[RegExp]MyRegularExpressionPattern
DEFAULT: (optional)
|
 |
 |
 |
 |
 |
| exclusions |
The file or set of files to exclude.
Ex1: exclusions=/path1;/path2;...;/pathX (only the specified files will be excluded)
Ex2: exclusions=/path1* (all files starting with /path1 will be excluded)
Ex3: exclusions=*something/MyEndingPath (all files ending with something/MyEndingPath will be excluded)
Ex4: exclusions=[RegExp]MyRegularExpressionPattern (this will use regular expression for matching)
Of course, you can mix and match the patterns:
Ex5: exclusions=/Path1;*.mp3;[RegExp]MyRegularExpressionPattern
DEFAULT: (optional)
|
 |
 |
 |
 |
 |
Special topic - Rename/Remove locked DRUs
Once a DRU has been processed, it is locked such that removing it from your configuration file has no effect.
If you need a locked DRU removed or renamed, you will need to direct FlexRAID to do so as explained below.
Remove:
data=DRU1{A:\Path
@remove;/MyOtherPaths}
Rename:
data=DRU1{A:\old path
@rename@B:\new path;/MyOtherPaths}
Though you don't have to, you should remove the @remove and/or @rename@ notations after rsynch completes so that those directives are not uselessly processed again.
If the specified directories were already removed/renamed, the directives will simply be ignored.
Special topic - Multi-step parity
Multi-step parity is supported only by the commmand-line client and is not supported yet by the WebUI.
The idea behind this feature is that, sometimes, you want to create parity for data you cannot have online all at once.
A good example would be DVD media discs.
If you only have a single DVD reader but want to create parity for say 10 discs, well you are stuck.
With the new "Multi-step parity" feature, you can create parity for the 10 discs by inserting them one at a time.
This feature is not limited to optical media discs.
If you have more hard drives than you can have online, this feature will also fulfill your needs for parity protection.
Further, you are not limited to inserting one disc at a time.
You can insert as many discs as you have readers or drive mount points.
In my particular case, I have 3 DVD readers.
So, I can update the parity data (or restore data) using 3 discs at a time.
Flex
RAID™ captures a fingerprint of each discs and uses that fingerprint to differentiate between the discs (as opposed to the mount point).
Multi-step parity currently supports two tasks (to create and restore):
multi-step-create and
multi-step-restore
- multi-step-create: this task supports the same properties as the regular "create" task
- multi-step-restore: this task supports the same properties as the regular "restore" task with the following exceptions:
- The "restorePath" property follows this pattern: <DRU number>|<Paths to restore to>|<restore DRU's fingerprint>
Ex: restorePath=1|D:\Data\RestorePath1;D:\Data\RestorePath2|flxr_xxx_xxx_xxx_xxx.meta
If there is any data mounted in DRU1, only the missing and corrupted files will be restored.
If there is no data mounted, all data will be restored.
I.e., if you have a scratched disc but only want to restore the unreadable files, you can insert the scratched disc and FlexRAID™ will restore only the unreadable files.
If the disc is missing, FlexRAID™ will restore the whole disc.
- The multi-step-restore supports two additional properties:
- restoreInvalid: whether to restore existing but invalid files - DEFAULT: true
- restoreValid: whether to restore existing and valid files by just copying them (no parity computation) - DEFAULT: false
This is useful when restoring a disc and you want FlexRAID™ to copy off all valid files before attempting to restore the invalid ones through parity.
Algorithms - Supported checksums and digests
Checksum
| Name | Output (in bits) | Notes |
| adler32 | 32 | |
| crc32 | 32 | |
Digest
| Name | Output (in bits) | Notes |
| GOST3411 | 256 | |
| MD2 | 128 | |
| MD4 | 128 | |
| MD5 | 128 | |
| RipeMD128 | 128 | basic RipeMD |
| RipeMD160 | 160 | enhanced version of RipeMD |
| RipeMD256 | 160 | expanded version of RipeMD128 |
| RipeMD320 | 160 | expanded version of RipeMD160 |
| SHA1 | 160 | |
| SHA-224 | 256 | FIPS 180-2 |
| SHA-256 | 256 | FIPS 180-2 |
| SHA-384 | 384 | FIPS 180-2 |
| SHA-512 | 512 | FIPS 180-2 |
| Tiger | 192 | |
| Whirlpool | 512 | |