From 9c57aa898ba566cd8380c104468c44c07acdd2c8 Mon Sep 17 00:00:00 2001 From: Murray Stokely Date: Sat, 6 Aug 2005 14:28:09 +0000 Subject: [PATCH] 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 tag with individual 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 tag for mouseover on first use of HTML output. * Remove some poorly worded, confusing, and contradictory sentences and paragraphs. --- .../books/handbook/geom/chapter.sgml | 163 +++++++++++------- 1 file changed, 98 insertions(+), 65 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 @@ This chapter covers the use of disks under the new GEOM - framework in &os;. This includes the major - RAID 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 RAID configurations. Only GEOM - supported RAID classifications will be - discussed. + framework in &os;. This includes the major RAID + 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 RAID + configurations. Only GEOM supported RAID + classifications will be discussed. After reading this chapter, you will know: @@ -91,6 +91,20 @@ + + + + Tom + Rhodes + Written by + + + Murray + Stokely + + + + RAID0 - Striping @@ -102,84 +116,103 @@ 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, - SCSI, SATA, - and ATA. The GEOM disk subsystem provides - software support for RAID1, also known as + hardware controllers. The GEOM disk subsystem provides + software support for RAID0, also known as disk striping. - 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 - / partition and the system - will boot from it. Both will be described herein. + In a RAID0 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 RAID0 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. - To stripe several ATA disks, of the same - size of course, load the geom_stripe - module: + Each disk in a RAID0 stripe must be of + the same size, since I/O requests are interleaved to read or + write to multiple disks in parallel. + + + Creating a stripe of unformatted ATA disks + + Load the geom_stripe + module: &prompt.root; kldload geom_stripe.ko + - The module should now be loaded and visible from the output of - kldstat. Now to combine the disks. Ensure - that a mount point exists, if this volume will become a root - partition then temporarily use - /mnt. Otherwise, for the - purpose of our examples, this volume will reside at the - /home mount point. This - process may be complicated if users already exist on the system. - If so, assume the volume will reside on - /data. + Ensure that a suitable mount point exists. If this + volume will become a root partition, then temporarily use + another mount point such as /mnt. - Begin by selecting the disks which will be striped. Our - scenario has two unused, unpartitioned ATA - disks: /dev/ad2 and - /dev/ad3. The module has been loaded and - our disks selected, we will now create the stripe device: + &prompt.root; mkdir /mnt + - &prompt.root; gstripe label -v st0 /dev/ad2 /dev/ad3 + 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 ATA disks: + /dev/ad2 and + /dev/ad3. + &prompt.root; gstripe label -v st0 /dev/ad2 /dev/ad3 + + + - &prompt.root; fdisk -vBI /dev/stripe/st0 + 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: - Create a partition table on the new volume: + &prompt.root; fdisk -vBI /dev/stripe/st0 + - &prompt.root; bsdlabel -wB /dev/stripe/st0 + A partition table must be created on the new volume + with the following command: - This process should have created two other devices in the - /dev/stripe directory in - addition to the st0 device. Those include - st0a and st0c. Next a - file system must be created on the device using - newfs: + &prompt.root; bsdlabel -wB /dev/stripe/st0 - &prompt.root; newfs -U /dev/stripe/st0a + - 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 mount - point: + This process should have created two other devices + in the /dev/stripe + directory in addition to the st0 device. + Those include st0a and + st0c. A file system must now be created + on the st0a device using the following + newfs command: - &prompt.root; mount /dev/stripe/st0a /home + &prompt.root; newfs -U /dev/stripe/st0a - Place the volume information in - /etc/fstab file: + 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: + + - &prompt.root; echo "/dev/stripe/st0a /home ufs rw 2 2" \ + The following command can be used to manually mount a newly + created disk stripe. + + &prompt.root; mount /dev/stripe/st0a /mnt + + To mount this striped filesystem automatically during the boot + process, place the volume information in + /etc/fstab file: + + &prompt.root; echo "/dev/stripe/st0a /mnt ufs rw 2 2" \ >> /etc/fstab - And load the module during system initialization: + The geom module must also be automatically loaded during + system initialization, by adding a line to + /boot/loader.conf. - &prompt.root; echo 'geom_stripe_load="YES"' >> /boot/loader.conf + &prompt.root; echo 'geom_stripe_load="YES"' >> /boot/loader.conf - From here on, all users will have their data stored on the - striped volume comprised of the disks concatenated in the - beginning.