aboutsummaryrefslogtreecommitdiff
path: root/en_US.ISO8859-1/books/handbook/geom
diff options
context:
space:
mode:
authorMurray Stokely <murray@FreeBSD.org>2005-08-06 14:28:09 +0000
committerMurray Stokely <murray@FreeBSD.org>2005-08-06 14:28:09 +0000
commit9c57aa898ba566cd8380c104468c44c07acdd2c8 (patch)
treefa77e50bd96fff131b52eaba2e98ceac5b113d4f /en_US.ISO8859-1/books/handbook/geom
parent821345482164f0f9a76b5a93628004e3b2671b2d (diff)
downloaddoc-9c57aa898ba566cd8380c104468c44c07acdd2c8.tar.gz
doc-9c57aa898ba566cd8380c104468c44c07acdd2c8.zip
Significant cleanup/rewrite of GEOM Striping section.
* This chapter claims to be about striping, but talks about disk concatenation in some paragraphs. Remove all references to concatenation, add a brief paragraph explaining what striping is and why it provides superior I/O performance through parallel I/O to multiple disks simultaneously. * Do not alternate between calling striping raid0 and raid1. Consistently refer to it as raid0, as raid1 is mirroring. * Cleanup / reorganize the example set of commands for creating a stripe of two ATA disks. Wrap it in a DocBook <procedure> tag with individual <steps> to provide a title for this procedure and make the numbered steps very clear to follow without confusing verbiage and side tangents adding confusion. * Expand 'redundant array of inexpensive disks' in <acronym> tag for mouseover on first use of HTML output. * Remove some poorly worded, confusing, and contradictory sentences and paragraphs.
Notes
Notes: svn path=/head/; revision=25321
Diffstat (limited to 'en_US.ISO8859-1/books/handbook/geom')
-rw-r--r--en_US.ISO8859-1/books/handbook/geom/chapter.sgml167
1 files changed, 100 insertions, 67 deletions
diff --git a/en_US.ISO8859-1/books/handbook/geom/chapter.sgml b/en_US.ISO8859-1/books/handbook/geom/chapter.sgml
index f24f095194..a9df2979ac 100644
--- a/en_US.ISO8859-1/books/handbook/geom/chapter.sgml
+++ b/en_US.ISO8859-1/books/handbook/geom/chapter.sgml
@@ -29,16 +29,16 @@
</indexterm>
<para>This chapter covers the use of disks under the new GEOM
- framework in &os;. This includes the major
- <acronym>RAID</acronym> control utilities which use the
- framework for configuration. This chapter will not go
- into in depth discussion on how GEOM handles or controls
- I/O, the underlying subsystem, or code. This information
- is provided through the &man.geom.4; manual page and its various
- SEE ALSO references. This chapter is also not a definitive guide
- to <acronym>RAID</acronym> configurations. Only GEOM
- supported <acronym>RAID</acronym> classifications will be
- discussed.</para>
+ framework in &os;. This includes the major <acronym
+ role="Redundant Array of Inexpensive Disks">RAID</acronym>
+ control utilities which use the framework for configuration.
+ This chapter will not go into in depth discussion on how GEOM
+ handles or controls I/O, the underlying subsystem, or code.
+ This information is provided through the &man.geom.4; manual
+ page and its various SEE ALSO references. This chapter is also
+ not a definitive guide to <acronym>RAID</acronym>
+ configurations. Only GEOM supported <acronym>RAID</acronym>
+ classifications will be discussed.</para>
<para>After reading this chapter, you will know:</para>
@@ -91,6 +91,20 @@
</sect1>
<sect1 id="GEOM-striping">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Written by </contrib>
+ </author>
+ <author>
+ <firstname>Murray</firstname>
+ <surname>Stokely</surname>
+ </author>
+ </authorgroup>
+ </sect1info>
+
<title>RAID0 - Striping</title>
<indexterm>
@@ -102,84 +116,103 @@
<para>Striping is a method used to combine several disk drives into
a single volume. In many cases, this is done through the use of
- hardware controllers supporting all variants of disks,
- <acronym>SCSI</acronym>, <acronym>SATA</acronym>,
- and <acronym>ATA</acronym>. The GEOM disk subsystem provides
- software support for <acronym>RAID</acronym>1, also known as
+ hardware controllers. The GEOM disk subsystem provides
+ software support for <acronym>RAID</acronym>0, also known as
disk striping.</para>
- <para>Some cases have this volume, comprised of several disks, as a
- separate file system for backups, data storage for users;
- however, in other cases still, this volume may hold the root, or
- <filename role="directory">/</filename> partition and the system
- will boot from it. Both will be described herein.</para>
+ <para>In a <acronym>RAID</acronym>0 system, data are split up in
+ blocks that get written across all the drives in the array.
+ Instead of having to wait on the system to write 256k to one
+ disk, a <acronym>RAID</acronym>0 system can simultaneously write
+ 64k to each of four different disks, offering superior I/O
+ performance. This performance can be enhanced further by using
+ multiple disk controllers.</para>
- <para>To stripe several <acronym>ATA</acronym> disks, of the same
- size of course, load the <filename>geom_stripe</filename>
- module:</para>
+ <para>Each disk in a <acronym>RAID</acronym>0 stripe must be of
+ the same size, since I/O requests are interleaved to read or
+ write to multiple disks in parallel.</para>
+
+ <procedure>
+ <title>Creating a stripe of unformatted ATA disks</title>
+
+ <step><para>Load the <filename>geom_stripe</filename>
+ module:</para>
<screen>&prompt.root; <userinput>kldload geom_stripe.ko</userinput></screen>
+ </step>
+
+ <step><para>Ensure that a suitable mount point exists. If this
+ volume will become a root partition, then temporarily use
+ another mount point such as <filename
+ role="directory">/mnt</filename>.</para>
+
+ <screen>&prompt.root; <userinput>mkdir /mnt</userinput></screen>
+ </step>
- <para>The module should now be loaded and visible from the output of
- <command>kldstat</command>. Now to combine the disks. Ensure
- that a mount point exists, if this volume will become a root
- partition then temporarily use
- <filename role="directory">/mnt</filename>. Otherwise, for the
- purpose of our examples, this volume will reside at the
- <filename role="directory">/home</filename> mount point. This
- process may be complicated if users already exist on the system.
- If so, assume the volume will reside on
- <filename role="directory">/data</filename>.</para>
-
- <para>Begin by selecting the disks which will be striped. Our
- scenario has two unused, unpartitioned <acronym>ATA</acronym>
- disks: <filename>/dev/ad2</filename> and
- <filename>/dev/ad3</filename>. The module has been loaded and
- our disks selected, we will now create the stripe device:</para>
-
- <screen>&prompt.root; <userinput>gstripe label -v st0 /dev/ad2 /dev/ad3</userinput></screen>
+ <step><para>Determine the device names for the disks which will
+ be striped, and create the new stripe device. For example,
+ the following command could be used to stripe two unused,
+ unpartitioned <acronym>ATA</acronym> disks:
+ <filename>/dev/ad2</filename> and
+ <filename>/dev/ad3</filename>.</para>
+ <screen>&prompt.root; <userinput>gstripe label -v st0 /dev/ad2 /dev/ad3</userinput></screen>
+
+<!--
<para>A message should be returned explaining that meta data has
- been stored on the devices. The file system must now be created
- on the device. If this volume is to be used for system
- initialization, the following command must be issued before the
- file system is created:</para>
+ been stored on the devices.
+XXX: What message? Put it inside the screen output above.
+-->
+ </step>
+
+ <step><para>If this volume will be used as a root device for
+ booting the system, then the following command must be issued
+ before the file system is created:</para>
+
+ <screen>&prompt.root; <userinput>fdisk -vBI /dev/stripe/st0</userinput></screen>
+ </step>
+
+ <step><para>A partition table must be created on the new volume
+ with the following command:</para>
- <screen>&prompt.root; <userinput>fdisk -vBI /dev/stripe/st0</userinput></screen>
+ <screen>&prompt.root; <userinput>bsdlabel -wB /dev/stripe/st0</userinput></screen>
- <para>Create a partition table on the new volume:</para>
+ </step>
- <screen>&prompt.root; <userinput>bsdlabel -wB /dev/stripe/st0</userinput></screen>
+ <step><para>This process should have created two other devices
+ in the <filename role="directory">/dev/stripe</filename>
+ directory in addition to the <filename>st0</filename> device.
+ Those include <filename>st0a</filename> and
+ <filename>st0c</filename>. A file system must now be created
+ on the <filename>st0a</filename> device using the following
+ <command>newfs</command> command:</para>
- <para>This process should have created two other devices in the
- <filename role="directory">/dev/stripe</filename> directory in
- addition to the <filename>st0</filename> device. Those include
- <filename>st0a</filename> and <filename>st0c</filename>. Next a
- file system must be created on the device using
- <command>newfs</command>:</para>
+ <screen>&prompt.root; <userinput>newfs -U /dev/stripe/st0a</userinput></screen>
- <screen>&prompt.root; <userinput>newfs -U /dev/stripe/st0a</userinput></screen>
+ <para>Many numbers will glide across the screen, and after a few
+ seconds, the process will be complete. The volume has been
+ created and is ready to be mounted:</para>
+ </step>
+ </procedure>
- <para>Many numbers will glide across the screen, and after a few
- seconds, the process will be complete. The volume has been
- created and is ready to be hung from its <command>mount</command>
- point:</para>
+ <para>The following command can be used to manually mount a newly
+ created disk stripe.</para>
- <screen>&prompt.root; <userinput>mount /dev/stripe/st0a /home</userinput></screen>
+ <screen>&prompt.root; <userinput>mount /dev/stripe/st0a /mnt</userinput></screen>
- <para>Place the volume information in
- <filename>/etc/fstab</filename> file:</para>
+ <para>To mount this striped filesystem automatically during the boot
+ process, place the volume information in
+ <filename>/etc/fstab</filename> file:</para>
- <screen>&prompt.root; <userinput>echo "/dev/stripe/st0a /home ufs rw 2 2" \</userinput>
+ <screen>&prompt.root; <userinput>echo "/dev/stripe/st0a /mnt ufs rw 2 2" \</userinput>
<userinput>&gt;&gt; /etc/fstab</userinput></screen>
- <para>And load the module during system initialization:</para>
+ <para>The geom module must also be automatically loaded during
+ system initialization, by adding a line to
+ <filename>/boot/loader.conf</filename>.</para>
- <screen>&prompt.root; <userinput>echo 'geom_stripe_load="YES"' &gt;&gt; /boot/loader.conf</userinput></screen>
+ <screen>&prompt.root; <userinput>echo 'geom_stripe_load="YES"' &gt;&gt; /boot/loader.conf</userinput></screen>
- <para>From here on, all users will have their data stored on the
- striped volume comprised of the disks concatenated in the
- beginning.</para>
</sect1>
<sect1 id="GEOM-mirror">