]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - ReadMe.c
mdadm-1.6.0
[thirdparty/mdadm.git] / ReadMe.c
index fd16d8a9e910f64e1b4bb4aed0986d738d71a62a..6ba33ba15367ddb615e3caf52f158676c9496563 100644 (file)
--- a/ReadMe.c
+++ b/ReadMe.c
@@ -29,7 +29,7 @@
 
 #include "mdadm.h"
 
-char Version[] = Name " - v1.2.0 - 13 Mar 2003\n";
+char Version[] = Name " - v1.6.0 - 4 June 2004\n";
 /*
  * File: ReadMe.c
  *
@@ -58,7 +58,7 @@ char Version[] = Name " - v1.2.0 - 13 Mar 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
@@ -84,9 +84,13 @@ char Version[] = Name " - v1.2.0 - 13 Mar 2003\n";
  *     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[]="-ABCDEFGQhVvbc:l:p:m:n:x:u:c:d:z:U:sa::rfRSow1t";
 struct option long_options[] = {
     {"manage",    0, 0, '@'},
     {"misc",      0, 0, '#'},
@@ -96,7 +100,7 @@ struct option long_options[] = {
     {"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'},
 
@@ -112,14 +116,16 @@ struct option long_options[] = {
     /* 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'},
-    {"size"      ,1, 0, 'z'},
+    {"size",     1, 0, 'z'},
+    {"auto",     2, 0, 'a'}, /* also for --assemble */
+    {"assume-clean",0,0, 3 },
 
     /* For assemble */
     {"uuid",      1, 0, 'u'},
@@ -141,6 +147,7 @@ struct option long_options[] = {
     /* For Detail/Examine */
     {"brief",    0, 0, 'b'},
     {"sparc2.2",  0, 0, 22},
+    {"test",      0, 0, 't'},
 
     /* For Follow/monitor */
     {"mail",      1, 0, 'm'},
@@ -149,7 +156,7 @@ struct option long_options[] = {
     {"delay",     1, 0, 'd'},
     {"daemonise", 0, 0, 'f'},
     {"daemonize", 0, 0, 'f'},
-    
+    {"oneshot",   0, 0, '1'},
     
     {0, 0, 0, 0}
 };
@@ -204,14 +211,16 @@ char OptionHelp[] =
 " For create or build:\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"
-"  --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 - optional\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"
 "\n"
 " For assemble:\n"
 "  --uuid=       -u   : uuid of array to assemble. Devices which don't\n"
@@ -221,7 +230,8 @@ char OptionHelp[] =
 "  --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"
@@ -248,16 +258,16 @@ char OptionHelp[] =
 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"
-" 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"
-" 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"
@@ -269,17 +279,17 @@ char Help_create[] =
 " Options that are valid with --create (-C) are:\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"
-"  --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 - optional\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"
-"   --readonly        : start the array readonly - not supported yet.\n"
+"  --readonly    -o   : start the array readonly - not supported yet.\n"
 "\n"
 ;
 
@@ -344,7 +354,7 @@ char Help_assemble[] =
 "                       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[] =
@@ -385,6 +395,7 @@ char Help_misc[] =
 "  --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[] =
@@ -399,7 +410,7 @@ char Help_monitor[] =
 "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"
@@ -407,8 +418,26 @@ char Help_monitor[] =
 "  --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"
+"  --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 (-F --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"
+;
 
 
 
@@ -477,6 +506,8 @@ mapping_t pers[] = {
        { "5", 5},
        { "multipath", -4},
        { "mp", -4},
+       { "raid6", 6},
+       { "6", 6},
        { NULL, 0}
 };
 
@@ -488,4 +519,5 @@ mapping_t modes[] = {
        { "manage", MANAGE},
        { "misc", MISC},
        { "monitor", MONITOR},
+       { "grow", GROW},
 };