Downloads

By downloading and/or using the provided software, you agree to this
License Agreement.

FlexRAID™ Basic 1.2 final

Windows

Linux




 
Screenshots

Web Client UI Preview

Upcoming Web UI screenshots

 
News

FlexRAID™ Basic

(Snapshot RAID)

1.4 beta is out!
Download FlexRAID™ Basic 1.4 beta now...

New:
  • New RAID engines including an optimized RAID 6 engine
  • New I/O Management API
  • Stable release of FlexRAID-View (Safe JBOD)

Join in

Calling on developers

 
 Home next  FlexRAID next  refresh
Command Reference

***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

FlexRAID 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.

FlexRAID™ 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:
      1. restoreInvalid: whether to restore existing but invalid files - DEFAULT: true
      2. 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

NameOutput (in bits)Notes
adler3232 
crc3232 

Digest

NameOutput (in bits)Notes
GOST3411256 
MD2128 
MD4128 
MD5128 
RipeMD128128basic RipeMD
RipeMD160160enhanced version of RipeMD
RipeMD256160expanded version of RipeMD128
RipeMD320160expanded version of RipeMD160
SHA1160 
SHA-224256FIPS 180-2
SHA-256256FIPS 180-2
SHA-384384FIPS 180-2
SHA-512512FIPS 180-2
Tiger192 
Whirlpool512 


 

   Site Map   |   Powered by: Struts 2 + Spring + Hibernate JPA + The Tchegbe Libraries + The Usual Suspects