ccd - concatenated disk driver
pseudo-device ccd [count]
The ccd driver provides the capability of combining one or
more
disks/partitions into one virtual disk.
This document assumes that you're familiar with how to generate kernels,
how to properly configure disks and pseudo-devices in a kernel configuration
file, and how to partition disks.
Note that the `raw' partitions of the disks should not be
combined. Each
component partition should be offset at least one cylinder
from the beginning
of the component disk. This avoids potential conflicts between
the component disk's disklabel and the ccd's disklabel. The
kernel wants
to only allow component partitions of type FS_CCD, but due
to disklabel
restrictions on some architectures will also accept component partitions
of FS_BSDFFS.
In order to compile in support for the ccd, you must add a
line similar
to the following to your kernel configuration file:
pseudo-device ccd 4 # concatenated disk devices
The count argument is how many ccd's memory is allocated for
at boot
time. In this example, no more than 4 ccd's may be configured.
A ccd may be either serially concatenated or interleaved.
To serially
concatenate partitions specify an interleave factor of 0.
If a ccd is interleaved correctly, a ``striping'' effect is
achieved,
which can increase performance. Finding the optimum interleave factor is
a hard problem. Some things to think about are the number
of disks in
the ccd, the typical read-ahead opportunities, the filesystem blocksize,
and if it's possible to use the optimized ccd I/O protocol.
The optimized
protocol allows smaller interleave factors for a comparably cheap
price but requires that the factor be a multiple of the
software page
size (CLBYTES), and that mirroring is not requested. So far
the best
policy is to test with different interleaves and benchmark
typical uses.
A rule of thumb might be to use the software pagesize with
the optimized
I/O protocol (the default, unless the requirements mentioned
above are
not fulfilled) or MAXBSIZE / #components with the unoptimized protocol.
Since the interleave factor is expressed in units of
DEV_BSIZE, one must
account for sector sizes other than DEV_BSIZE in order to
calculate the
correct interleave. The kernel will not allow an interleave
factor less
than the size of the largest component sector divided by
DEV_BSIZE.
Note that best performance is achieved if all component
disks have the
same geometry and size. Optimum striping cannot occur with
different
disk types.
There is a run-time utility that is used for configuring
ccd's. See
ccdconfig(8) for more information.
If just one (or more) of the disks in a ccd fails, the entire file system
will be lost.
/dev/{,r}ccd* ccd device special files
MAKEDEV(8), ccdconfig(8), config(8), fsck(8), mount(8),
newfs(8)
The concatenated disk driver was originally written at the
University of
Utah.
OpenBSD 3.6 August 9, 1995
[ Back ] |