summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/ccd.4 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man4/ccd.4 3.html')
-rw-r--r--static/freebsd/man4/ccd.4 3.html173
1 files changed, 0 insertions, 173 deletions
diff --git a/static/freebsd/man4/ccd.4 3.html b/static/freebsd/man4/ccd.4 3.html
deleted file mode 100644
index fe91f3ca..00000000
--- a/static/freebsd/man4/ccd.4 3.html
+++ /dev/null
@@ -1,173 +0,0 @@
-<table class="head">
- <tr>
- <td class="head-ltitle">CCD(4)</td>
- <td class="head-vol">Device Drivers Manual</td>
- <td class="head-rtitle">CCD(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">ccd</code> &#x2014; <span class="Nd">Concatenated
- 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">device ccd</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">ccd</code> driver provides the capability of
- combining one or more disks/partitions into one virtual disk.</p>
-<p class="Pp">This document assumes that you are familiar with how to generate
- kernels, how to properly configure disks and devices in a kernel
- configuration file, and how to partition disks.</p>
-<p class="Pp">In order to compile in support for the
- <code class="Nm">ccd</code>, you must add a line similar to the following to
- your kernel configuration file:</p>
-<p class="Pp"></p>
-<div class="Bd Bd-indent"><code class="Li">device ccd # concatenated disk
- devices</code></div>
-<p class="Pp">As of the <span class="Ux">FreeBSD 3.0</span> release, you do not
- need to configure your kernel with <code class="Nm">ccd</code> but may
- instead use it as a kernel loadable module. Simply running
- <a class="Xr">ccdconfig(8)</a> will load the module into the kernel.</p>
-<p class="Pp">A <code class="Nm">ccd</code> may be either serially concatenated
- or interleaved. To serially concatenate the partitions, specify the
- interleave factor of 0. Note that mirroring may not be used with an
- interleave factor of 0.</p>
-<p class="Pp">There is a run-time utility that is used for configuring
- <code class="Nm">ccd</code>s. See <a class="Xr">ccdconfig(8)</a> for more
- information.</p>
-<section class="Ss">
-<h2 class="Ss" id="The_Interleave_Factor"><a class="permalink" href="#The_Interleave_Factor">The
- Interleave Factor</a></h2>
-<p class="Pp">If a <code class="Nm">ccd</code> is interleaved correctly, a
- &#x201C;striping&#x201D; effect is achieved, which can increase sequential
- read/write performance. The interleave factor is expressed in units of
- <code class="Dv">DEV_BSIZE</code> (usually 512 bytes). For large writes, the
- optimum interleave factor is typically the size of a track, while for large
- reads, it is about a quarter of a track. (Note that this changes greatly
- depending on the number and speed of disks.) For instance, with eight 7,200
- RPM drives on two Fast-Wide SCSI buses, this translates to about 128 for
- writes and 32 for reads. A larger interleave tends to work better when the
- disk is taking a multitasking load by localizing the file I/O from any given
- process onto a single disk. You lose sequential performance when you do
- this, but sequential performance is not usually an issue with a multitasking
- load.</p>
-<p class="Pp">An interleave factor must be specified when using a mirroring
- configuration, even when you have only two disks (i.e., the layout winds up
- being the same no matter what the interleave factor). The interleave factor
- will determine how I/O is broken up, however, and a value 128 or greater is
- recommended.</p>
-<p class="Pp"><code class="Nm">ccd</code> has an option for a parity disk, but
- does not currently implement it.</p>
-<p class="Pp">The best performance is achieved if all component disks have the
- same geometry and size. Optimum striping cannot occur with different disk
- types.</p>
-<p class="Pp">For random-access oriented workloads, such as news servers, a
- larger interleave factor (e.g., 65,536) is more desirable. Note that there
- is not much <code class="Nm">ccd</code> can do to speed up applications that
- are seek-time limited. Larger interleave factors will at least reduce the
- chance of having to seek two disk-heads to read one directory or a file.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Disk_Mirroring"><a class="permalink" href="#Disk_Mirroring">Disk
- Mirroring</a></h2>
-<p class="Pp">You can configure the <code class="Nm">ccd</code> to
- &#x201C;mirror&#x201D; any even number of disks. See
- <a class="Xr">ccdconfig(8)</a> for how to specify the necessary flags. For
- example, if you have a <code class="Nm">ccd</code> configuration specifying
- four disks, the first two disks will be mirrored with the second two disks.
- A write will be run to both sides of the mirror. A read will be run to
- either side of the mirror depending on what the driver believes to be most
- optimal. If the read fails, the driver will automatically attempt to read
- the same sector from the other side of the mirror. Currently
- <code class="Nm">ccd</code> uses a dual seek zone model to optimize reads
- for a multi-tasking load rather than a sequential load.</p>
-<p class="Pp">In an event of a disk failure, you can use <a class="Xr">dd(1)</a>
- to recover the failed disk.</p>
-<p class="Pp">Note that a one-disk <code class="Nm">ccd</code> is not the same
- as the original partition. In particular, this means if you have a file
- system on a two-disk mirrored <code class="Nm">ccd</code> and one of the
- disks fail, you cannot mount and use the remaining partition as itself; you
- have to configure it as a one-disk <code class="Nm">ccd</code>. You cannot
- replace a disk in a mirrored <code class="Nm">ccd</code> partition without
- first backing up the partition, then replacing the disk, then restoring the
- partition.</p>
-</section>
-<section class="Ss">
-<h2 class="Ss" id="Linux_Compatibility"><a class="permalink" href="#Linux_Compatibility">Linux
- Compatibility</a></h2>
-<p class="Pp">The Linux compatibility mode does not try to read the label that
- Linux' <a class="Xr">md(4)</a> driver leaves on the raw devices. You will
- have to give the order of devices and the interleave factor on your own.
- When in Linux compatibility mode, <code class="Nm">ccd</code> will convert
- the interleave factor from Linux terminology. That means you give the same
- interleave factor that you gave as chunk size in Linux.</p>
-<p class="Pp">If you have a Linux <a class="Xr">md(4)</a> device in
- &#x201C;legacy&#x201D; mode, do not use the
- <code class="Dv">CCDF_LINUX</code> flag in <a class="Xr">ccdconfig(8)</a>.
- Use the <code class="Dv">CCDF_NO_OFFSET</code> flag instead. In that case
- you have to convert the interleave factor on your own, usually it is Linux'
- chunk size multiplied by two.</p>
-<p class="Pp">Using a Linux RAID this way is potentially dangerous and can
- destroy the data in there. Since <span class="Ux">FreeBSD</span> does not
- read the label used by Linux, changes in Linux might invalidate the
- compatibility layer.</p>
-<p class="Pp">However, using this is reasonably safe if you test the
- compatibility before mounting a RAID read-write for the first time. Just
- using <a class="Xr">ccdconfig(8)</a> without mounting does not write
- anything to the Linux RAID. Then you do a
- <code class="Nm">fsck.ext2fs</code>
- (<span class="Pa">ports/filesystems/e2fsprogs</span>) on the
- <code class="Nm">ccd</code> device using the <code class="Fl">-n</code>
- flag. You can mount the file system read-only to check files in there. If
- all this works, it is unlikely that there is a problem with
- <code class="Nm">ccd</code>. Keep in mind that even when the Linux
- compatibility mode in <code class="Nm">ccd</code> is working correctly, bugs
- in <span class="Ux">FreeBSD</span>'s <code class="Nm">ex2fs</code>
- implementation would still destroy your data.</p>
-</section>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="WARNINGS"><a class="permalink" href="#WARNINGS">WARNINGS</a></h1>
-<p class="Pp">If just one (or more) of the disks in a
- <code class="Nm">ccd</code> fails, the entire file system will be lost
- unless you are mirroring the disks.</p>
-<p class="Pp">If one of the disks in a mirror is lost, you should still be able
- to back up your data. If a write error occurs, however, data read from that
- sector may be non-deterministic. It may return the data prior to the write
- or it may return the data that was written. When a write error occurs, you
- should recover and regenerate the data as soon as possible.</p>
-<p class="Pp">Changing the interleave or other parameters for a
- <code class="Nm">ccd</code> disk usually destroys whatever data previously
- existed on that disk.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="FILES"><a class="permalink" href="#FILES">FILES</a></h1>
-<dl class="Bl-tag">
- <dt><span class="Pa">/dev/ccd*</span></dt>
- <dd><code class="Nm">ccd</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">dd(1)</a>, <a class="Xr">ccdconfig(8)</a>,
- <a class="Xr">config(8)</a>, <a class="Xr">disklabel(8)</a>,
- <a class="Xr">fsck(8)</a>, <a class="Xr">mount(8)</a>,
- <a class="Xr">newfs(8)</a></p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
-<p class="Pp">The concatenated disk driver was originally written at the
- University of Utah.</p>
-</section>
-</div>
-<table class="foot">
- <tr>
- <td class="foot-date">January 23, 2025</td>
- <td class="foot-os">FreeBSD 15.0</td>
- </tr>
-</table>