linux-bk/Documentation/md.txt
<<
>>
Prefs
   1Tools that manage md devices can be found at
   2   http://www.<country>.kernel.org/pub/linux/utils/raid/....
   3
   4
   5
   6You can boot with your md device with the following kernel command
   7lines:
   8
   9for old raid arrays without persistent superblocks:
  10  md=<md device no.>,<raid level>,<chunk size factor>,<fault level>,dev0,dev1,...,devn
  11
  12for raid arrays with persistent superblocks
  13  md=<md device no.>,dev0,dev1,...,devn
  14  
  15md device no. = the number of the md device ... 
  16              0 means md0, 
  17              1 md1,
  18              2 md2,
  19              3 md3,
  20              4 md4
  21
  22raid level = -1 linear mode
  23              0 striped mode
  24              other modes are only supported with persistent super blocks
  25
  26chunk size factor = (raid-0 and raid-1 only)
  27              Set  the chunk size as 4k << n.
  28              
  29fault level = totally ignored
  30                            
  31dev0-devn: e.g. /dev/hda1,/dev/hdc1,/dev/sda1,/dev/sdb1
  32                            
  33A possible loadlin line (Harald Hoyer <HarryH@Royal.Net>)  looks like this:
  34
  35e:\loadlin\loadlin e:\zimage root=/dev/md0 md=0,0,4,0,/dev/hdb2,/dev/hdc3 ro
  36
  37-------------------------------
  38The md driver can support a variety of different superblock formats.
  39(It doesn't yet, but it can)
  40
  41The kernel does *NOT* autodetect which format superblock is being
  42used. It must be told.
  43
  44Superblock format '0' is treated differently to others for legacy
  45reasons.
  46
  47
  48General Rules - apply for all superblock formats
  49------------------------------------------------
  50
  51An array is 'created' by writing appropriate superblocks to all
  52devices.
  53It is 'assembled' by associating each of these devices with an
  54particular md virtual device.  Once it is completely assembled, it can
  55be accessed.
  56
  57An array should be created by a user-space tool.  This will write
  58superblocks to all devices.  It will usually mark the array as
  59'unclean', or with some devices missing so that the kernel md driver
  60can create approrpriate redundancy (copying in raid1, parity
  61calculation in raid4/5).
  62
  63When an array is assembled, it is first initialised with the
  64SET_ARRAY_INFO ioctl.  This contains, in particular, a major and minor
  65version number.  The major version number selects which superblock
  66format is to be used.  The minor number might be used to tune handling
  67of the format, such as suggesting where on each device to look for the
  68superblock.
  69
  70Then each device is added using the ADD_NEW_DISK ioctl.  This
  71provides, in particular, a major and minor number identifying the
  72device to add.
  73
  74The array is started with the RUN_ARRAY ioctl.
  75
  76Once started, new devices can be added.  They should have an
  77appropriate superblock written to them, and then passed be in with
  78ADD_NEW_DISK.
  79
  80Devices that have failed or are not yet active can be detached from an
  81array using HOT_REMOVE_DISK.
  82
  83
  84Specific Rules that apply to format-0 super block arrays, and
  85       arrays with no superblock (non-presistant).
  86-------------------------------------------------------------
  87
  88An array can be 'created' by describing the array (level, chunksize
  89etc) in a SET_ARRAY_INFO ioctl.  This must has major_version==0 and
  90raid_disks != 0.
  91Then uninitialised devices can be added with ADD_NEW_DISK.  The
  92structure passed to ADD_NEW_DISK must specify the state of the device
  93and it's role in the array.
  94
  95One started with RUN_ARRAY, uninitialised spares can be added with
  96HOT_ADD_DISK.
  97
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.