About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / admin-guide / md.rst




Custom Search

Based on kernel version 4.16.1. Page generated on 2018-04-09 11:52 EST.

1	RAID arrays
2	===========
3	
4	Boot time assembly of RAID arrays
5	---------------------------------
6	
7	Tools that manage md devices can be found at
8	   http://www.kernel.org/pub/linux/utils/raid/
9	
10	
11	You can boot with your md device with the following kernel command
12	lines:
13	
14	for old raid arrays without persistent superblocks::
15	
16	  md=<md device no.>,<raid level>,<chunk size factor>,<fault level>,dev0,dev1,...,devn
17	
18	for raid arrays with persistent superblocks::
19	
20	  md=<md device no.>,dev0,dev1,...,devn
21	
22	or, to assemble a partitionable array::
23	
24	  md=d<md device no.>,dev0,dev1,...,devn
25	
26	``md device no.``
27	+++++++++++++++++
28	
29	The number of the md device
30	
31	================= =========
32	``md device no.`` device
33	================= =========
34	              0		md0
35		      1		md1
36		      2		md2
37		      3		md3
38		      4		md4
39	================= =========
40	
41	``raid level``
42	++++++++++++++
43	
44	level of the RAID array
45	
46	=============== =============
47	``raid level``  level
48	=============== =============
49	-1		linear mode
50	0		striped mode
51	=============== =============
52	
53	other modes are only supported with persistent super blocks
54	
55	``chunk size factor``
56	+++++++++++++++++++++
57	
58	(raid-0 and raid-1 only)
59	
60	Set  the chunk size as 4k << n.
61	
62	``fault level``
63	+++++++++++++++
64	
65	Totally ignored
66	
67	``dev0`` to ``devn``
68	++++++++++++++++++++
69	
70	e.g. ``/dev/hda1``, ``/dev/hdc1``, ``/dev/sda1``, ``/dev/sdb1``
71	
72	A possible loadlin line (Harald Hoyer <HarryH@Royal.Net>)  looks like this::
73	
74		e:\loadlin\loadlin e:\zimage root=/dev/md0 md=0,0,4,0,/dev/hdb2,/dev/hdc3 ro
75	
76	
77	Boot time autodetection of RAID arrays
78	--------------------------------------
79	
80	When md is compiled into the kernel (not as module), partitions of
81	type 0xfd are scanned and automatically assembled into RAID arrays.
82	This autodetection may be suppressed with the kernel parameter
83	``raid=noautodetect``.  As of kernel 2.6.9, only drives with a type 0
84	superblock can be autodetected and run at boot time.
85	
86	The kernel parameter ``raid=partitionable`` (or ``raid=part``) means
87	that all auto-detected arrays are assembled as partitionable.
88	
89	Boot time assembly of degraded/dirty arrays
90	-------------------------------------------
91	
92	If a raid5 or raid6 array is both dirty and degraded, it could have
93	undetectable data corruption.  This is because the fact that it is
94	``dirty`` means that the parity cannot be trusted, and the fact that it
95	is degraded means that some datablocks are missing and cannot reliably
96	be reconstructed (due to no parity).
97	
98	For this reason, md will normally refuse to start such an array.  This
99	requires the sysadmin to take action to explicitly start the array
100	despite possible corruption.  This is normally done with::
101	
102	   mdadm --assemble --force ....
103	
104	This option is not really available if the array has the root
105	filesystem on it.  In order to support this booting from such an
106	array, md supports a module parameter ``start_dirty_degraded`` which,
107	when set to 1, bypassed the checks and will allows dirty degraded
108	arrays to be started.
109	
110	So, to boot with a root filesystem of a dirty degraded raid 5 or 6, use::
111	
112	   md-mod.start_dirty_degraded=1
113	
114	
115	Superblock formats
116	------------------
117	
118	The md driver can support a variety of different superblock formats.
119	Currently, it supports superblock formats ``0.90.0`` and the ``md-1`` format
120	introduced in the 2.5 development series.
121	
122	The kernel will autodetect which format superblock is being used.
123	
124	Superblock format ``0`` is treated differently to others for legacy
125	reasons - it is the original superblock format.
126	
127	
128	General Rules - apply for all superblock formats
129	------------------------------------------------
130	
131	An array is ``created`` by writing appropriate superblocks to all
132	devices.
133	
134	It is ``assembled`` by associating each of these devices with an
135	particular md virtual device.  Once it is completely assembled, it can
136	be accessed.
137	
138	An array should be created by a user-space tool.  This will write
139	superblocks to all devices.  It will usually mark the array as
140	``unclean``, or with some devices missing so that the kernel md driver
141	can create appropriate redundancy (copying in raid 1, parity
142	calculation in raid 4/5).
143	
144	When an array is assembled, it is first initialized with the
145	SET_ARRAY_INFO ioctl.  This contains, in particular, a major and minor
146	version number.  The major version number selects which superblock
147	format is to be used.  The minor number might be used to tune handling
148	of the format, such as suggesting where on each device to look for the
149	superblock.
150	
151	Then each device is added using the ADD_NEW_DISK ioctl.  This
152	provides, in particular, a major and minor number identifying the
153	device to add.
154	
155	The array is started with the RUN_ARRAY ioctl.
156	
157	Once started, new devices can be added.  They should have an
158	appropriate superblock written to them, and then be passed in with
159	ADD_NEW_DISK.
160	
161	Devices that have failed or are not yet active can be detached from an
162	array using HOT_REMOVE_DISK.
163	
164	
165	Specific Rules that apply to format-0 super block arrays, and arrays with no superblock (non-persistent)
166	--------------------------------------------------------------------------------------------------------
167	
168	An array can be ``created`` by describing the array (level, chunksize
169	etc) in a SET_ARRAY_INFO ioctl.  This must have ``major_version==0`` and
170	``raid_disks != 0``.
171	
172	Then uninitialized devices can be added with ADD_NEW_DISK.  The
173	structure passed to ADD_NEW_DISK must specify the state of the device
174	and its role in the array.
175	
176	Once started with RUN_ARRAY, uninitialized spares can be added with
177	HOT_ADD_DISK.
178	
179	
180	MD devices in sysfs
181	-------------------
182	
183	md devices appear in sysfs (``/sys``) as regular block devices,
184	e.g.::
185	
186	   /sys/block/md0
187	
188	Each ``md`` device will contain a subdirectory called ``md`` which
189	contains further md-specific information about the device.
190	
191	All md devices contain:
192	
193	  level
194	     a text file indicating the ``raid level``. e.g. raid0, raid1,
195	     raid5, linear, multipath, faulty.
196	     If no raid level has been set yet (array is still being
197	     assembled), the value will reflect whatever has been written
198	     to it, which may be a name like the above, or may be a number
199	     such as ``0``, ``5``, etc.
200	
201	  raid_disks
202	     a text file with a simple number indicating the number of devices
203	     in a fully functional array.  If this is not yet known, the file
204	     will be empty.  If an array is being resized this will contain
205	     the new number of devices.
206	     Some raid levels allow this value to be set while the array is
207	     active.  This will reconfigure the array.   Otherwise it can only
208	     be set while assembling an array.
209	     A change to this attribute will not be permitted if it would
210	     reduce the size of the array.  To reduce the number of drives
211	     in an e.g. raid5, the array size must first be reduced by
212	     setting the ``array_size`` attribute.
213	
214	  chunk_size
215	     This is the size in bytes for ``chunks`` and is only relevant to
216	     raid levels that involve striping (0,4,5,6,10). The address space
217	     of the array is conceptually divided into chunks and consecutive
218	     chunks are striped onto neighbouring devices.
219	     The size should be at least PAGE_SIZE (4k) and should be a power
220	     of 2.  This can only be set while assembling an array
221	
222	  layout
223	     The ``layout`` for the array for the particular level.  This is
224	     simply a number that is interpretted differently by different
225	     levels.  It can be written while assembling an array.
226	
227	  array_size
228	     This can be used to artificially constrain the available space in
229	     the array to be less than is actually available on the combined
230	     devices.  Writing a number (in Kilobytes) which is less than
231	     the available size will set the size.  Any reconfiguration of the
232	     array (e.g. adding devices) will not cause the size to change.
233	     Writing the word ``default`` will cause the effective size of the
234	     array to be whatever size is actually available based on
235	     ``level``, ``chunk_size`` and ``component_size``.
236	
237	     This can be used to reduce the size of the array before reducing
238	     the number of devices in a raid4/5/6, or to support external
239	     metadata formats which mandate such clipping.
240	
241	  reshape_position
242	     This is either ``none`` or a sector number within the devices of
243	     the array where ``reshape`` is up to.  If this is set, the three
244	     attributes mentioned above (raid_disks, chunk_size, layout) can
245	     potentially have 2 values, an old and a new value.  If these
246	     values differ, reading the attribute returns::
247	
248	        new (old)
249	
250	     and writing will effect the ``new`` value, leaving the ``old``
251	     unchanged.
252	
253	  component_size
254	     For arrays with data redundancy (i.e. not raid0, linear, faulty,
255	     multipath), all components must be the same size - or at least
256	     there must a size that they all provide space for.  This is a key
257	     part or the geometry of the array.  It is measured in sectors
258	     and can be read from here.  Writing to this value may resize
259	     the array if the personality supports it (raid1, raid5, raid6),
260	     and if the component drives are large enough.
261	
262	  metadata_version
263	     This indicates the format that is being used to record metadata
264	     about the array.  It can be 0.90 (traditional format), 1.0, 1.1,
265	     1.2 (newer format in varying locations) or ``none`` indicating that
266	     the kernel isn't managing metadata at all.
267	     Alternately it can be ``external:`` followed by a string which
268	     is set by user-space.  This indicates that metadata is managed
269	     by a user-space program.  Any device failure or other event that
270	     requires a metadata update will cause array activity to be
271	     suspended until the event is acknowledged.
272	
273	  resync_start
274	     The point at which resync should start.  If no resync is needed,
275	     this will be a very large number (or ``none`` since 2.6.30-rc1).  At
276	     array creation it will default to 0, though starting the array as
277	     ``clean`` will set it much larger.
278	
279	  new_dev
280	     This file can be written but not read.  The value written should
281	     be a block device number as major:minor.  e.g. 8:0
282	     This will cause that device to be attached to the array, if it is
283	     available.  It will then appear at md/dev-XXX (depending on the
284	     name of the device) and further configuration is then possible.
285	
286	  safe_mode_delay
287	     When an md array has seen no write requests for a certain period
288	     of time, it will be marked as ``clean``.  When another write
289	     request arrives, the array is marked as ``dirty`` before the write
290	     commences.  This is known as ``safe_mode``.
291	     The ``certain period`` is controlled by this file which stores the
292	     period as a number of seconds.  The default is 200msec (0.200).
293	     Writing a value of 0 disables safemode.
294	
295	  array_state
296	     This file contains a single word which describes the current
297	     state of the array.  In many cases, the state can be set by
298	     writing the word for the desired state, however some states
299	     cannot be explicitly set, and some transitions are not allowed.
300	
301	     Select/poll works on this file.  All changes except between
302	     Active_idle and active (which can be frequent and are not
303	     very interesting) are notified.  active->active_idle is
304	     reported if the metadata is externally managed.
305	
306	     clear
307	         No devices, no size, no level
308	
309	         Writing is equivalent to STOP_ARRAY ioctl
310	
311	     inactive
312	         May have some settings, but array is not active
313	         all IO results in error
314	
315	         When written, doesn't tear down array, but just stops it
316	
317	     suspended (not supported yet)
318	         All IO requests will block. The array can be reconfigured.
319	
320	         Writing this, if accepted, will block until array is quiessent
321	
322	     readonly
323	         no resync can happen.  no superblocks get written.
324	
325	         Write requests fail
326	
327	     read-auto
328	         like readonly, but behaves like ``clean`` on a write request.
329	
330	     clean
331	         no pending writes, but otherwise active.
332	
333	         When written to inactive array, starts without resync
334	
335	         If a write request arrives then
336	         if metadata is known, mark ``dirty`` and switch to ``active``.
337	         if not known, block and switch to write-pending
338	
339	         If written to an active array that has pending writes, then fails.
340	     active
341	         fully active: IO and resync can be happening.
342	         When written to inactive array, starts with resync
343	
344	     write-pending
345	         clean, but writes are blocked waiting for ``active`` to be written.
346	
347	     active-idle
348	         like active, but no writes have been seen for a while (safe_mode_delay).
349	
350	  bitmap/location
351	     This indicates where the write-intent bitmap for the array is
352	     stored.
353	
354	     It can be one of ``none``, ``file`` or ``[+-]N``.
355	     ``file`` may later be extended to ``file:/file/name``
356	     ``[+-]N`` means that many sectors from the start of the metadata.
357	
358	     This is replicated on all devices.  For arrays with externally
359	     managed metadata, the offset is from the beginning of the
360	     device.
361	
362	  bitmap/chunksize
363	     The size, in bytes, of the chunk which will be represented by a
364	     single bit.  For RAID456, it is a portion of an individual
365	     device. For RAID10, it is a portion of the array.  For RAID1, it
366	     is both (they come to the same thing).
367	
368	  bitmap/time_base
369	     The time, in seconds, between looking for bits in the bitmap to
370	     be cleared. In the current implementation, a bit will be cleared
371	     between 2 and 3 times ``time_base`` after all the covered blocks
372	     are known to be in-sync.
373	
374	  bitmap/backlog
375	     When write-mostly devices are active in a RAID1, write requests
376	     to those devices proceed in the background - the filesystem (or
377	     other user of the device) does not have to wait for them.
378	     ``backlog`` sets a limit on the number of concurrent background
379	     writes.  If there are more than this, new writes will by
380	     synchronous.
381	
382	  bitmap/metadata
383	     This can be either ``internal`` or ``external``.
384	
385	     ``internal``
386	       is the default and means the metadata for the bitmap
387	       is stored in the first 256 bytes of the allocated space and is
388	       managed by the md module.
389	
390	     ``external``
391	       means that bitmap metadata is managed externally to
392	       the kernel (i.e. by some userspace program)
393	
394	  bitmap/can_clear
395	     This is either ``true`` or ``false``.  If ``true``, then bits in the
396	     bitmap will be cleared when the corresponding blocks are thought
397	     to be in-sync.  If ``false``, bits will never be cleared.
398	     This is automatically set to ``false`` if a write happens on a
399	     degraded array, or if the array becomes degraded during a write.
400	     When metadata is managed externally, it should be set to true
401	     once the array becomes non-degraded, and this fact has been
402	     recorded in the metadata.
403	
404	  consistency_policy
405	     This indicates how the array maintains consistency in case of unexpected
406	     shutdown. It can be:
407	
408	     none
409	       Array has no redundancy information, e.g. raid0, linear.
410	
411	     resync
412	       Full resync is performed and all redundancy is regenerated when the
413	       array is started after unclean shutdown.
414	
415	     bitmap
416	       Resync assisted by a write-intent bitmap.
417	
418	     journal
419	       For raid4/5/6, journal device is used to log transactions and replay
420	       after unclean shutdown.
421	
422	     ppl
423	       For raid5 only, Partial Parity Log is used to close the write hole and
424	       eliminate resync.
425	
426	     The accepted values when writing to this file are ``ppl`` and ``resync``,
427	     used to enable and disable PPL.
428	
429	
430	As component devices are added to an md array, they appear in the ``md``
431	directory as new directories named::
432	
433	      dev-XXX
434	
435	where ``XXX`` is a name that the kernel knows for the device, e.g. hdb1.
436	Each directory contains:
437	
438	      block
439	        a symlink to the block device in /sys/block, e.g.::
440	
441		     /sys/block/md0/md/dev-hdb1/block -> ../../../../block/hdb/hdb1
442	
443	      super
444	        A file containing an image of the superblock read from, or
445	        written to, that device.
446	
447	      state
448		A file recording the current state of the device in the array
449		which can be a comma separated list of:
450	
451		      faulty
452				device has been kicked from active use due to
453				a detected fault, or it has unacknowledged bad
454				blocks
455	
456		      in_sync
457				device is a fully in-sync member of the array
458	
459		      writemostly
460				device will only be subject to read
461				requests if there are no other options.
462	
463				This applies only to raid1 arrays.
464	
465		      blocked
466				device has failed, and the failure hasn't been
467				acknowledged yet by the metadata handler.
468	
469				Writes that would write to this device if
470				it were not faulty are blocked.
471	
472		      spare
473				device is working, but not a full member.
474	
475				This includes spares that are in the process
476				of being recovered to
477	
478		      write_error
479				device has ever seen a write error.
480	
481		      want_replacement
482				device is (mostly) working but probably
483				should be replaced, either due to errors or
484				due to user request.
485	
486		      replacement
487				device is a replacement for another active
488				device with same raid_disk.
489	
490	
491		This list may grow in future.
492	
493		This can be written to.
494	
495		Writing ``faulty``  simulates a failure on the device.
496	
497		Writing ``remove`` removes the device from the array.
498	
499		Writing ``writemostly`` sets the writemostly flag.
500	
501		Writing ``-writemostly`` clears the writemostly flag.
502	
503		Writing ``blocked`` sets the ``blocked`` flag.
504	
505		Writing ``-blocked`` clears the ``blocked`` flags and allows writes
506		to complete and possibly simulates an error.
507	
508		Writing ``in_sync`` sets the in_sync flag.
509	
510		Writing ``write_error`` sets writeerrorseen flag.
511	
512		Writing ``-write_error`` clears writeerrorseen flag.
513	
514		Writing ``want_replacement`` is allowed at any time except to a
515		replacement device or a spare.  It sets the flag.
516	
517		Writing ``-want_replacement`` is allowed at any time.  It clears
518		the flag.
519	
520		Writing ``replacement`` or ``-replacement`` is only allowed before
521		starting the array.  It sets or clears the flag.
522	
523	
524		This file responds to select/poll. Any change to ``faulty``
525		or ``blocked`` causes an event.
526	
527	      errors
528		An approximate count of read errors that have been detected on
529		this device but have not caused the device to be evicted from
530		the array (either because they were corrected or because they
531		happened while the array was read-only).  When using version-1
532		metadata, this value persists across restarts of the array.
533	
534		This value can be written while assembling an array thus
535		providing an ongoing count for arrays with metadata managed by
536		userspace.
537	
538	      slot
539	        This gives the role that the device has in the array.  It will
540		either be ``none`` if the device is not active in the array
541	        (i.e. is a spare or has failed) or an integer less than the
542		``raid_disks`` number for the array indicating which position
543		it currently fills.  This can only be set while assembling an
544		array.  A device for which this is set is assumed to be working.
545	
546	      offset
547	        This gives the location in the device (in sectors from the
548	        start) where data from the array will be stored.  Any part of
549	        the device before this offset is not touched, unless it is
550	        used for storing metadata (Formats 1.1 and 1.2).
551	
552	      size
553	        The amount of the device, after the offset, that can be used
554	        for storage of data.  This will normally be the same as the
555		component_size.  This can be written while assembling an
556	        array.  If a value less than the current component_size is
557	        written, it will be rejected.
558	
559	      recovery_start
560	        When the device is not ``in_sync``, this records the number of
561		sectors from the start of the device which are known to be
562		correct.  This is normally zero, but during a recovery
563		operation it will steadily increase, and if the recovery is
564		interrupted, restoring this value can cause recovery to
565		avoid repeating the earlier blocks.  With v1.x metadata, this
566		value is saved and restored automatically.
567	
568		This can be set whenever the device is not an active member of
569		the array, either before the array is activated, or before
570		the ``slot`` is set.
571	
572		Setting this to ``none`` is equivalent to setting ``in_sync``.
573		Setting to any other value also clears the ``in_sync`` flag.
574	
575	      bad_blocks
576		This gives the list of all known bad blocks in the form of
577		start address and length (in sectors respectively). If output
578		is too big to fit in a page, it will be truncated. Writing
579		``sector length`` to this file adds new acknowledged (i.e.
580		recorded to disk safely) bad blocks.
581	
582	      unacknowledged_bad_blocks
583		This gives the list of known-but-not-yet-saved-to-disk bad
584		blocks in the same form of ``bad_blocks``. If output is too big
585		to fit in a page, it will be truncated. Writing to this file
586		adds bad blocks without acknowledging them. This is largely
587		for testing.
588	
589	      ppl_sector, ppl_size
590	        Location and size (in sectors) of the space used for Partial Parity Log
591	        on this device.
592	
593	
594	An active md device will also contain an entry for each active device
595	in the array.  These are named::
596	
597	    rdNN
598	
599	where ``NN`` is the position in the array, starting from 0.
600	So for a 3 drive array there will be rd0, rd1, rd2.
601	These are symbolic links to the appropriate ``dev-XXX`` entry.
602	Thus, for example::
603	
604	       cat /sys/block/md*/md/rd*/state
605	
606	will show ``in_sync`` on every line.
607	
608	
609	
610	Active md devices for levels that support data redundancy (1,4,5,6,10)
611	also have
612	
613	   sync_action
614	     a text file that can be used to monitor and control the rebuild
615	     process.  It contains one word which can be one of:
616	
617	       resync
618			redundancy is being recalculated after unclean
619	                shutdown or creation
620	
621	       recover
622			a hot spare is being built to replace a
623			failed/missing device
624	
625	       idle
626			nothing is happening
627	       check
628			A full check of redundancy was requested and is
629	                happening.  This reads all blocks and checks
630	                them. A repair may also happen for some raid
631	                levels.
632	
633	       repair
634			A full check and repair is happening.  This is
635			similar to ``resync``, but was requested by the
636	                user, and the write-intent bitmap is NOT used to
637			optimise the process.
638	
639	      This file is writable, and each of the strings that could be
640	      read are meaningful for writing.
641	
642		``idle`` will stop an active resync/recovery etc.  There is no
643		guarantee that another resync/recovery may not be automatically
644		started again, though some event will be needed to trigger
645		this.
646	
647		``resync`` or ``recovery`` can be used to restart the
648	        corresponding operation if it was stopped with ``idle``.
649	
650		``check`` and ``repair`` will start the appropriate process
651		providing the current state is ``idle``.
652	
653	      This file responds to select/poll.  Any important change in the value
654	      triggers a poll event.  Sometimes the value will briefly be
655	      ``recover`` if a recovery seems to be needed, but cannot be
656	      achieved. In that case, the transition to ``recover`` isn't
657	      notified, but the transition away is.
658	
659	   degraded
660	      This contains a count of the number of devices by which the
661	      arrays is degraded.  So an optimal array will show ``0``.  A
662	      single failed/missing drive will show ``1``, etc.
663	
664	      This file responds to select/poll, any increase or decrease
665	      in the count of missing devices will trigger an event.
666	
667	   mismatch_count
668	      When performing ``check`` and ``repair``, and possibly when
669	      performing ``resync``, md will count the number of errors that are
670	      found.  The count in ``mismatch_cnt`` is the number of sectors
671	      that were re-written, or (for ``check``) would have been
672	      re-written.  As most raid levels work in units of pages rather
673	      than sectors, this may be larger than the number of actual errors
674	      by a factor of the number of sectors in a page.
675	
676	   bitmap_set_bits
677	      If the array has a write-intent bitmap, then writing to this
678	      attribute can set bits in the bitmap, indicating that a resync
679	      would need to check the corresponding blocks. Either individual
680	      numbers or start-end pairs can be written.  Multiple numbers
681	      can be separated by a space.
682	
683	      Note that the numbers are ``bit`` numbers, not ``block`` numbers.
684	      They should be scaled by the bitmap_chunksize.
685	
686	   sync_speed_min, sync_speed_max
687	     This are similar to ``/proc/sys/dev/raid/speed_limit_{min,max}``
688	     however they only apply to the particular array.
689	
690	     If no value has been written to these, or if the word ``system``
691	     is written, then the system-wide value is used.  If a value,
692	     in kibibytes-per-second is written, then it is used.
693	
694	     When the files are read, they show the currently active value
695	     followed by ``(local)`` or ``(system)`` depending on whether it is
696	     a locally set or system-wide value.
697	
698	   sync_completed
699	     This shows the number of sectors that have been completed of
700	     whatever the current sync_action is, followed by the number of
701	     sectors in total that could need to be processed.  The two
702	     numbers are separated by a ``/``  thus effectively showing one
703	     value, a fraction of the process that is complete.
704	
705	     A ``select`` on this attribute will return when resync completes,
706	     when it reaches the current sync_max (below) and possibly at
707	     other times.
708	
709	   sync_speed
710	     This shows the current actual speed, in K/sec, of the current
711	     sync_action.  It is averaged over the last 30 seconds.
712	
713	   suspend_lo, suspend_hi
714	     The two values, given as numbers of sectors, indicate a range
715	     within the array where IO will be blocked.  This is currently
716	     only supported for raid4/5/6.
717	
718	   sync_min, sync_max
719	     The two values, given as numbers of sectors, indicate a range
720	     within the array where ``check``/``repair`` will operate. Must be
721	     a multiple of chunk_size. When it reaches ``sync_max`` it will
722	     pause, rather than complete.
723	     You can use ``select`` or ``poll`` on ``sync_completed`` to wait for
724	     that number to reach sync_max.  Then you can either increase
725	     ``sync_max``, or can write ``idle`` to ``sync_action``.
726	
727	     The value of ``max`` for ``sync_max`` effectively disables the limit.
728	     When a resync is active, the value can only ever be increased,
729	     never decreased.
730	     The value of ``0`` is the minimum for ``sync_min``.
731	
732	
733	
734	Each active md device may also have attributes specific to the
735	personality module that manages it.
736	These are specific to the implementation of the module and could
737	change substantially if the implementation changes.
738	
739	These currently include:
740	
741	  stripe_cache_size  (currently raid5 only)
742	      number of entries in the stripe cache.  This is writable, but
743	      there are upper and lower limits (32768, 17).  Default is 256.
744	
745	  strip_cache_active (currently raid5 only)
746	      number of active entries in the stripe cache
747	
748	  preread_bypass_threshold (currently raid5 only)
749	      number of times a stripe requiring preread will be bypassed by
750	      a stripe that does not require preread.  For fairness defaults
751	      to 1.  Setting this to 0 disables bypass accounting and
752	      requires preread stripes to wait until all full-width stripe-
753	      writes are complete.  Valid values are 0 to stripe_cache_size.
754	
755	  journal_mode (currently raid5 only)
756	      The cache mode for raid5. raid5 could include an extra disk for
757	      caching. The mode can be "write-throuth" and "write-back". The
758	      default is "write-through".
Hide Line Numbers
About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Information is copyright its respective author. All material is available from the Linux Kernel Source distributed under a GPL License. This page is provided as a free service by mjmwired.net.