diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 19:59:05 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 19:59:05 -0400 |
| commit | 1f19f33e45791ea59aed048796fc68672c6723a5 (patch) | |
| tree | 54625fba89e91d1c2177801ec635e8528bba937f /static/netbsd/man4/raid.4 3.html | |
| parent | ac5e55f5f2af5b92794c2aded46c6bae85b5f5ed (diff) | |
docs: Removed Precompiled HTML
Diffstat (limited to 'static/netbsd/man4/raid.4 3.html')
| -rw-r--r-- | static/netbsd/man4/raid.4 3.html | 374 |
1 files changed, 0 insertions, 374 deletions
diff --git a/static/netbsd/man4/raid.4 3.html b/static/netbsd/man4/raid.4 3.html deleted file mode 100644 index e8a74045..00000000 --- a/static/netbsd/man4/raid.4 3.html +++ /dev/null @@ -1,374 +0,0 @@ -<table class="head"> - <tr> - <td class="head-ltitle">RAID(4)</td> - <td class="head-vol">Device Drivers Manual</td> - <td class="head-rtitle">RAID(4)</td> - </tr> -</table> -<div class="manual-text"> -<section class="Sh"> -<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1> -<p class="Pp"><code class="Nm">raid</code> — <span class="Nd">RAIDframe - disk driver</span></p> -</section> -<section class="Sh"> -<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1> -<p class="Pp"><code class="Cd">options RAID_AUTOCONFIG</code> - <br/> - <code class="Cd">options RAID_DIAGNOSTIC</code> - <br/> - <code class="Cd">options RF_ACC_TRACE=n</code> - <br/> - <code class="Cd">options RF_DEBUG_MAP=n</code> - <br/> - <code class="Cd">options RF_DEBUG_PSS=n</code> - <br/> - <code class="Cd">options RF_DEBUG_QUEUE=n</code> - <br/> - <code class="Cd">options RF_DEBUG_QUIESCE=n</code> - <br/> - <code class="Cd">options RF_DEBUG_RECON=n</code> - <br/> - <code class="Cd">options RF_DEBUG_STRIPELOCK=n</code> - <br/> - <code class="Cd">options RF_DEBUG_VALIDATE_DAG=n</code> - <br/> - <code class="Cd">options RF_DEBUG_VERIFYPARITY=n</code> - <br/> - <code class="Cd">options RF_INCLUDE_CHAINDECLUSTER=n</code> - <br/> - <code class="Cd">options RF_INCLUDE_EVENODD=n</code> - <br/> - <code class="Cd">options RF_INCLUDE_INTERDECLUSTER=n</code> - <br/> - <code class="Cd">options RF_INCLUDE_PARITY_DECLUSTERING=n</code> - <br/> - <code class="Cd">options RF_INCLUDE_PARITY_DECLUSTERING_DS=n</code> - <br/> - <code class="Cd">options RF_INCLUDE_PARITYLOGGING=n</code> - <br/> - <code class="Cd">options RF_INCLUDE_RAID5_RS=n</code></p> -<p class="Pp"> - <br/> - <code class="Cd">pseudo-device raid</code></p> -</section> -<section class="Sh"> -<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1> -<p class="Pp">The <code class="Nm">raid</code> driver provides RAID 0, 1, 4, and - 5 (and more!) capabilities to <span class="Ux">NetBSD</span>. This document - assumes that the reader has at least some familiarity with RAID and RAID - concepts. The reader is also assumed to know how to configure disks and - pseudo-devices into kernels, how to generate kernels, and how to partition - disks.</p> -<p class="Pp">RAIDframe provides a number of different RAID levels - including:</p> -<dl class="Bl-tag"> - <dt>RAID 0</dt> - <dd>provides simple data striping across the components.</dd> - <dt>RAID 1</dt> - <dd>provides mirroring.</dd> - <dt>RAID 4</dt> - <dd>provides data striping across the components, with parity stored on a - dedicated drive (in this case, the last component).</dd> - <dt>RAID 5</dt> - <dd>provides data striping across the components, with parity distributed - across all the components.</dd> -</dl> -<p class="Pp">There are a wide variety of other RAID levels supported by - RAIDframe. The configuration file options to enable them are briefly - outlined at the end of this section.</p> -<p class="Pp">Depending on the parity level configured, the device driver can - support the failure of component drives. The number of failures allowed - depends on the parity level selected. If the driver is able to handle drive - failures, and a drive does fail, then the system is operating in - "degraded mode". In this mode, all missing data must be - reconstructed from the data and parity present on the other components. This - results in much slower data accesses, but does mean that a failure need not - bring the system to a complete halt.</p> -<p class="Pp">The RAID driver supports and enforces the use of ‘component - labels’. A ‘component label’ contains important - information about the component, including a user-specified serial number, - the row and column of that component in the RAID set, and whether the data - (and parity) on the component is ‘clean’. The component label - currently lives at the half-way point of the ‘reserved - section’ located at the beginning of each component. This - ‘reserved section’ is RF_PROTECTED_SECTORS in length (64 - blocks or 32Kbytes) and the component label is currently 1Kbyte in size.</p> -<p class="Pp">If the driver determines that the component labels are very - inconsistent with respect to each other (e.g. two or more serial numbers do - not match) or that the component label is not consistent with its assigned - place in the set (e.g. the component label claims the component should be - the 3rd one in a 6-disk set, but the RAID set has it as the 3rd component in - a 5-disk set) then the device will fail to configure. If the driver - determines that exactly one component label seems to be incorrect, and the - RAID set is being configured as a set that supports a single failure, then - the RAID set will be allowed to configure, but the incorrectly labeled - component will be marked as ‘failed’, and the RAID set will - begin operation in degraded mode. If all of the components are consistent - among themselves, the RAID set will configure normally.</p> -<p class="Pp">Component labels are also used to support the auto-detection and - autoconfiguration of RAID sets. A RAID set can be flagged as - autoconfigurable, in which case it will be configured automatically during - the kernel boot process. RAID file systems which are automatically - configured are also eligible to be the root file system. There is currently - only limited support (alpha, amd64, i386, pmax, sparc, sparc64, and vax - architectures) for booting a kernel directly from a RAID 1 set, and no - support for booting from any other RAID sets. To use a RAID set as the root - file system, a kernel is usually obtained from a small non-RAID partition, - after which any autoconfiguring RAID set can be used for the root file - system. See <a class="Xr">raidctl(8)</a> for more information on - autoconfiguration of RAID sets. Note that with autoconfiguration of RAID - sets, it is no longer necessary to hard-code SCSI IDs of drives. The - autoconfiguration code will correctly configure a device even after any - number of the components have had their device IDs changed or device names - changed.</p> -<p class="Pp">The driver supports ‘hot spares’, disks which are - on-line, but are not actively used in an existing file system. Should a disk - fail, the driver is capable of reconstructing the failed disk onto a hot - spare or back onto a replacement drive. If the components are hot swappable, - the failed disk can then be removed, a new disk put in its place, and a - copyback operation performed. The copyback operation, as its name indicates, - will copy the reconstructed data from the hot spare to the previously failed - (and now replaced) disk. Hot spares can also be hot-added using - <a class="Xr">raidctl(8)</a>.</p> -<p class="Pp">If a component cannot be detected when the RAID device is - configured, that component will be simply marked as 'failed'.</p> -<p class="Pp">The user-land utility for doing all <code class="Nm">raid</code> - configuration and other operations is <a class="Xr">raidctl(8)</a>. Most - importantly, <a class="Xr">raidctl(8)</a> must be used with the - <code class="Fl">-i</code> option to initialize all RAID sets. In - particular, this initialization includes re-building the parity data. This - rebuilding of parity data is also required when either a) a new RAID device - is brought up for the first time or b) after an un-clean shutdown of a RAID - device. By using the <code class="Fl">-P</code> option to - <a class="Xr">raidctl(8)</a>, and performing this on-demand recomputation of - all parity before doing a <a class="Xr">fsck(8)</a> or a - <a class="Xr">newfs(8)</a>, file system integrity and parity integrity can - be ensured. It bears repeating again that parity recomputation is - <var class="Ar">required</var> before any file systems are created or used - on the RAID device. If the parity is not correct, then missing data cannot - be correctly recovered.</p> -<p class="Pp">RAID levels may be combined in a hierarchical fashion. For - example, a RAID 0 device can be constructed out of a number of RAID 5 - devices (which, in turn, may be constructed out of the physical disks, or of - other RAID devices).</p> -<p class="Pp">The first step to using the <code class="Nm">raid</code> driver is - to ensure that it is suitably configured in the kernel. This is done by - adding a line similar to:</p> -<div class="Bd Pp Bd-indent"> -<pre>pseudo-device raid # RAIDframe disk device</pre> -</div> -<p class="Pp">to the kernel configuration file. The RAIDframe drivers are - configured dynamically as needed. To turn on component auto-detection and - autoconfiguration of RAID sets, simply add:</p> -<div class="Bd Pp Bd-indent"> -<pre>options RAID_AUTOCONFIG</pre> -</div> -<p class="Pp">to the kernel configuration file.</p> -<p class="Pp">All component partitions must be of the type - <code class="Dv">FS_BSDFFS</code> (e.g. 4.2BSD) or - <code class="Dv">FS_RAID</code>. The use of the latter is strongly - encouraged, and is required if autoconfiguration of the RAID set is desired. - Since RAIDframe leaves room for disklabels, RAID components can be simply - raw disks, or partitions which use an entire disk.</p> -<p class="Pp">A more detailed treatment of actually using a - <code class="Nm">raid</code> device is found in - <a class="Xr">raidctl(8)</a>. It is highly recommended that the steps to - reconstruct, copyback, and re-compute parity are well understood by the - system administrator(s) <var class="Ar">before</var> a component failure. - Doing the wrong thing when a component fails may result in data loss.</p> -<p class="Pp">Additional internal consistency checking can be enabled by - specifying:</p> -<div class="Bd Pp Bd-indent"> -<pre>options RAID_DIAGNOSTIC</pre> -</div> -<p class="Pp">These assertions are disabled by default in order to improve - performance.</p> -<p class="Pp">RAIDframe supports an access tracing facility for tracking both - requests made and performance of various parts of the RAID systems as the - request is processed. To enable this tracing the following option may be - specified:</p> -<div class="Bd Pp Bd-indent"> -<pre>options RF_ACC_TRACE=1</pre> -</div> -<p class="Pp">For extensive debugging there are a number of kernel options which - will aid in performing extra diagnosis of various parts of the RAIDframe - sub-systems. Note that in order to make full use of these options it is - often necessary to enable one or more debugging options as listed in - <span class="Pa">src/sys/dev/raidframe/rf_options.h</span>. As well, these - options are also only typically useful for people who wish to debug various - parts of RAIDframe. The options include:</p> -<p class="Pp">For debugging the code which maps RAID addresses to physical - addresses:</p> -<div class="Bd Pp Bd-indent"> -<pre>options RF_DEBUG_MAP=1</pre> -</div> -<p class="Pp">Parity stripe status debugging is enabled with:</p> -<div class="Bd Pp Bd-indent"> -<pre>options RF_DEBUG_PSS=1</pre> -</div> -<p class="Pp">Additional debugging for queuing is enabled with:</p> -<div class="Bd Pp Bd-indent"> -<pre>options RF_DEBUG_QUEUE=1</pre> -</div> -<p class="Pp">Problems with non-quiescent file systems should be easier to debug - if the following is enabled:</p> -<div class="Bd Pp Bd-indent"> -<pre>options RF_DEBUG_QUIESCE=1</pre> -</div> -<p class="Pp">Stripelock debugging is enabled with:</p> -<div class="Bd Pp Bd-indent"> -<pre>options RF_DEBUG_STRIPELOCK=1</pre> -</div> -<p class="Pp">Additional diagnostic checks during reconstruction are enabled - with:</p> -<div class="Bd Pp Bd-indent"> -<pre>options RF_DEBUG_RECON=1</pre> -</div> -<p class="Pp">Validation of the DAGs (Directed Acyclic Graphs) used to describe - an I/O access can be performed when the following is enabled:</p> -<div class="Bd Pp Bd-indent"> -<pre>options RF_DEBUG_VALIDATE_DAG=1</pre> -</div> -<p class="Pp">Additional diagnostics during parity verification are enabled - with:</p> -<div class="Bd Pp Bd-indent"> -<pre>options RF_DEBUG_VERIFYPARITY=1</pre> -</div> -<p class="Pp">There are a number of less commonly used RAID levels supported by - RAIDframe. These additional RAID types should be considered experimental, - and may not be ready for production use. The various types and the options - to enable them are shown here:</p> -<p class="Pp">For Even-Odd parity:</p> -<div class="Bd Pp Bd-indent"> -<pre>options RF_INCLUDE_EVENODD=1</pre> -</div> -<p class="Pp">For RAID level 5 with rotated sparing:</p> -<div class="Bd Pp Bd-indent"> -<pre>options RF_INCLUDE_RAID5_RS=1</pre> -</div> -<p class="Pp">For Parity Logging (highly experimental):</p> -<div class="Bd Pp Bd-indent"> -<pre>options RF_INCLUDE_PARITYLOGGING=1</pre> -</div> -<p class="Pp">For Chain Declustering:</p> -<div class="Bd Pp Bd-indent"> -<pre>options RF_INCLUDE_CHAINDECLUSTER=1</pre> -</div> -<p class="Pp">For Interleaved Declustering:</p> -<div class="Bd Pp Bd-indent"> -<pre>options RF_INCLUDE_INTERDECLUSTER=1</pre> -</div> -<p class="Pp">For Parity Declustering:</p> -<div class="Bd Pp Bd-indent"> -<pre>options RF_INCLUDE_PARITY_DECLUSTERING=1</pre> -</div> -<p class="Pp">For Parity Declustering with Distributed Spares:</p> -<div class="Bd Pp Bd-indent"> -<pre>options RF_INCLUDE_PARITY_DECLUSTERING_DS=1</pre> -</div> -<p class="Pp">The reader is referred to the RAIDframe documentation mentioned in - the <a class="Sx" href="#HISTORY">HISTORY</a> section for more detail on - these various RAID configurations.</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="WARNINGS"><a class="permalink" href="#WARNINGS">WARNINGS</a></h1> -<p class="Pp">Certain RAID levels (1, 4, 5, 6, and others) can protect against - some data loss due to component failure. However the loss of two components - of a RAID 4 or 5 system, or the loss of a single component of a RAID 0 - system, will result in the entire file systems on that RAID device being - lost. RAID is <var class="Ar">NOT</var> a substitute for good backup - practices.</p> -<p class="Pp">Recomputation of parity <var class="Ar">MUST</var> be performed - whenever there is a chance that it may have been compromised. This includes - after system crashes, or before a RAID device has been used for the first - time. Failure to keep parity correct will be catastrophic should a component - ever fail — it is better to use RAID 0 and get the additional space - and speed, than it is to use parity, but not keep the parity correct. At - least with RAID 0 there is no perception of increased data security.</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="FILES"><a class="permalink" href="#FILES">FILES</a></h1> -<dl class="Bl-tag Bl-compact"> - <dt><span class="Pa">/dev/{,r}raid*</span></dt> - <dd><code class="Nm">raid</code> device special files.</dd> -</dl> -</section> -<section class="Sh"> -<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE - ALSO</a></h1> -<p class="Pp"><a class="Xr">config(1)</a>, <a class="Xr">sd(4)</a>, - <a class="Xr">fsck(8)</a>, <a class="Xr">MAKEDEV(8)</a>, - <a class="Xr">mount(8)</a>, <a class="Xr">newfs(8)</a>, - <a class="Xr">raidctl(8)</a></p> -</section> -<section class="Sh"> -<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1> -<p class="Pp">The <code class="Nm">raid</code> driver in - <span class="Ux">NetBSD</span> is a port of RAIDframe, a framework for rapid - prototyping of RAID structures developed by the folks at the Parallel Data - Laboratory at Carnegie Mellon University (CMU). RAIDframe, as originally - distributed by CMU, provides a RAID simulator for a number of different - architectures, and a user-level device driver and a kernel device driver for - Digital Unix. The <code class="Nm">raid</code> driver is a kernelized - version of RAIDframe v1.1.</p> -<p class="Pp">A more complete description of the internals and functionality of - RAIDframe is found in the paper "RAIDframe: A Rapid Prototyping Tool - for RAID Systems", by William V. Courtright II, Garth Gibson, Mark - Holland, LeAnn Neal Reilly, and Jim Zelenka, and published by the Parallel - Data Laboratory of Carnegie Mellon University. The - <code class="Nm">raid</code> driver first appeared in - <span class="Ux">NetBSD 1.4</span>.</p> -<p class="Pp">RAIDframe was ported to <span class="Ux">NetBSD</span> by Greg - Oster in 1998, who has maintained it since. In 1999, component labels, - spares, automatic rebuilding of parity, and autoconfiguration of volumes - were added. In 2000, root on RAID support was added (initially, with no - support for loading kernels from RAID volumes, which has been added to many - ports since.) In 2009, support for parity bimap was added, reducing parity - resync time after a crash. In 2010, support for larger than 2TiB and non-512 - sector devices was added. In 2018, support for 32-bit userland compatibility - was added. In 2021, support for autoconfiguration from other-endian raid - sets was added.</p> -<p class="Pp">Support for loading kernels from RAID 1 partitions was added for - the pmax, alpha, i386, and vax ports in 2000, the sgimips port in 2001, the - sparc64 and amd64 ports in 2002, the arc port in 2005, the sparc, and - landisk ports in 2006, the cobalt port in 2007, the ofppc port in 2008, the - bebox port in 2010, the emips port in 2011, and the sandpoint port in - 2012.</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="COPYRIGHT"><a class="permalink" href="#COPYRIGHT">COPYRIGHT</a></h1> -<div class="Bd"> -<pre>The RAIDframe Copyright is as follows: - -Copyright (c) 1994-1996 Carnegie-Mellon University. -All rights reserved. - -Permission to use, copy, modify and distribute this software and -its documentation is hereby granted, provided that both the copyright -notice and this permission notice appear in all copies of the -software, derivative works or modified versions, and any portions -thereof, and that both notices appear in supporting documentation. - -CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" -CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND -FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - -Carnegie Mellon requests users of this software to return to - - Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU - School of Computer Science - Carnegie Mellon University - Pittsburgh PA 15213-3890 - -any improvements or extensions that they make and grant Carnegie the -rights to redistribute these changes.</pre> -</div> -</section> -</div> -<table class="foot"> - <tr> - <td class="foot-date">May 26, 2021</td> - <td class="foot-os">NetBSD 10.1</td> - </tr> -</table> |
