************************************************************
************************************************************
*
*  Command Line Utility Readme.
*
*  This document makes references to products developed by
*  Intel. There are some restrictions on how these products
*  may be used, and what information may be disclosed to
*  others. Please read the Disclaimer section at the bottom
*  of this document, and contact your Intel field
*  representative if you would like more information.
*
************************************************************
************************************************************

************************************************************
*  
*  Intel is making no claims of usability, efficacy or 
*  warranty. The INTEL SOFTWARE LICENSE AGREEMENT contained
*  herein completely defines the license and use of this
*  software.
*
************************************************************

************************************************************
*  CONTENTS OF THIS DOCUMENT
************************************************************

This document contains the following sections:

1.  OVERVIEW
2.  SYSTEM REQUIREMENTS
3.  ENTERING THE COMMAND LINE UTILITY USER INTERFACE
4.  COMMAND LINE UTILITY USAGE


************************************************************
* 1.  OVERVIEW
************************************************************

Intel(R) Rapid Storage Technology (Intel(R) RST) for CLI is 
a command line utility used to perform basic RAID operations
on RAID-enabled systems. Intel(R) RST for CLI supports RAID 0, 
RAID 1, RAID 5 and RAID 10 volumes. 
Intel(R) RST for CLI supports the following functionality: 
  - Creating RAID volumes including recovery volumes and arrays 
using the Create mode
  - Viewing properties of disks, volumes, arrays, and controllers 
using the Information mode
  - Managing RAID volumes, arrays, and disks using the Manage mode
  - Modifying existing volumes using the Modify mode
  - Accelerating a disk or volume with a specified SSD using 
the Accelerate mode


************************************************************
* 2.  SYSTEM REQUIREMENTS
************************************************************

Refer to Intel(R) Rapid Storage Technology product system
requirements.

**IMPORTANT NOTES**
The RstCli64 binaries should be unzipped to a secured folder
to prevent unauthorized users from making unintended changes to
the system's Optane(TM) volume.


************************************************************
* 3.  ENTERING THE COMMAND LINE UTILITY USER INTERFACE
************************************************************

Use the following steps to enter command line utility:
1.  Boot the system to Windows. 
2.  Open command prompt.
3.  Run rstcli.exe or rstcli64.exe with appropriate command 
line parameters.


************************************************************
* 4.  COMMAND LINE UTILITY USAGE
************************************************************

   Information Options:
   ------------------------
   | Flag | Name          |
   ------------------------
   | -I   | --information |
   | -a   | --array       |
   |      | --comma       |
   | -c   | --controller  |
   | -d   | --disk        |
   | -v   | --volume      |
   ------------------------

   Information Usage:
   Displays disk, volume, array, and controller information.
    --information [--controller <name>|--array <name>|--volume <name>|--disk <PTL>]
                  [--comma]

   Information Examples:
    -I -v Volume
    -I -d 0-5-0-0
    -I --comma
    -I -v --comma
    -I -d 0-2-0-0 --comma
    --information --array Array_0000
    --information --help


   Create Options:
   ---------------------------------
   | Flag | Name                   |
   ---------------------------------
   | -C   | --create               |
   | -l   | --level                |
   | -E   | --create-from-existing |
   |      | --rrtUpdate            |
   | -s   | --stripe-size          |
   | -n   | --name                 |
   |      | --rrt                  |
   |      | --rrtMaster            |
   | -z   | --size                 |
   ---------------------------------

   Create Usage:
   Creates a new volume and array or creates a new volume on an existing array.
    --create --level x [--size y] [--stripe-size z] --name string 
    [--create-from-existing diskId] diskId {[diskId]}

   Create Examples:
    -C -l 1 -n Volume 0-1-0-0 0-2-0-0
    --create -l 0 -z 5 --name RAID0Volume 0-3-0-0 0-4-0-0 0-5-0-0
    -C -l 1 -E 0-1-0-0 -n VolumeWithData 0-2-0-0
    -C --rrt -n RRTVolume 0-1-0-0 0-2-0-0 --rrtMaster 0-1-0-0
    -C --rrt -n RRTVolume 0-1-0-0 0-2-0-0 --rrtUpdate Continuous
    --create --help


   Manage Options:
   --------------------------------
   | Flag | Name                  |
   --------------------------------
   | -M   | --manage              |
   | -x   | --cancel-verify       |
   | -i   | --initialize          |
   | -D   | --delete              |
   | -p   | --verify-repair       |
   | -F   | --normal              |
   | -f   | --normal-volume       |
   | -l   | --level               |
   | -S   | --spare               |
   | -T   | --delete-metadata     |
   | -N   | --not-spare           |
   | -P   | --volume-cache-policy |
   | -R   | --rebuild             |
   | -t   | --target              |
   | -U   | --verify              |
   | -w   | --write-cache         |
   | -Z   | --delete-all-metadata |
   |      | --no-sync             |
   | -u   | --unlock              |
   --------------------------------

   Manage Usage:
   Manages arrays, volumes and disks present in the storage system.
    --manage --cancel-verify volumeName
    --manage --delete volumeName
    --manage --verify-repair volumeName
    --manage --normal-volume volumeName
    --manage --normal diskId
    --manage --initialize volumeName
    --manage --delete-metadata diskId
    --manage --not-spare diskId
    --manage --volume-cache-policy off|wb --volume volumeName
    --manage --rebuild volumeName --target diskId
    --manage --spare diskId
    --manage --verify volumeName
    --manage --write-cache true|false --array arrayName
    --manage --delete-all-metadata [--no-sync]

   Manage Examples:
    --manage --spare 0-3-0-0
    -M -D VolumeDelete
    -M --normal 0-2-0-0
    --manage -w true -array Array_0000
    -M -U VolumeVerify
    --manage --help
    --manage -Z
    -M -Z --no-sync (Do not synchronize cache durning metadata deletion. Allowed only in WinPE)

   OptaneMemory Options:
   ------------------------------
   | Flag | Name                |
   ------------------------------
   |      | --OptaneMemory      |
   |      | --disable           |
   |      | --enable            |
   |      | --progress          |
   |      | --start             |
   |      | --info              |
   |      | --clear-cache       |
   |      | --verbose           |
   |      | --file-cache-offset |
   |      | --cache-size        |
   |      | --disk-to-accel     |
   |      | --drive-to-accel    |
   |      | --wait              |
   |      | --fast-drive        |
   ------------------------------

   OptaneMemory Usage:
   Manage Optane Memory configuration.
    --OptaneMemory --enable
                  [--file-cache-offset <starting LBA>]
    --OptaneMemory --enable --fast-drive <driveId> --drive-to-accel <driveId>
                  [--file-cache-offset <starting LBA>]
    --OptaneMemory --disable
    --OptaneMemory --progress
    --OptaneMemory --clear-cache
    --OptaneMemory --info <--verbose>

   OptaneMemory Examples:
    --OptaneMemory --enable
    --OptaneMemory --enable --fast-drive 0-3-0-0 --drive-to-accel 0-5-0-0
    --OptaneMemory --enable --fast-drive 0-3-0-0 --drive-to-accel 0-5-0-0 --file-cache-offset 468000
    --OptaneMemory --disable
    --OptaneMemory --clear-cache
    --OptaneMemory --info --verbose
    --OptaneMemory --help


   Modify Options:
   ------------------------
   | Flag | Name          |
   ------------------------
   | -m   | --modify      |
   | -A   | --add         |
   | -X   | --expand      |
   | -l   | --level       |
   | -n   | --name        |
   | -s   | --stripe-size |
   | -v   | --volume      |
   ------------------------

   Modify Usage:
   Modifies an existing volume or array.
    --modify --volume VolumeName --add diskId {[diskId]}
    --modify --volume VolumeName --expand
    --modify --volume VolumeName --level L [--add diskId {[diskId]}
    [--stripe-size s] [--name N]
    --modify --volume VolumeName --name n

   Modify Examples:
    -m -v Volume_0000 -A 0-3-0-0 0-4-0-0
    -m --volume ModifyVolume --level 5
    --modify -v Volume -n RenameVolume
    --modify --help


   Rescan Options:
   -------------------
   | Flag | Name     |
   -------------------
   | -r   | --rescan |
   -------------------

   Rescan Usage:
   Forces the system to rescan for hardware changes.
    --rescan

   Rescan Examples:
    --rescan


   Accelerate Options:
   -------------------------------
   | Flag | Name                 |
   -------------------------------
   |      | --accelerate         |
   |      | --SSD                |
   |      | --setAccelConfig     |
   |      | --disk-to-accel      |
   |      | --disassociate       |
   |      | --mode               |
   |      | --fast-drive         |
   |      | --volume-to-accel    |
   |      | --drive-to-accel     |
   |      | --cache-size         |
   |      | --reset-to-available |
   |      | --cache-volume       |
   |      | --recurse            |
   |      | --accel-info         |
   |      | --loadCache          |
   |      | --stats              |
   |      | --dumpStats          |
   |      | --clear-stats        |
   |      | --wait               |
   -------------------------------

   Accelerate Usage:
   Accelerates a given drive or volume with the specified fast drive.
    --accelerate --setAccelConfig|--disassociate|
                 --reset-to-available|--accel-info
    --accelerate --setAccelConfig --drive-to-accel <driveId> | 
                 --volume-to-accel <volume name>  --mode off
    --accelerate --disassociate --cache-volume <volume name>
    --accelerate --reset-to-available --cache-volume <volume name>
    --accelerate --loadCache <path\filename(s)> --recurse
   Common information options
    --accelerate --accel-info
    --accelerate --stats

   Accelerate Examples:
    --accelerate --setAccelConfig --drive-to-accel 0-5-0-0 --mode off
    --accelerate --setAccelConfig --volume-to-accel MyVolume --mode off
    --accelerate --disassociate --cache-volume Cache_Volume
    --accelerate --reset-to-available --cache-volume Cache_Volume

    --accelerate --loadCache "C:\*" --recurse
    --accelerate --loadCache "C:\Windows\*" --recurse -q

    --accelerate --accel-info
    --accelerate --stats
    --accelerate --help


   Version Options:
   --------------------
   | Flag | Name      |
   --------------------
   | -V   | --version |
   --------------------

   Version Usage:
   Displays version information.
    --version

   Version Examples:
    --version


OPTIONS:

   -A <<host>-<bus>-<target>-<lun>>,  --add <<host>-<bus>-<target>-<lun>>
     Adds new disks to an existing volume.

   -a <Array name>,  --array <Array name>
     Lists information about the arrays in the storage system.

   --accel-info
     Lists information about Accelerate settings.

   --accelerate
     Accelerates a given drive or volume with the specified fast drive.

   --cache-size <size in GB>
     Sets a size in gigabytes for the cache memory. This is an optional 
     switch. If the size is not specified, the complete size of the fast drive 
     will be used for acceleration.

   --cache-volume <Volume name>
     Specifies a name for the volume used as cache.

   -c <<host>-<bus>-<target>-<lun>>,  --controller <<host>-<bus>-<target>-<lun>>
     Lists information about the controllers in the storage system.

   -C,  --create
     Creates a new volume and array or creates a new volume on an existing 
     array.

   --clear-cache
     Clear Optane block cache.

   --clear-stats
     Clear statistic information for NV cache

   --comma
     Lists information in a comma delimited format view.

   -D <Volume name>,  --delete <Volume name>
     Deletes the specified volume.

   -d <<host>-<bus>-<target>-<lun>>,  --disk <<host>-<bus>-<target>-<lun>>
     Lists information about the disks in the storage system.

   --disable
     Separate Optane Memory into Optane drive and capacity drive.

   --disassociate
     This action is only available if the accelerated drive or volume that is 
     associated with the cache drive is reported missing or inaccessible. As a 
     result, caching activity is no longer occurring. If you are unable to 
     reconnect the accelerated disk or volume, the only option is to remove 
     the association between the cache drive and the disk or volume. Once the 
     association between the cache and the accelerated disk or volume is 
     removed, all cache metadata and data is deleted from the cache drive. You 
     can then reset the solid-state drive to available or accelerate a 
     different disk or volume, as long as the cache drive is healthy.

   --disk-to-accel <<host>-<bus>-<target>-<lun>>
     see --drive-to-accel

   --drive-to-accel <<host>-<bus>-<target>-<lun>>
     Specifies a drive if accelerating a pass-through drive.

   --dumpStats
     Provides statistical information about the NV cache for further 
     investigation

   -E <<host>-<bus>-<target>-<lun>>,  --create-from-existing 
   <<host>-<bus>-<target>-<lun>>
     Identifies the disk if data is to be migrated from one of the disks. Disk 
     identifier is SCSI address.

   --enable
     Create Optane Memory

   --fast-drive <<host>-<bus>-<target>-<lun>>
     Specifies fast drive that will be used as cache/accelerator. If another 
     fast is being used as cache, then that volume needs to be deleted to use 
     a new fast drive.

   --file-cache-offset <size in GB>
     Parameter defining File Cache offset in LBA. This is optional switch

   -F <<host>-<bus>-<target>-<lun>>,  --normal <<host>-<bus>-<target>-<lun>>
     Resets failed or SMART event disk to normal.

   -f <Volume name>,  --normal-volume <Volume name>
     Resets failed RAID 0 volume to normal and recovers data.

   -h,  --help
     Displays help documentation for command line utility modes, options, 
     usage, examples, and return codes. When used with a mode switch (create, 
     information, mange, modify, or accelerate), instructions for that mode 
     display. For example, --create --help displays Create option help.

   -I,  --information
     Displays disk, volume, array, and controller information.

   -i <Volume name>,  --initialize <Volume name>
     Initializes the redundant data on a RAID 1, 5 or 10 volume.

   --info
     Lists information about Optane Memory settings.

   -l <0, 1, 5, 10>,  --level <0, 1, 5, 10>
     Changes the Raid type of an existing volume. Options are migrations from 
     RAID 1 to RAID 0 or 5, RAID 0 to RAID 5, and RAID 10 to RAID 5.

   --loadCache <"Path\filename(s)">
     Loads contents into the NV cache.

   -M,  --manage
     Manages arrays, volumes and disks present in the storage system.

   -m,  --modify
     Modifies an existing volume or array.

   --mode <Enhanced or Maximized mode>
     Specifies Accelerate mode as Enhanced or Maximized.

   -n <Volume name>,  --name <Volume name>
     Specifies a name for the volume created. Renames an existing volume in 
     Modify mode.

   -N <<host>-<bus>-<target>-<lun>>,  --not-spare <<host>-<bus>-<target>-<lun>>
     Resets a spare disk to available.

   --no-sync
     Do not synchronize cache durning metadata deletion. Allowed only in WinPE

   --OptaneMemory
     Manage Optane Memory configuration.

   --progress
     Displays the progress of file cache migration.

   -p <Volume name>,  --verify-repair <Volume name>
     Verifies and repairs the volume.

   -P <Volume name>,  --volume-cache-policy <Volume name>
     Sets volume cache policy to either off or wb.

   -q,  --quiet
     Suppresses output for create, modify, and manage modes. Not valid on info 
     mode.

   --recurse
     When loading content into the NV cache, recurses into sub directories.

   --reset-to-available
     Resets the cache volume to available.

   -R <Volume name>,  --rebuild <Volume name>
     Rebuilds the degraded volume.

   -r,  --rescan
     Forces the system to rescan for hardware changes.

   --rrt
     Creates a recovery volume using Intel(R) Rapid Recovery Technology (RRT).

   --rrtMaster <<host>-<bus>-<target>-<lun>>
     Optionally creates a recovery volume that allows you to select a specific 
     disk as the master disk. Default is the first disk in the disk list.

   --rrtUpdate <Continuous or OnRequest Update>
     Specifies a data update setting when creating a recovery volume as 
     Continuous or OnRequest. Default is Continuous.

   --setAccelConfig
     Sets the config for accelerating a volume or drive.

   --SSD <<host>-<bus>-<target>-<lun>>
     see --fast-drive 

   -S <<host>-<bus>-<target>-<lun>>,  --spare <<host>-<bus>-<target>-<lun>>
     Marks a disk as a spare.

   -s <size in KB>,  --stripe-size <size in KB>
     Sets a stripe size in kilobytes (2^10 bytes) for a volume. Valid when 
     creating or changing the type of a volume and for RAID 0, RAID 5 and RAID 
     10. Options are 4, 8, 16, 32, 64 and 128 KB.

   --start
     Start services for Optane Memory

   --stats
     Provides statistical information about the NV cache.

   -T <<host>-<bus>-<target>-<lun>>,  --delete-metadata 
   <<host>-<bus>-<target>-<lun>>
     Deletes the metadata from the specified disk.

   -t <<host>-<bus>-<target>-<lun>>,  --target <<host>-<bus>-<target>-<lun>>
     Indicates the pass-through disk to be used for rebuilding a degraded 
     volume.

   -u <password>,  --unlock <password>
     Unlocks a disk.

   -U <Volume name>,  --verify <Volume name>
     Verifies data on the volume.

   --verbose
     Enable verbose mode for some options (please check help for other 
     options)

   --volume-to-accel <Volume name>
     Specifies a name of the volume to be accelerated.

   -V,  --version
     Displays version information.

   -v <Volume name>,  --volume <Volume name>
     Lists information about the volumes on the system. Stipulates the volume 
     to act on when used in Modify or Manage mode.

   --wait
     Wait for completion of the cache migration before CLI exit

   -w <true or false>,  --write-cache <true or false>
     Enables or disables write cache for all disks that are part of an array.

   -x <Volume name>,  --cancel-verify <Volume name>
     Cancels a verify operation in progress.

   -X,  --expand
     Expands a volume to consume all available space in an array.

   -Z,  --delete-all-metadata
     Deletes the metadata from all disks on the system.

   -z <size in GB>,  --size <size in GB>
     Sets a size in gigabytes. This is an optional switch. If the size is not 
     specified or specified to 0, then the maximum size available will be 
     used.

************************************************************
* Boost Software License - Version 1.0 - August 17th, 2003
************************************************************

Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following:

The copyright notices in the Software and this entire statement, including
the above license grant, this restriction and the following disclaimer,
must be included in all copies of the Software, in whole or in part, and
all derivative works of the Software, unless such copies or derivative
works are solely in the form of machine-executable object code generated by
a source language processor.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.


************************************************************
* DISCLAIMER
************************************************************

INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS.
NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY
INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS
PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL
ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED
WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY
OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER
INTELLECTUAL PROPERTY RIGHT.

UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT 
DESIGNED NOR INTENDED FOR ANY APPLICATION IN WHICH THE FAILURE OF THE INTEL
PRODUCT COULD CREATE A SITUATION WHERE PERSONAL INJURY OR DEATH MAY OCCUR.

Intel may make changes to specifications and product descriptions at any
time, without notice. Designers must not rely on the absence or 
characteristics of any features or instructions marked "reserved" or "undefined". 
Intel reserves these for future definition and shall have no
responsibility whatsoever for conflicts or incompatibilities arising from 
future changes to them. The information here is subject to change without 
notice. Do not finalize a design with this information.

The products described in this document may contain design defects or
errors known as errata which may cause the product to deviate from 
published specifications. Current characterized errata are available on 
request.

Contact your local Intel sales office or your distributor to obtain the 
latest specifications and before placing your product order.

Copies of documents which have an order number and are referenced in this
document, or other Intel literature, may be obtained by calling 
1-800-548-4725, or go to: http://www.intel.com/#/en_us_01

Intel(R) is a trademark of Intel Corporation in the U.S. and other 
countries.

* Other names and brands may be claimed as the property of others
        
Copyright (C), Intel Corporation. All rights reserved.
************************************************************
* INTEL SOFTWARE LICENSE AGREEMENT
************************************************************
