Suppress some ugly memories in the Storage chapter:

* Remove "RAID" section that only covers ccd(4) and ataraid(4).  These
  may still work, but there are better solutions for new users.
* Remove Backups to Floppies section.
* Add SATA drive names.
* Change CDROM to CD-ROM to match the FDP Primer word list.

About ccd(4):

Once new and useful, thrice ousted from its niche, time's arrow
evicts ccd from the Handbook, to live forever in the archives.
This commit is contained in:
Warren Block 2013-06-24 01:00:56 +00:00
parent 1881f39c04
commit 5793bcfc27
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=42018

View file

@ -51,19 +51,11 @@
<para>How to create and burn CDs and DVDs on &os;.</para>
</listitem>
<listitem>
<para>The various storage media options for backups.</para>
</listitem>
<listitem>
<para>How to use the backup programs available under
&os;.</para>
</listitem>
<listitem>
<para>How to backup to floppy disks.</para>
</listitem>
<listitem>
<para>What file system snapshots are and how to use them
efficiently.</para>
@ -84,7 +76,7 @@
<title>Device Names</title>
<para>The following is a list of physical storage devices
supported in &os;, and their associated device names.</para>
supported in &os; and their associated device names.</para>
<table id="disk-naming-physical-table" frame="none">
<title>Physical Disk Naming Conventions</title>
@ -100,14 +92,27 @@
<tbody>
<row>
<entry>IDE hard drives</entry>
<entry><literal>ad</literal></entry>
<entry><literal>ad</literal> or
<literal>ada</literal></entry>
</row>
<row>
<entry>IDE CDROM drives</entry>
<entry><literal>acd</literal></entry>
<entry>IDE CD-ROM drives</entry>
<entry><literal>acd</literal> or
<literal>cd</literal></entry>
</row>
<row>
<entry>SATA hard drives</entry>
<entry><literal>ad</literal> or
<literal>ada</literal></entry>
</row>
<row>
<entry>SATA CD-ROM drives</entry>
<entry><literal>acd</literal> or
<literal>cd</literal></entry>
</row>
<row>
<entry>SCSI hard drives and USB Mass storage
devices</entry>
@ -115,12 +120,12 @@
</row>
<row>
<entry>SCSI CDROM drives</entry>
<entry>SCSI CD-ROM drives</entry>
<entry><literal>cd</literal></entry>
</row>
<row>
<entry>Assorted non-standard CDROM drives</entry>
<entry>Assorted non-standard CD-ROM drives</entry>
<entry><literal>mcd</literal> for Mitsumi CD-ROM and
<literal>scd</literal> for Sony CD-ROM devices</entry>
</row>
@ -242,362 +247,6 @@
<screen>&prompt.root; <userinput>mount /newdisk</userinput></screen>
</sect1>
<sect1 id="raid">
<title>RAID</title>
<sect2 id="raid-soft">
<title>Software RAID</title>
<sect3 id="ccd">
<sect3info>
<authorgroup>
<author>
<firstname>Christopher</firstname>
<surname>Shumway</surname>
<contrib>Original work by </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Jim</firstname>
<surname>Brown</surname>
<contrib>Revised by </contrib>
</author>
</authorgroup>
</sect3info>
<title>Concatenated Disk Driver (CCD) Configuration</title>
<indexterm><primary>RAID</primary><secondary>software</secondary></indexterm>
<indexterm><primary>RAID</primary><secondary>CCD</secondary></indexterm>
<para>When choosing a mass storage solution, the most
important factors to consider are speed, reliability, and
cost. It is rare to have all three in balance. Normally a
fast, reliable mass storage device is expensive, and to cut
back on cost either speed or reliability must be
sacrificed.</para>
<para>In designing the system described below, cost was
chosen as the most important factor, followed by speed,
then reliability. Data transfer speed for this system is
ultimately constrained by the network. While reliability is
very important, the CCD drive described below serves online
data that is already fully backed up and which can easily be
replaced.</para>
<para>Defining the requirements is the first step in choosing
a mass storage solution. If the requirements prefer speed
or reliability over cost, the solution will differ from the
system described in this section.</para>
<sect4 id="ccd-installhw">
<title>Installing the Hardware</title>
<para>In addition to the IDE system disk, three Western
Digital 30GB, 5400 RPM IDE disks form the core of the CCD
disk described below, providing approximately 90GB of
online storage. Ideally, each IDE disk would have its own
IDE controller and cable, but to minimize cost, additional
IDE controllers were not used. Instead, the disks were
configured with jumpers so that each IDE controller has
one master, and one slave.</para>
<para>Upon reboot, the system BIOS was configured to
automatically detect the disks attached. More
importantly, &os; detected them on reboot:</para>
<programlisting>ad0: 19574MB &lt;WDC WD205BA&gt; [39770/16/63] at ata0-master UDMA33
ad1: 29333MB &lt;WDC WD307AA&gt; [59598/16/63] at ata0-slave UDMA33
ad2: 29333MB &lt;WDC WD307AA&gt; [59598/16/63] at ata1-master UDMA33
ad3: 29333MB &lt;WDC WD307AA&gt; [59598/16/63] at ata1-slave UDMA33</programlisting>
<note><para>If &os; does not detect all the disks, consult
the drive documentation for proper setup and verify
that the controller is supported by &os;.</para></note>
</sect4>
<sect4 id="ccd-setup">
<title>Setting Up the CCD</title>
<para>The &man.ccd.4; driver takes several identical disks
and concatenates them into one logical file system. In
order to use &man.ccd.4;, its kernel module must be
loaded using &man.ccd.4;. When using a custom kernel,
ensure that this line is compiled in:</para>
<programlisting>device ccd</programlisting>
<para>Before configuring &man.ccd.4;, use &man.bsdlabel.8;
to label the disks:</para>
<programlisting>bsdlabel -w ad1 auto
bsdlabel -w ad2 auto
bsdlabel -w ad3 auto</programlisting>
<para>This example creates a bsdlabel for
<devicename>ad1c</devicename>,
<devicename>ad2c</devicename> and
<devicename>ad3c</devicename> that spans the entire
disk.</para>
<para>The next step is to change the disk label type. Use
&man.bsdlabel.8; to edit the disks:</para>
<programlisting>bsdlabel -e ad1
bsdlabel -e ad2
bsdlabel -e ad3</programlisting>
<para>This opens up the current disk label on each disk with
the editor specified by the <envar>EDITOR</envar>
environment variable, typically &man.vi.1;.</para>
<para>An unmodified disk label will look something like
this:</para>
<programlisting>8 partitions:
# size offset fstype [fsize bsize bps/cpg]
c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)</programlisting>
<para>Add a new <literal>e</literal> partition for
&man.ccd.4; to use. This can usually be copied from the
<literal>c</literal> partition, but the
<option>fstype</option> <emphasis>must</emphasis> be
<userinput>4.2BSD</userinput>. The disk label should now
look something like this:</para>
<programlisting>8 partitions:
# size offset fstype [fsize bsize bps/cpg]
c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)
e: 60074784 0 4.2BSD 0 0 0 # (Cyl. 0 - 59597)</programlisting>
</sect4>
<sect4 id="ccd-buildingfs">
<title>Building the File System</title>
<para>Now that all the disks are labeled, build the
&man.ccd.4; using &man.ccdconfig.8;, with options similar
to the following:</para>
<programlisting>ccdconfig ccd0<co id="co-ccd-dev"/> 32<co id="co-ccd-interleave"/> 0<co id="co-ccd-flags"/> /dev/ad1e<co id="co-ccd-devs"/> /dev/ad2e /dev/ad3e</programlisting>
<para>The use and meaning of each option is described
below:</para>
<calloutlist>
<callout arearefs="co-ccd-dev">
<para>The first argument is the device to configure, in
this case, <filename>/dev/ccd0c</filename>. The
<literal>/dev/</literal> portion is optional.</para>
</callout>
<callout arearefs="co-ccd-interleave">
<para>The interleave for the file system, which defines
the size of a stripe in disk blocks, each normally 512
bytes. So, an interleave of 32 would be 16,384
bytes.</para>
</callout>
<callout arearefs="co-ccd-flags">
<para>Flags for &man.ccdconfig.8;. For example, to
enable drive mirroring, specify a flag. This
configuration does not provide mirroring for
&man.ccd.4;, so it is set at 0 (zero).</para>
</callout>
<callout arearefs="co-ccd-devs">
<para>The final arguments to &man.ccdconfig.8; are the
devices to place into the array. Use the complete
path name for each device.</para>
</callout>
</calloutlist>
<para>After running &man.ccdconfig.8; the &man.ccd.4; is
configured and a file system can be installed. Refer to
&man.newfs.8; for options, or run: </para>
<programlisting>newfs /dev/ccd0c</programlisting>
</sect4>
<sect4 id="ccd-auto">
<title>Making it All Automatic</title>
<para>Generally, &man.ccd.4; should be configured to
automount upon each reboot. To do this, write out the
current configuration to
<filename>/etc/ccd.conf</filename> using the following
command:</para>
<programlisting>ccdconfig -g &gt; /etc/ccd.conf</programlisting>
<para>During reboot, the script <command>/etc/rc</command>
runs <command>ccdconfig -C</command> if
<filename>/etc/ccd.conf</filename> exists. This
automatically configures the &man.ccd.4; so it can be
mounted.</para>
<note>
<para>When booting into single user mode, the following
command must be issued to configure the array before
the &man.ccd.4; can be mounted:</para>
<programlisting>ccdconfig -C</programlisting>
</note>
<para>To automatically mount the &man.ccd.4;, place an entry
for the &man.ccd.4; in <filename>/etc/fstab</filename> so
it will be mounted at boot time:</para>
<programlisting>/dev/ccd0c /media ufs rw 2 2</programlisting>
</sect4>
</sect3>
<sect3 id="vinum">
<title>The Vinum Volume Manager</title>
<indexterm>
<primary>RAID</primary>
<secondary>software</secondary>
</indexterm>
<indexterm>
<primary>RAID</primary>
<secondary>Vinum</secondary>
</indexterm>
<para>The Vinum Volume Manager is a block device driver which
implements virtual disk drives. It isolates disk hardware
from the block device interface and maps data in ways which
result in an increase in flexibility, performance and
reliability compared to the traditional slice view of disk
storage. &man.vinum.4; implements the RAID-0, RAID-1 and
RAID-5 models, both individually and in combination.</para>
<para>Refer to <xref linkend="vinum-vinum"/> for more
information about &man.vinum.4;.</para>
</sect3>
</sect2>
<sect2 id="raid-hard">
<title>Hardware RAID</title>
<indexterm>
<primary>RAID</primary>
<secondary>hardware</secondary>
</indexterm>
<para>&os; also supports a variety of hardware
<acronym>RAID</acronym> controllers. These devices control a
<acronym>RAID</acronym> subsystem without the need for &os;
specific software to manage the array.</para>
<para>Using an on-card <acronym>BIOS</acronym>, the card
controls most of the disk operations. The following is a
brief setup description using a Promise
<acronym>IDE</acronym> <acronym>RAID</acronym> controller.
When this card is installed and the system is started up, it
displays a prompt requesting information. Follow the
instructions to enter the card's setup screen and to combine
all the attached drives. After doing so, the disks will
look like a single drive to &os;. Other
<acronym>RAID</acronym> levels can be set up
accordingly.</para>
</sect2>
<sect2>
<title>Rebuilding ATA RAID1 Arrays</title>
<para>&os; supports the ability to hot-replace a failed disk in
an array.</para>
<para>An error indicating a failed disk will appear in
<filename>/var/log/messages</filename> or in the &man.dmesg.8;
output:</para>
<programlisting>ad6 on monster1 suffered a hard error.
ad6: READ command timeout tag=0 serv=0 - resetting
ad6: trying fallback to PIO mode
ata3: resetting devices .. done
ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11)\\
status=59 error=40
ar0: WARNING - mirror lost</programlisting>
<para>Use &man.atacontrol.8; to check for further
information:</para>
<screen>&prompt.root; <userinput>atacontrol list</userinput>
ATA channel 0:
Master: no device present
Slave: acd0 &lt;HL-DT-ST CD-ROM GCR-8520B/1.00&gt; ATA/ATAPI rev 0
ATA channel 1:
Master: no device present
Slave: no device present
ATA channel 2:
Master: ad4 &lt;MAXTOR 6L080J4/A93.0500&gt; ATA/ATAPI rev 5
Slave: no device present
ATA channel 3:
Master: ad6 &lt;MAXTOR 6L080J4/A93.0500&gt; ATA/ATAPI rev 5
Slave: no device present
&prompt.root; <userinput>atacontrol status ar0</userinput>
ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADED</screen>
<procedure>
<step>
<para>First, detach the ata channel with the failed disk
so that it can be safely removed:</para>
<screen>&prompt.root; <userinput>atacontrol detach ata3</userinput></screen>
</step>
<step>
<para>Replace the disk.</para>
</step>
<step>
<para>Reattach the ata channel:</para>
<screen>&prompt.root; <userinput>atacontrol attach ata3</userinput>
Master: ad6 &lt;MAXTOR 6L080J4/A93.0500&gt; ATA/ATAPI rev 5
Slave: no device present</screen>
</step>
<step>
<para>Add the new disk to the array as a spare:</para>
<screen>&prompt.root; <userinput>atacontrol addspare ar0 ad6</userinput></screen>
</step>
<step>
<para>Rebuild the array:</para>
<screen>&prompt.root; <userinput>atacontrol rebuild ar0</userinput></screen>
</step>
<step>
<para>It is possible to check on the progress by issuing the
following command:</para>
<screen>&prompt.root; <userinput>dmesg | tail -10</userinput>
[output removed]
ad6: removed from configuration
ad6: deleted from ar0 disk1
ad6: inserted into ar0 disk1 as spare
&prompt.root; <userinput>atacontrol status ar0</userinput>
ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completed</screen>
</step>
<step>
<para>Wait until this operation completes.</para>
</step>
</procedure>
</sect2>
</sect1>
<sect1 id="usb-disks">
<sect1info>
<authorgroup>
@ -794,7 +443,7 @@ umass0: detached</screen>
<title>Creating and Using CD Media</title>
<indexterm>
<primary>CDROMs</primary>
<primary>CD-ROMs</primary>
<secondary>creating</secondary>
</indexterm>
@ -912,7 +561,7 @@ umass0: detached</screen>
of ways.</para>
<indexterm>
<primary>CDROMs</primary>
<primary>CD-ROMs</primary>
<secondary>creating bootable</secondary>
</indexterm>
<para>The last option of general use is <option>-b</option>.
@ -955,7 +604,7 @@ umass0: detached</screen>
<title><application>burncd</application></title>
<indexterm>
<primary>CDROMs</primary>
<primary>CD-ROMs</primary>
<secondary>burning</secondary>
</indexterm>
<para>For an ATAPI CD burner, <command>burncd</command> can be
@ -1001,7 +650,7 @@ umass0: detached</screen>
results like this:</para>
<indexterm>
<primary>CDROMs</primary>
<primary>CD-ROMs</primary>
<secondary>burning</secondary>
</indexterm>
<screen>&prompt.root; <userinput>cdrecord -scanbus</userinput>
@ -1122,8 +771,8 @@ scsibus1:
<para>It is possible to copy a data CD to an image file that is
functionally equivalent to the image file created with
&man.mkisofs.8;, and then use it to duplicate any data CD.
The example given here assumes that the CDROM device is
<devicename>acd0</devicename>. Substitute the correct CDROM
The example given here assumes that the CD-ROM device is
<devicename>acd0</devicename>. Substitute the correct CD-ROM
device.</para>
<screen>&prompt.root; <userinput>dd if=/dev/acd0 of=file.iso bs=2048</userinput></screen>
@ -1149,7 +798,7 @@ scsibus1:
&man.mount.8; that the file system is of type
<literal>ISO9660</literal> by specifying
<option>-t cd9660</option> to &man.mount.8;. For example,
to mount the CDROM device, <filename>/dev/cd0</filename>,
to mount the CD-ROM device, <filename>/dev/cd0</filename>,
under <filename class="directory">/mnt</filename>,
use:</para>
@ -1162,7 +811,7 @@ scsibus1:
<screen>&prompt.root; <userinput>mount_cd9660 /dev/cd0 /mnt</userinput></screen>
<para>While data CDROMs from any vendor can be mounted this way,
<para>While data CD-ROMs from any vendor can be mounted this way,
disks with certain ISO 9660 extensions might behave oddly.
For example, Joliet disks store all filenames in two-byte
Unicode characters. The &os; kernel does not speak Unicode,
@ -1186,13 +835,13 @@ scsibus1:
</note>
<para>Occasionally, <errorname>Device not configured</errorname>
will be displayed when trying to mount a CDROM. This
usually means that the CDROM drive thinks that there is no
will be displayed when trying to mount a CD-ROM. This
usually means that the CD-ROM drive thinks that there is no
disk in the tray, or that the drive is not visible on the bus.
It can take a couple of seconds for a CDROM drive to realize
It can take a couple of seconds for a CD-ROM drive to realize
that a media is present, so be patient.</para>
<para>Sometimes, a SCSI CDROM may be missed because it did not
<para>Sometimes, a SCSI CD-ROM may be missed because it did not
have enough time to answer the bus reset. To resolve this,add
the following option to the kernel configuration and <link
linkend="kernelconfig-building">rebuild the
@ -1201,7 +850,7 @@ scsibus1:
<programlisting>options SCSI_DELAY=15000</programlisting>
<para>This tells the SCSI bus to pause 15 seconds during boot,
to give the CDROM drive every possible chance to answer the
to give the CD-ROM drive every possible chance to answer the
bus reset.</para>
</sect2>
@ -1220,7 +869,7 @@ scsibus1:
<screen>&prompt.root; <userinput>tar xzvf /dev/acd1</userinput></screen>
<para>This type of disk can not be mounted as a normal CDROM and
<para>This type of disk can not be mounted as a normal CD-ROM and
the data cannot be read under any operating system except
&os;. In order to mount the CD, or to share the data with
another operating system, &man.mkisofs.8; must be used as
@ -1968,105 +1617,6 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c
</sect2>
</sect1>
<sect1 id="backups-floppybackups">
<title>Backups to Floppies</title>
<sect2 id="floppies-using">
<title>Can I Use Floppies for Backing Up My Data?</title>
<indexterm><primary>backup floppies</primary></indexterm>
<indexterm><primary>floppy disks</primary></indexterm>
<para>Floppy disks are not a suitable media for making backups
as:</para>
<itemizedlist>
<listitem>
<para>The media is unreliable, especially over long periods
of time.</para>
</listitem>
<listitem>
<para>Backing up and restoring is very slow.</para>
</listitem>
<listitem>
<para>They have a very limited capacity.</para>
</listitem>
</itemizedlist>
<para>However, if no other method of backing up data is
available, floppy disks are better than no backup at
all.</para>
<para>When backing up to floppy disks, ensure the floppies are
of good quality. Floppies that have been lying around the
office for a couple of years are a bad choice. Ideally,
use new ones from a reputable manufacturer.</para>
</sect2>
<sect2 id="floppies-creating">
<title>So How Do I Backup My Data to Floppies?</title>
<para>The best way to backup to floppy disk is to use
&man.tar.1; with <option>-M</option> (multi-volume), which
allows backups to span multiple floppies.</para>
<para>To backup all the files in the current directory and
sub-directory, use this as <username>root</username>:</para>
<screen>&prompt.root; <userinput>tar Mcvf /dev/fd0 *</userinput></screen>
<para>When the first floppy is full, &man.tar.1; will prompt
to insert the next volume, which in this case is the next
floppy disk:</para>
<screen>Prepare volume #2 for /dev/fd0 and hit return:</screen>
<para>This is repeated, with the volume number incrementing,
until all the specified files have been archived.</para>
</sect2>
<sect2 id="floppies-compress">
<title>Can I Compress My Backups?</title>
<indexterm>
<primary><command>tar</command></primary>
</indexterm>
<indexterm>
<primary><command>gzip</command></primary>
</indexterm>
<indexterm><primary>compression</primary></indexterm>
<para>Unfortunately, &man.tar.1; does not support
<option>-z</option> for multi-volume archives. Instead,
&man.gzip.1; all the files, &man.tar.1; them to the floppies,
then &man.gunzip.1; the files.</para>
</sect2>
<sect2 id="floppies-restoring">
<title>How Do I Restore My Backups?</title>
<para>To restore the entire archive use:</para>
<screen>&prompt.root; <userinput>tar Mxvf /dev/fd0</userinput></screen>
<para>There are two methods to restore only specific files. The
first is to insert the first floppy and use:</para>
<screen>&prompt.root; <userinput>tar Mxvf /dev/fd0 <replaceable>filename</replaceable></userinput></screen>
<para>&man.tar.1; will prompt to insert subsequent floppies
until it finds the required file.</para>
<para>Alternatively, if the floppy containing the file is known,
insert that floppy and use the same command. If the first
file on the floppy is a continuation from the previous one,
&man.tar.1; will warn that it cannot restore it, even if you
have not asked it to.</para>
</sect2>
</sect1>
<sect1 id="backup-strategies">
<sect1info>
<authorgroup>
@ -2476,7 +2026,7 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c
<note>
<para>Livefs CD images are not available for
&os;&nbsp;&rel.current;-RELEASE and later. In addition to
the CDROM installation images, flash drive installation
the CD-ROM installation images, flash drive installation
images may be used to recover a system. The
<quote>memstick</quote> image for
&os;/&arch.i386;&nbsp;&rel.current;-RELEASE is available
@ -2517,10 +2067,10 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c
<quote>livefs</quote> CD and boot the computer. The
original install menu will be displayed on the screen.
Select the correct country, then choose
<guimenuitem>Fixit -- Repair mode with CDROM/DVD/floppy or
<guimenuitem>Fixit -- Repair mode with CD-ROM/DVD/floppy or
start a shell.</guimenuitem> then select
<guimenuitem>CDROM/DVD -- Use the live filesystem
CDROM/DVD</guimenuitem>.
<guimenuitem>CD-ROM/DVD -- Use the live filesystem
CD-ROM/DVD</guimenuitem>.
<command>restore</command> and the other needed programs
are located in <filename
class="directory">/mnt2/rescue</filename>.</para>