]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - ReadMe.c
uhm.. assort fixes, particularly for recovery offset...
[thirdparty/mdadm.git] / ReadMe.c
index 390fee43045731a07a986e88769bb5003b088ae1..4ec3fef52ebb1da58143728974b05cae7e57c31b 100644 (file)
--- a/ReadMe.c
+++ b/ReadMe.c
@@ -1,7 +1,8 @@
+
 /*
  * mdadm - manage Linux "md" devices aka RAID arrays.
  *
 /*
  * mdadm - manage Linux "md" devices aka RAID arrays.
  *
- * Copyright (C) 2001-2002 Neil Brown <neilb@cse.unsw.edu.au>
+ * Copyright (C) 2001-2005 Neil Brown <neilb@cse.unsw.edu.au>
  *
  *
  *    This program is free software; you can redistribute it and/or modify
  *
  *
  *    This program is free software; you can redistribute it and/or modify
@@ -29,7 +30,8 @@
 
 #include "mdadm.h"
 
 
 #include "mdadm.h"
 
-char Version[] = Name " - v1.0.9 - 12 Feb 2003\n";
+char Version[] = Name " - v2.2 - 5 December 2005\n";
+
 /*
  * File: ReadMe.c
  *
 /*
  * File: ReadMe.c
  *
@@ -58,7 +60,7 @@ char Version[] = Name " - v1.0.9 - 12 Feb 2003\n";
  */
 
 /*
  */
 
 /*
- * mdadm has 6 major modes of operation:
+ * mdadm has 7 major modes of operation:
  * 1/ Create
  *     This mode is used to create a new array with a superblock
  *     It can progress in several step create-add-add-run
  * 1/ Create
  *     This mode is used to create a new array with a superblock
  *     It can progress in several step create-add-add-run
@@ -84,9 +86,15 @@ char Version[] = Name " - v1.0.9 - 12 Feb 2003\n";
  *     Also query will treat it as either
  * 6/ Monitor
  *     This mode never exits but just monitors arrays and reports changes.
  *     Also query will treat it as either
  * 6/ Monitor
  *     This mode never exits but just monitors arrays and reports changes.
+ * 7/ Grow
+ *     This mode allows for changing of key attributes of a raid array, such
+ *     as size, number of devices, and possibly even layout.
+ *     At the time if writing, there is only minimal support.
  */
 
  */
 
-char short_options[]="-ABCDEFGQhVvbc:l:p:m:n:x:u:c:d:z:U:sarfRSow";
+char short_options[]="-ABCDEFGQhVXvqbc:i:l:p:m:n:x:u:c:d:z:U:sarfRSow1tye:";
+char short_bitmap_auto_options[]="-ABCDEFGQhVXvqb:c:i:l:p:m:n:x:u:c:d:z:U:sa:rfRSow1tye:";
+
 struct option long_options[] = {
     {"manage",    0, 0, '@'},
     {"misc",      0, 0, '#'},
 struct option long_options[] = {
     {"manage",    0, 0, '@'},
     {"misc",      0, 0, '#'},
@@ -96,37 +104,50 @@ struct option long_options[] = {
     {"detail",    0, 0, 'D'},
     {"examine",   0, 0, 'E'},
     {"follow",    0, 0, 'F'},
     {"detail",    0, 0, 'D'},
     {"examine",   0, 0, 'E'},
     {"follow",    0, 0, 'F'},
-    {"grow",      0, 0, 'G'}, /* not yet implemented */
+    {"grow",      0, 0, 'G'},
     {"zero-superblock", 0, 0, 'K'}, /* deliberately no a short_option */
     {"query",    0, 0, 'Q'},
     {"zero-superblock", 0, 0, 'K'}, /* deliberately no a short_option */
     {"query",    0, 0, 'Q'},
+    {"examine-bitmap", 0, 0, 'X'},
 
     /* synonyms */
     {"monitor",   0, 0, 'F'},
            
     /* after those will normally come the name of the md device */
     {"help",      0, 0, 'h'},
 
     /* synonyms */
     {"monitor",   0, 0, 'F'},
            
     /* after those will normally come the name of the md device */
     {"help",      0, 0, 'h'},
+    {"help-options",0,0,'h'},
     {"version",          0, 0, 'V'},
     {"verbose",   0, 0, 'v'},
     {"version",          0, 0, 'V'},
     {"verbose",   0, 0, 'v'},
+    {"quiet",    0, 0, 'q'},
 
     /* For create or build: */
     {"chunk",    1, 0, 'c'},
     {"rounding",  1, 0, 'c'}, /* for linear, chunk is really a rounding number */
 
     /* For create or build: */
     {"chunk",    1, 0, 'c'},
     {"rounding",  1, 0, 'c'}, /* for linear, chunk is really a rounding number */
-    {"level",     1, 0, 'l'}, /* 0,1,4,5,linear */
+    {"level",     1, 0, 'l'}, /* 0,1,4,5,6,linear */
     {"parity",    1, 0, 'p'}, /* {left,right}-{a,}symmetric */
     {"layout",    1, 0, 'p'},
     {"raid-disks",1, 0, 'n'},
     {"raid-devices",1, 0, 'n'},
     {"spare-disks",1,0, 'x'},
     {"spare-devices",1,0, 'x'},
     {"parity",    1, 0, 'p'}, /* {left,right}-{a,}symmetric */
     {"layout",    1, 0, 'p'},
     {"raid-disks",1, 0, 'n'},
     {"raid-devices",1, 0, 'n'},
     {"spare-disks",1,0, 'x'},
     {"spare-devices",1,0, 'x'},
-    {"size"      ,1, 0, 'z'},
+    {"size",     1, 0, 'z'},
+    {"auto",     1, 0, 'a'}, /* also for --assemble */
+    {"assume-clean",0,0, 3 },
+    {"metadata",  1, 0, 'e'}, /* superblock format */
+    {"bitmap",   1, 0, 'b'},
+    {"bitmap-chunk", 1, 0, 4},
+    {"write-behind", 2, 0, 5},
+    {"write-mostly",0, 0, 'W'},
+    {"re-add",    0, 0,  6},
 
     /* For assemble */
     {"uuid",      1, 0, 'u'},
     {"super-minor",1,0, 'm'},
 
     /* For assemble */
     {"uuid",      1, 0, 'u'},
     {"super-minor",1,0, 'm'},
+    {"name",     1, 0, 'N'},
     {"config",    1, 0, 'c'},
     {"scan",      0, 0, 's'},
     {"force",    0, 0, 'f'},
     {"update",   1, 0, 'U'},
     {"config",    1, 0, 'c'},
     {"scan",      0, 0, 's'},
     {"force",    0, 0, 'f'},
     {"update",   1, 0, 'U'},
+
     /* Management */
     {"add",       0, 0, 'a'},
     {"remove",    0, 0, 'r'},
     /* Management */
     {"add",       0, 0, 'a'},
     {"remove",    0, 0, 'r'},
@@ -140,13 +161,17 @@ struct option long_options[] = {
     /* For Detail/Examine */
     {"brief",    0, 0, 'b'},
     {"sparc2.2",  0, 0, 22},
     /* For Detail/Examine */
     {"brief",    0, 0, 'b'},
     {"sparc2.2",  0, 0, 22},
+    {"test",      0, 0, 't'},
 
     /* For Follow/monitor */
     {"mail",      1, 0, 'm'},
     {"program",   1, 0, 'p'},
     {"alert",     1, 0, 'p'},
     {"delay",     1, 0, 'd'},
 
     /* For Follow/monitor */
     {"mail",      1, 0, 'm'},
     {"program",   1, 0, 'p'},
     {"alert",     1, 0, 'p'},
     {"delay",     1, 0, 'd'},
-    
+    {"daemonise", 0, 0, 'f'},
+    {"daemonize", 0, 0, 'f'},
+    {"oneshot",   0, 0, '1'},
+    {"pid-file",  1, 0, 'i'},
     
     {0, 0, 0, 0}
 };
     
     {0, 0, 0, 0}
 };
@@ -165,20 +190,27 @@ char Help[] =
 "       mdadm --monitor options...\n"
 "       mdadm device options...\n"
 " mdadm is used for building, managing, and monitoring\n"
 "       mdadm --monitor options...\n"
 "       mdadm device options...\n"
 " mdadm is used for building, managing, and monitoring\n"
-"      Linux md devices (aka RAID arrays)\n"
-" For detail help on the above major modes use --help after the mode\n"
+" Linux md devices (aka RAID arrays)\n"
+" For detailed help on the above major modes use --help after the mode\n"
 " e.g.\n"
 "         mdadm --assemble --help\n"
 " e.g.\n"
 "         mdadm --assemble --help\n"
-"\n"
+" For general help on options use\n"
+"         mdadm --help-options\n"
+;
+
+char OptionHelp[] =
 "Any parameter that does not start with '-' is treated as a device name\n"
 "Any parameter that does not start with '-' is treated as a device name\n"
+"or, for --examine-bitmap, a file name.\n"
 "The first such name is often the name of an md device.  Subsequent\n"
 "names are often names of component devices."
 "\n"
 "Some common options are:\n"
 "The first such name is often the name of an md device.  Subsequent\n"
 "names are often names of component devices."
 "\n"
 "Some common options are:\n"
-"  --help        -h   : This help message or, after above option,\n"
+"  --help        -h   : General help message or, after above option,\n"
 "                       mode specific help message\n"
 "                       mode specific help message\n"
+"  --help-options     : This help message\n"
 "  --version     -V   : Print version information for mdadm\n"
 "  --verbose     -v   : Be more verbose about what is happening\n"
 "  --version     -V   : Print version information for mdadm\n"
 "  --verbose     -v   : Be more verbose about what is happening\n"
+"  --quiet       -q   : Don't print un-necessary messages\n"
 "  --brief       -b   : Be less verbose, more brief\n"
 "  --force       -f   : Override normal checks and be more forceful\n"
 "\n"
 "  --brief       -b   : Be less verbose, more brief\n"
 "  --force       -f   : Override normal checks and be more forceful\n"
 "\n"
@@ -187,6 +219,7 @@ char Help[] =
 "  --create      -C   : Create a new array\n"
 "  --detail      -D   : Display details of an array\n"
 "  --examine     -E   : Examine superblock on an array component\n"
 "  --create      -C   : Create a new array\n"
 "  --detail      -D   : Display details of an array\n"
 "  --examine     -E   : Examine superblock on an array component\n"
+"  --examine-bitmap -X: Display the detail of a bitmap file\n"
 "  --monitor     -F   : monitor (follow) some arrays\n"
 "  --query       -Q   : Display general information about how a\n"
 "                       device relates to the md driver\n"
 "  --monitor     -F   : monitor (follow) some arrays\n"
 "  --query       -Q   : Display general information about how a\n"
 "                       device relates to the md driver\n"
@@ -194,26 +227,36 @@ char Help[] =
 /*
 "\n"
 " For create or build:\n"
 /*
 "\n"
 " For create or build:\n"
+"  --bitmap=     -b   : File to store bitmap in - may pre-exist for --build\n"
 "  --chunk=      -c   : chunk size of kibibytes\n"
 "  --rounding=        : rounding factor for linear array (==chunk size)\n"
 "  --chunk=      -c   : chunk size of kibibytes\n"
 "  --rounding=        : rounding factor for linear array (==chunk size)\n"
-"  --level=      -l   : raid level: 0,1,4,5,linear,mp.  0 or linear for build\n"
-"  --parity=     -p   : raid5 parity algorithm: {left,right}-{,a}symmetric\n"
+"  --level=      -l   : raid level: 0,1,4,5,6,linear,mp.  0 or linear for build\n"
+"  --parity=     -p   : raid5/6 parity algorithm: {left,right}-{,a}symmetric\n"
 "  --layout=          : same as --parity\n"
 "  --raid-devices= -n : number of active devices in array\n"
 "  --spare-devices= -x: number of spares (eXtras) devices in initial array\n"
 "  --layout=          : same as --parity\n"
 "  --raid-devices= -n : number of active devices in array\n"
 "  --spare-devices= -x: number of spares (eXtras) devices in initial array\n"
-"  --size=       -z   : Size (in K) of each drive in RAID1/4/5 - optional\n"
+"  --size=       -z   : Size (in K) of each drive in RAID1/4/5/6/10 - optional\n"
 "  --force       -f   : Honour devices as listed on command line.  Don't\n"
 "                     : insert a missing drive for RAID5.\n"
 "  --force       -f   : Honour devices as listed on command line.  Don't\n"
 "                     : insert a missing drive for RAID5.\n"
+"  --auto(=p)    -a   : Automatically allocate new (partitioned) md array if needed.\n"
+"  --assume-clean     : Assume the array is already in-sync. This is dangerous.\n"
+"  --bitmap-chunk=    : chunksize of bitmap in bitmap file (Kilobytes)\n"
+"  --delay=      -d   : seconds between bitmap updates\n"
+"  --write-behind=    : number of simultaneous write-behind requests to allow (requires bitmap)\n"
+"  --name=       -N   : Textual name for array - max 32 characters\n"
 "\n"
 " For assemble:\n"
 "\n"
 " For assemble:\n"
+"  --bitmap=     -b   : File to find bitmap information in\n"
 "  --uuid=       -u   : uuid of array to assemble. Devices which don't\n"
 "                       have this uuid are excluded\n"
 "  --super-minor= -m  : minor number to look for in super-block when\n"
 "                       choosing devices to use.\n"
 "  --uuid=       -u   : uuid of array to assemble. Devices which don't\n"
 "                       have this uuid are excluded\n"
 "  --super-minor= -m  : minor number to look for in super-block when\n"
 "                       choosing devices to use.\n"
+"  --name=       -N   : Array name to look for in super-block.\n"
 "  --config=     -c   : config file\n"
 "  --scan        -s   : scan config file for missing information\n"
 "  --force       -f   : Assemble the array even if some superblocks appear out-of-date\n"
 "  --config=     -c   : config file\n"
 "  --scan        -s   : scan config file for missing information\n"
 "  --force       -f   : Assemble the array even if some superblocks appear out-of-date\n"
-"  --update=     -U   : Update superblock: either sparc2.2 or super-minor\n"
+"  --update=     -U   : Update superblock: one of sparc2.2, super-minor or summaries\n"
+"  --auto(=p)    -a   : Automatically allocate new (partitioned) md array if needed.\n"
 "\n"
 " For detail or examine:\n"
 "  --brief       -b   : Just print device name and UUID\n"
 "\n"
 " For detail or examine:\n"
 "  --brief       -b   : Just print device name and UUID\n"
@@ -240,16 +283,16 @@ char Help[] =
 char Help_create[] =
 "Usage:  mdadm --create device -chunk=X --level=Y --raid-devices=Z devices\n"
 "\n"
 char Help_create[] =
 "Usage:  mdadm --create device -chunk=X --level=Y --raid-devices=Z devices\n"
 "\n"
-" This usage will initialise a new md array and associate some\n"
-" devices with it.  If enough devices are given to complete the array,\n"
-" the array will be activated.  Otherwise it will be left inactive\n"
-" to be completed and activated by subsequent management commands.\n"
+" This usage will initialise a new md array, associate some\n"
+" devices with it, and activate the array.   In order to create an\n"
+" array with some devices missing, use the special word 'missing' in\n"
+" place of the relevant device name.\n"
 "\n"
 "\n"
-" As devices are added, they are checked to see if they already contain\n"
+" Before devices are added, they are checked to see if they already contain\n"
 " raid superblocks or filesystems.  They are also checked to see if\n"
 " the variance in device size exceeds 1%.\n"
 " raid superblocks or filesystems.  They are also checked to see if\n"
 " the variance in device size exceeds 1%.\n"
-" If any discrepancy is found, the array will not automatically\n"
-" be run, though the presence of a '--run' can override this\n"
+" If any discrepancy is found, the user will be prompted for confirmation\n"
+" before the array is created.  The presence of a '--run' can override this\n"
 " caution.\n"
 "\n"
 " If the --size option is given then only that many kilobytes of each\n"
 " caution.\n"
 "\n"
 " If the --size option is given then only that many kilobytes of each\n"
@@ -259,19 +302,23 @@ char Help_create[] =
 " other levels.\n"
 "\n"
 " Options that are valid with --create (-C) are:\n"
 " other levels.\n"
 "\n"
 " Options that are valid with --create (-C) are:\n"
+"  --bitmap=          : Create a bitmap for the array with the given filename\n"
 "  --chunk=      -c   : chunk size of kibibytes\n"
 "  --rounding=        : rounding factor for linear array (==chunk size)\n"
 "  --chunk=      -c   : chunk size of kibibytes\n"
 "  --rounding=        : rounding factor for linear array (==chunk size)\n"
-"  --level=      -l   : raid level: 0,1,4,5,linear,multipath and synonyms\n"
-"  --parity=    -p   : raid5 parity algorithm: {left,right}-{,a}symmetric\n"
+"  --level=      -l   : raid level: 0,1,4,5,6,linear,multipath and synonyms\n"
+"  --parity=     -p   : raid5/6 parity algorithm: {left,right}-{,a}symmetric\n"
 "  --layout=          : same as --parity\n"
 "  --raid-devices= -n : number of active devices in array\n"
 "  --spare-devices= -x: number of spares (eXtras) devices in initial array\n"
 "  --layout=          : same as --parity\n"
 "  --raid-devices= -n : number of active devices in array\n"
 "  --spare-devices= -x: number of spares (eXtras) devices in initial array\n"
-"  --size=       -z   : Size (in K) of each drive in RAID1/4/5 - optional\n"
+"  --size=       -z   : Size (in K) of each drive in RAID1/4/5/6/10 - optional\n"
 "  --force       -f   : Honour devices as listed on command line.  Don't\n"
 "                     : insert a missing drive for RAID5.\n"
 "  --force       -f   : Honour devices as listed on command line.  Don't\n"
 "                     : insert a missing drive for RAID5.\n"
-"   --run             : insist of running the array even if not all\n"
+"  --run         -R   : insist of running the array even if not all\n"
 "                     : devices are present or some look odd.\n"
 "                     : devices are present or some look odd.\n"
-"   --readonly        : start the array readonly - not supported yet.\n"
+"  --readonly    -o   : start the array readonly - not supported yet.\n"
+"  --name=       -N   : Textual name for array - max 32 characters\n"
+"  --bitmap-chunk=    : bitmap chunksize in Kilobytes.\n"
+"  --delay=      -d   : bitmap update delay in seconds.\n"
 "\n"
 ;
 
 "\n"
 ;
 
@@ -287,10 +334,13 @@ char Help_build[] =
 " The level may only be 0, raid0, or linear.\n"
 " All devices must be listed and the array will be started once complete.\n"
 " Options that are valid with --build (-B) are:\n"
 " The level may only be 0, raid0, or linear.\n"
 " All devices must be listed and the array will be started once complete.\n"
 " Options that are valid with --build (-B) are:\n"
+"  --bitmap=          : file to store/find bitmap information in.\n"
 "  --chunk=      -c   : chunk size of kibibytes\n"
 "  --rounding=        : rounding factor for linear array (==chunk size)\n"
 "  --level=      -l   : 0, raid0, or linear\n"
 "  --chunk=      -c   : chunk size of kibibytes\n"
 "  --rounding=        : rounding factor for linear array (==chunk size)\n"
 "  --level=      -l   : 0, raid0, or linear\n"
-"  --raid-devices= -n   : number of active devices in array\n"
+"  --raid-devices= -n : number of active devices in array\n"
+"  --bitmap-chunk=    : bitmap chunksize in Kilobytes.\n"
+"  --delay=      -d   : bitmap update delay in seconds.\n"
 ;
 
 char Help_assemble[] =
 ;
 
 char Help_assemble[] =
@@ -326,17 +376,19 @@ char Help_assemble[] =
 " and components are determined from the config file.\n"
 "\n"
 "Options that are valid with --assemble (-A) are:\n"
 " and components are determined from the config file.\n"
 "\n"
 "Options that are valid with --assemble (-A) are:\n"
+"  --bitmap=          : bitmap file to use wit the array\n"
 "  --uuid=       -u   : uuid of array to assemble. Devices which don't\n"
 "                       have this uuid are excluded\n"
 "  --super-minor= -m  : minor number to look for in super-block when\n"
 "                       choosing devices to use.\n"
 "  --uuid=       -u   : uuid of array to assemble. Devices which don't\n"
 "                       have this uuid are excluded\n"
 "  --super-minor= -m  : minor number to look for in super-block when\n"
 "                       choosing devices to use.\n"
+"  --name=       -N   : Array name to look for in super-block.\n"
 "  --config=     -c   : config file\n"
 "  --scan        -s   : scan config file for missing information\n"
 "  --run         -R   : Try to start the array even if not enough devices\n"
 "                       for a full array are present\n"
 "  --force       -f   : Assemble the array even if some superblocks appear\n"
 "                     : out-of-date.  This involves modifying the superblocks.\n"
 "  --config=     -c   : config file\n"
 "  --scan        -s   : scan config file for missing information\n"
 "  --run         -R   : Try to start the array even if not enough devices\n"
 "                       for a full array are present\n"
 "  --force       -f   : Assemble the array even if some superblocks appear\n"
 "                     : out-of-date.  This involves modifying the superblocks.\n"
-"  --update=     -U   : Update superblock: either sparc2.2 or super-minor\n"
+"  --update=     -U   : Update superblock: one of sparc2.2, super-minor or summaries\n"
 ;
 
 char Help_manage[] =
 ;
 
 char Help_manage[] =
@@ -372,11 +424,13 @@ char Help_misc[] =
 "                       device relates to the md driver\n"
 "  --detail      -D   : Display details of an array\n"
 "  --examine     -E   : Examine superblock on an array component\n"
 "                       device relates to the md driver\n"
 "  --detail      -D   : Display details of an array\n"
 "  --examine     -E   : Examine superblock on an array component\n"
+"  --examine-bitmap -X: Display contents of a bitmap file\n"
 "  --zero-superblock  : erase the MD superblock from a device.\n"
 "  --run         -R   : start a partially built array\n"
 "  --stop        -S   : deactivate array, releasing all resources\n"
 "  --readonly    -o   : mark array as readonly\n"
 "  --readwrite   -w   : mark array as readwrite\n"
 "  --zero-superblock  : erase the MD superblock from a device.\n"
 "  --run         -R   : start a partially built array\n"
 "  --stop        -S   : deactivate array, releasing all resources\n"
 "  --readonly    -o   : mark array as readonly\n"
 "  --readwrite   -w   : mark array as readwrite\n"
+"  --test        -t   : exit status 0 if ok, 1 if degrade, 2 if dead, 4 if missing\n"
 ;
 
 char Help_monitor[] =
 ;
 
 char Help_monitor[] =
@@ -391,15 +445,35 @@ char Help_monitor[] =
 "If no mail address or program are specified, then mdadm reports all\n"
 "state changes to stdout.\n"
 "\n"
 "If no mail address or program are specified, then mdadm reports all\n"
 "state changes to stdout.\n"
 "\n"
-"Options that are valid with the monitor (--F --follow) mode are:\n"
+"Options that are valid with the monitor (-F --follow) mode are:\n"
 "  --mail=       -m   : Address to mail alerts of failure to\n"
 "  --program=    -p   : Program to run when an event is detected\n"
 "  --alert=           : same as --program\n"
 "  --delay=      -d   : seconds of delay between polling state. default=60\n"
 "  --config=     -c   : specify a different config file\n"
 "  --scan        -s   : find mail-address/program in config file\n"
 "  --mail=       -m   : Address to mail alerts of failure to\n"
 "  --program=    -p   : Program to run when an event is detected\n"
 "  --alert=           : same as --program\n"
 "  --delay=      -d   : seconds of delay between polling state. default=60\n"
 "  --config=     -c   : specify a different config file\n"
 "  --scan        -s   : find mail-address/program in config file\n"
+"  --daemonise   -f   : Fork and continue in child, parent exits\n"
+"  --pid-file=   -i   : In daemon mode write pid to specified file instead of stdout\n"
+"  --oneshot     -1   : Check for degraded arrays, then exit\n"
+"  --test        -t   : Generate a TestMessage event against each array at startup\n"
 ;
 
 ;
 
+char Help_grow[] =
+"Usage: mdadm --grow device options\n"
+"\n"
+"This usage causes mdadm to attempt to reconfigure a running array.\n"
+"This is only possibly if the kernel being used supports a particular\n"
+"reconfiguration.  This version only supports changing the number of\n"
+"devices in a RAID1, and changing the active size of all devices in\n"
+"a RAID1/4/5/6.\n"
+"\n"
+"Options that are valid with the grow (-G --grow) mode are:\n"
+"  --size=        -z   : Change the active size of devices in an array.\n"
+"                      : This is useful if all devices have been replaced\n"
+"                      : with larger devices.\n"
+"  --raid-disks=  -n   : Change the number of active devices in a RAID1\n"
+"                      : array.\n"
+;
 
 
 
 
 
 
@@ -468,6 +542,11 @@ mapping_t pers[] = {
        { "5", 5},
        { "multipath", -4},
        { "mp", -4},
        { "5", 5},
        { "multipath", -4},
        { "mp", -4},
+       { "raid6", 6},
+       { "6", 6},
+       { "raid10", 10},
+       { "10", 10},
+       { "faulty", -5},
        { NULL, 0}
 };
 
        { NULL, 0}
 };
 
@@ -479,4 +558,26 @@ mapping_t modes[] = {
        { "manage", MANAGE},
        { "misc", MISC},
        { "monitor", MONITOR},
        { "manage", MANAGE},
        { "misc", MISC},
        { "monitor", MONITOR},
+       { "grow", GROW},
+};
+
+mapping_t faultylayout[] = {
+       { "write-transient", WriteTransient },
+       { "wt", WriteTransient },
+       { "read-transient", ReadTransient },
+       { "rt", ReadTransient },
+       { "write-persistent", WritePersistent },
+       { "wp", WritePersistent },
+       { "read-persistent", ReadPersistent },
+       { "rp", ReadPersistent },
+       { "write-all", WriteAll },
+       { "wa", WriteAll },
+       { "read-fixable", ReadFixable },
+       { "rf", ReadFixable },
+
+       { "clear", ClearErrors},
+       { "flush", ClearFaults},
+       { "none", ClearErrors},
+       { "default", ClearErrors},
+       { NULL, 0}
 };
 };