CCD(4) BSD Programmer's Manual CCD(4)
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 configura- tion 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 be- ginning 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 proto- col 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 proto- col (the default, unless the requirements mentioned above are not ful- filled) or MAXBSIZE / #components with the unoptimized protocol. Since the interleave factor is expressed in units of DEV_BSIZE, one must ac- count 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. MirOS BSD #10-current August 9, 1995 1
Generated on 2017-04-03 16:26:17 by $MirOS: src/scripts/roff2htm,v 1.88 2017/01/29 00:51:06 tg Exp $
These manual pages and other documentation are copyrighted by their respective writers;
their source is available at our CVSweb,
AnonCVS, and other mirrors. The rest is Copyright © 2002–2017 The MirOS Project, Germany.
This product includes material
provided by mirabilos.
This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report — diffs preferred.