diff options
author | Gabor Kovesdan <gabor@FreeBSD.org> | 2013-02-18 15:29:06 +0000 |
---|---|---|
committer | Gabor Kovesdan <gabor@FreeBSD.org> | 2013-02-18 15:29:06 +0000 |
commit | 3ab2d87bc1fdf695c06d9b88641c96fbbf87baba (patch) | |
tree | 3a0150cc96d2a69b6f851e7c64066691c43c6383 /en_US.ISO8859-1/books/handbook/geom/chapter.xml | |
parent | 28d065247c427ed8d21974efc5c1ffc0945666c8 (diff) | |
parent | 193a55160a83348d922e413a188a90c0f731e0fb (diff) | |
download | doc-3ab2d87bc1fdf695c06d9b88641c96fbbf87baba.tar.gz doc-3ab2d87bc1fdf695c06d9b88641c96fbbf87baba.zip |
- MFH
Notes
Notes:
svn path=/projects/xml-tools/; revision=41007
Diffstat (limited to 'en_US.ISO8859-1/books/handbook/geom/chapter.xml')
-rw-r--r-- | en_US.ISO8859-1/books/handbook/geom/chapter.xml | 447 |
1 files changed, 212 insertions, 235 deletions
diff --git a/en_US.ISO8859-1/books/handbook/geom/chapter.xml b/en_US.ISO8859-1/books/handbook/geom/chapter.xml index 94875ac9f2..603e7f00b4 100644 --- a/en_US.ISO8859-1/books/handbook/geom/chapter.xml +++ b/en_US.ISO8859-1/books/handbook/geom/chapter.xml @@ -35,11 +35,11 @@ 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> + This information is provided in &man.geom.4; and its various + <literal>SEE ALSO</literal> references. This chapter is also + not a definitive guide to <acronym>RAID</acronym> configurations + and only GEOM-supported <acronym>RAID</acronym> classifications + will be discussed.</para> <para>After reading this chapter, you will know:</para> @@ -70,13 +70,13 @@ <itemizedlist> <listitem> - <para>Understand how &os; treats disk devices - (<xref linkend="disks"/>).</para> + <para>Understand how &os; treats <link + linkend="disks">disk devices</link>.</para> </listitem> <listitem> - <para>Know how to configure and install a new &os; kernel - (<xref linkend="kernelconfig"/>).</para> + <para>Know how to configure and install a new <link + linkend="kernelconfig">&os; kernel</link>.</para> </listitem> </itemizedlist> </sect1> @@ -84,12 +84,12 @@ <sect1 id="GEOM-intro"> <title>GEOM Introduction</title> - <para>GEOM permits access and control to classes — Master - Boot Records, <acronym>BSD</acronym> labels, etc — through - the use of providers, or the special files in - <filename class="directory">/dev</filename>. Supporting various - software <acronym>RAID</acronym> configurations, GEOM will - transparently provide access to the operating system and + <para>GEOM permits access and control to classes, such as Master + Boot Records and <acronym>BSD</acronym> labels, through the use + of providers, or the special files in <filename + class="directory">/dev</filename>. By supporting various + software <acronym>RAID</acronym> configurations, GEOM + transparently provides access to the operating system and operating system utilities.</para> </sect1> @@ -117,13 +117,13 @@ <primary>Striping</primary> </indexterm> - <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. The GEOM disk subsystem provides - software support for <acronym>RAID</acronym>0, also known as - disk striping.</para> + <para>Striping combine several disk drives into a single volume. + In many cases, this is done through the use of hardware + controllers. The GEOM disk subsystem provides software support + for <acronym>RAID</acronym>0, also known as disk + striping.</para> - <para>In a <acronym>RAID</acronym>0 system, data are split up in + <para>In a <acronym>RAID</acronym>0 system, data is split into 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 @@ -168,7 +168,7 @@ <para>Determine the device names for the disks which will be striped, and create the new stripe device. For example, to stripe two unused and unpartitioned - <acronym>ATA</acronym> disks, for example + <acronym>ATA</acronym> disks with device names of <filename>/dev/ad2</filename> and <filename>/dev/ad3</filename>:</para> @@ -179,21 +179,21 @@ Done.</screen> </step> <step> - <para>Write a standard label, also known as a partition - table, on the new volume and install the default - bootstrap code:</para> + <para>Write a standard label, also known as a partition table, + on the new volume and install the default bootstrap + code:</para> <screen>&prompt.root; <userinput>bsdlabel -wB /dev/stripe/st0</userinput></screen> </step> <step> - <para>This process should have created two other devices - in the <filename class="directory">/dev/stripe</filename> - directory in addition to the <devicename>st0</devicename> - device. Those include <devicename>st0a</devicename> and - <devicename>st0c</devicename>. At this point a file system - may be created on the <devicename>st0a</devicename> device - with the <command>newfs</command> utility:</para> + <para>This process should create two other devices in + <filename class="directory">/dev/stripe</filename> in + addition to <devicename>st0</devicename>. Those include + <devicename>st0a</devicename> and + <devicename>st0c</devicename>. At this point, a file system + may be created on <devicename>st0a</devicename> using + <command>newfs</command>:</para> <screen>&prompt.root; <userinput>newfs -U /dev/stripe/st0a</userinput></screen> @@ -209,10 +209,9 @@ Done.</screen> <para>To mount this striped file system automatically during the boot process, place the volume information in - <filename>/etc/fstab</filename> file. For this purpose, a - permanent mount point, named - <filename class="directory">stripe</filename>, is - created:</para> + <filename>/etc/fstab</filename>. In this example, a + permanent mount point, named <filename + class="directory">stripe</filename>, is created:</para> <screen>&prompt.root; <userinput>mkdir /stripe</userinput> &prompt.root; <userinput>echo "/dev/stripe/st0a /stripe ufs rw 2 2" \</userinput> @@ -249,8 +248,8 @@ Done.</screen> replace the failed drive without user interruption.</para> <para>Two common situations are illustrated in these examples. - The first is creating a mirror out of two new drives and using - it as a replacement for an existing single drive. The second + The first creates a mirror out of two new drives and uses it + as a replacement for an existing single drive. The second example creates a mirror on a single new drive, copies the old drive's data to it, then inserts the old drive into the mirror. While this procedure is slightly more complicated, it @@ -323,14 +322,14 @@ Done.</screen> <screen>&prompt.root; <userinput>gmirror load</userinput></screen> - <para>Create the mirror with the two new drives.</para> + <para>Create the mirror with the two new drives:</para> <screen>&prompt.root; <userinput>gmirror label -v gm0 /dev/ada1 /dev/ada2</userinput></screen> <para><devicename>gm0</devicename> is a user-chosen device name assigned to the new mirror. After the mirror has been - started, this device name will appear in the - <filename>/dev/mirror/</filename> directory.</para> + started, this device name will appear in + <filename>/dev/mirror/</filename>.</para> <para>MBR and bsdlabel partition tables can now be created on the mirror with &man.gpart.8;. Here we show a traditional @@ -384,8 +383,8 @@ Done.</screen> &prompt.root; <userinput>newfs -U /dev/mirror/gm0s1e</userinput> &prompt.root; <userinput>newfs -U /dev/mirror/gm0s1f</userinput></screen> - <para>Filesystems from the original disk - (<devicename>ada0</devicename>) can now be copied onto the + <para>Filesystems from the original + <devicename>ada0</devicename> disk can now be copied onto the mirror with &man.dump.8; and &man.restore.8;.</para> <screen>&prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput> @@ -419,8 +418,8 @@ Done.</screen> are identical, it does not matter which is selected to boot.</para> - <para>See the - <link linkend="gmirror-troubleshooting">Troubleshooting</link> + <para>See the <link + linkend="gmirror-troubleshooting">Troubleshooting</link> section if there are problems booting. Powering down and disconnecting the original <devicename>ada0</devicename> disk will allow it to be kept as an offline backup.</para> @@ -436,19 +435,19 @@ Done.</screen> single disk, <devicename>ada0</devicename>. A new disk, <devicename>ada1</devicename>, has been connected to the system. A one-disk mirror will be created on the new disk, - the existing system copied onto it, and then the old disk will be - inserted into the mirror. This slightly complex procedure is - required because &man.gmirror.8; needs to put a 512-byte block - of metadata at the end of each disk, and the existing + the existing system copied onto it, and then the old disk will + be inserted into the mirror. This slightly complex procedure + is required because &man.gmirror.8; needs to put a 512-byte + block of metadata at the end of each disk, and the existing <devicename>ada0</devicename> has usually had all of its space already allocated.</para> - <para>Load the &man.gmirror.8; kernel module.</para> + <para>Load the &man.gmirror.8; kernel module:</para> <screen>&prompt.root; <userinput>gmirror load</userinput></screen> <para>Check the media size of the original disk with - &man.diskinfo.8;.</para> + &man.diskinfo.8;:</para> <screen>&prompt.root; <userinput>diskinfo -v ada0 | head -n3</userinput> /dev/ada0 @@ -461,7 +460,7 @@ Done.</screen> size. This drive does not store any data, but is used only to limit the size of the mirror. When &man.gmirror.8; creates the mirror, it will restrict the capacity to the size of - <devicename>gzero.nop</devicename> even if the new drive + <devicename>gzero.nop</devicename>, even if the new drive (<devicename>ada1</devicename>) has more space. Note that the <replaceable>1000204821504</replaceable> in the second line should be equal to <devicename>ada0</devicename>'s media size @@ -502,7 +501,7 @@ Done.</screen> be explained later.</para> <para>In either case, partition tables on the primary disk - should be copied first. It can be done by using &man.gpart.8; + should be copied first with the &man.gpart.8; <command>backup</command> and <command>restore</command> subcommands.</para> @@ -527,11 +526,12 @@ BSD 8 6 freebsd-ufs 130023424 838860800 7 freebsd-ufs 968884224 984640881</screen> - <para>If the whole disk was used in the output of &man.gpart.8; - <command>show</command>, the capacity in these partition - tables must be reduced by one sector. Edit the two files, - reducing the size of both the slice and last partition by one. - These are the last numbers in each listing.</para> + <para>If the output of <command>gpart show</command> shows no + free space at the end of the disk, the size of both the slice + and the last partition must be reduced by one sector. Edit + the two files, reducing the size of both the slice and last + partition by one. These are the last numbers in each + listing.</para> <screen>&prompt.root; <userinput>cat table.ada0</userinput> MBR 4 @@ -550,13 +550,13 @@ BSD 8 disk, these two files can be used without modification.</para> <para>Now restore the partition table into - <devicename>mirror/gm0</devicename>.</para> + <devicename>mirror/gm0</devicename>:</para> <screen>&prompt.root; <userinput>gpart restore mirror/gm0 < table.ada0</userinput> &prompt.root; <userinput>gpart restore mirror/gm0s1 < table.ada0s1</userinput></screen> - <para>Check the partition table with the &man.gpart.8; - <command>show</command>. This example has + <para>Check the partition table with + <command>gpart show</command>. This example has <devicename>gm0s1a</devicename> for <filename>/</filename>, <devicename>gm0s1d</devicename> for <filename>/var</filename>, <devicename>gm0s1e</devicename> for <filename>/usr</filename>, @@ -707,8 +707,7 @@ mirror/gm0 COMPLETE ada1 (ACTIVE) <para>BIOS settings may have to be changed to boot from one of the new mirrored drives. Either mirror drive can be - used for booting. As components of a mirror, they contain - identical data.</para> + used for booting, as they contain identical data.</para> </sect4> <sect4> @@ -742,10 +741,10 @@ mountroot></screen> <para>Forgetting to load the <filename>geom_mirror</filename> module in <filename>/boot/loader.conf</filename> can cause this - problem. To fix it, boot from a &os;-9 or later CD or USB - stick and choose <literal>Shell</literal> at the first - prompt. Then load the mirror module and mount the mirror - device:</para> + problem. To fix it, boot from a &os; 9.0 or later + installation media and choose <literal>Shell</literal> at + the first prompt. Then load the mirror module and mount + the mirror device:</para> <screen>&prompt.root; <userinput>gmirror load</userinput> &prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput></screen> @@ -759,8 +758,8 @@ mountroot></screen> <para>Other problems that cause <literal>error 19</literal> require more effort to fix. Enter - <literal>ufs:/dev/ada0s1a</literal> at the prompt. - Although the system should boot from + <literal>ufs:/dev/ada0s1a</literal> at the boot loader + prompt. Although the system should boot from <devicename>ada0</devicename>, another prompt to select a shell appears because <filename>/etc/fstab</filename> is incorrect. Press the Enter key at the prompt. Undo the @@ -780,24 +779,20 @@ mountroot></screen> <sect2> <title>Recovering from Disk Failure</title> - <para>The wonderful part about disk mirroring is that an - individual disk can fail without causing the mirror to lose - any data.</para> - - <para><devicename>ada0</devicename> is one of two drives making - up the mirror in the previous example. If - <devicename>ada0</devicename> fails, the mirror will continue - to work, providing data from the remaining working drive, - <devicename>ada1</devicename>.</para> - - <para>To replace the failed drive, the computer is shut down and - the failed drive is physically replaced with a new drive of - equal or greater capacity. Manufacturers use somewhat - arbitrary values when rating drives in gigabytes, and the - only way to really be sure is to compare the total count of - sectors shown by <command>diskinfo -v</command>. A drive with - larger capacity than the mirror will work, although the extra - space on the new drive will not be used.</para> + <para>The benefit of disk mirroring is that an individual disk + can fail without causing the mirror to lose any data. In the + above example, if <devicename>ada0</devicename> fails, the + mirror will continue to work, providing data from the + remaining working drive, <devicename>ada1</devicename>.</para> + + <para>To replace the failed drive, shut down the system and + physically replace the failed drive with a new drive of equal + or greater capacity. Manufacturers use somewhat arbitrary + values when rating drives in gigabytes, and the only way to + really be sure is to compare the total count of sectors shown + by <command>diskinfo -v</command>. A drive with larger + capacity than the mirror will work, although the extra space + on the new drive will not be used.</para> <para>After the computer is powered back up, the mirror will be running in a <quote>degraded</quote> mode with only one drive. @@ -866,18 +861,18 @@ mountroot></screen> </indexterm> <para><acronym>RAID</acronym>3 is a method used to combine several - disk drives into a single volume with a dedicated parity - disk. In a <acronym>RAID</acronym>3 system, data is split up - into a number of bytes that are written across all the drives in - the array except for one disk which acts as a dedicated parity - disk. This means that reading 1024KB from a + disk drives into a single volume with a dedicated parity disk. + In a <acronym>RAID</acronym>3 system, data is split up into a + number of bytes that are written across all the drives in the + array except for one disk which acts as a dedicated parity disk. + This means that reading 1024KB from a <acronym>RAID</acronym>3 implementation will access all disks in - the array. Performance can be enhanced by using multiple - disk controllers. The <acronym>RAID</acronym>3 array provides a + the array. Performance can be enhanced by using multiple disk + controllers. The <acronym>RAID</acronym>3 array provides a fault tolerance of 1 drive, while providing a capacity of 1 - 1/n times the total capacity of all drives in the array, where n is the number of hard drives in the array. Such a configuration - is mostly suitable for storing data of larger sizes, e.g., + is mostly suitable for storing data of larger sizes such as multimedia files.</para> <para>At least 3 physical hard drives are required to build a @@ -885,7 +880,7 @@ mountroot></screen> size, since I/O requests are interleaved to read or write to multiple disks in parallel. Also, due to the nature of <acronym>RAID</acronym>3, the number of drives must be - equal to 3, 5, 9, 17, etc. (2^n + 1).</para> + equal to 3, 5, 9, 17, and so on, or 2^n + 1.</para> <sect2> <title>Creating a Dedicated <acronym>RAID</acronym>3 @@ -955,11 +950,7 @@ Done.</screen> <para>Many numbers will glide across the screen, and after a bit of time, the process will be complete. The volume has - been created and is ready to be mounted.</para> - </step> - - <step> - <para>The last step is to mount the file system:</para> + been created and is ready to be mounted:</para> <screen>&prompt.root; <userinput>mount /dev/raid3/gr0p1 /multimedia/</userinput></screen> @@ -975,16 +966,16 @@ Done.</screen> <step> <para>The <filename>geom_raid3.ko</filename> module must be loaded before the array can be mounted. To automatically - load the kernel module during the system initialization, - add the following line to the - <filename>/boot/loader.conf</filename> file:</para> + load the kernel module during system initialization, add + the following line to + <filename>/boot/loader.conf</filename>:</para> <programlisting>geom_raid3_load="YES"</programlisting> </step> <step> - <para>The following volume information must be added to the - <filename>/etc/fstab</filename> file in order to + <para>The following volume information must be added to + <filename>/etc/fstab</filename> in order to automatically mount the array's file system during the system boot process:</para> @@ -998,7 +989,7 @@ Done.</screen> <title>GEOM Gate Network Devices</title> <para>GEOM supports the remote use of devices, such as disks, - CD-ROMs, files, etc. through the use of the gate utilities. + CD-ROMs, and files through the use of the gate utilities. This is similar to <acronym>NFS</acronym>.</para> <para>To begin, an exports file must be created. This file @@ -1010,8 +1001,8 @@ Done.</screen> <programlisting>192.168.1.0/24 RW /dev/da0s4d</programlisting> - <para>It will allow all hosts inside the private network access - the file system on the <devicename>da0s4d</devicename> + <para>This allows all hosts inside the specified private network + access to the file system on the <devicename>da0s4d</devicename> partition.</para> <para>To export this device, ensure it is not currently mounted, @@ -1019,25 +1010,24 @@ Done.</screen> <screen>&prompt.root; <userinput>ggated</userinput></screen> - <para>Now to <command>mount</command> the device on the client + <para>To <command>mount</command> the device on the client machine, issue the following commands:</para> <screen>&prompt.root; <userinput>ggatec create -o rw 192.168.1.1 /dev/da0s4d</userinput> ggate0 &prompt.root; <userinput>mount /dev/ggate0 /mnt</userinput></screen> - <para>From here on, the device may be accessed through the - <filename class="directory">/mnt</filename> mount point.</para> + <para>The device may now be accessed through the <filename + class="directory">/mnt</filename> mount point.</para> <note> - <para>It should be pointed out that this will fail if the device - is currently mounted on either the server machine or any other - machine on the network.</para> + <para>However, this will fail if the device is currently mounted + on either the server machine or any other machine on the + network.</para> </note> - <para>When the device is no longer needed, it may be safely - unmounted with the &man.umount.8; command, similar to any other - disk device.</para> + <para>When the device is no longer needed, unmount it with + &man.umount.8;, similar to any other disk device.</para> </sect1> <sect1 id="geom-glabel"> @@ -1050,34 +1040,32 @@ ggate0 <primary>Disk Labels</primary> </indexterm> - <para>During system initialization, the &os; kernel will create + <para>During system initialization, the &os; kernel creates device nodes as devices are found. This method of probing for - devices raises some issues, for instance what if a new disk - device is added via <acronym>USB</acronym>? It is very likely - that a flash device may be handed the device name of + devices raises some issues. For instance, what if a new disk + device is added via <acronym>USB</acronym>? It is likely that + a flash device may be handed the device name of <devicename>da0</devicename> and the original <devicename>da0</devicename> shifted to <devicename>da1</devicename>. This will cause issues mounting file systems if they are listed in - <filename>/etc/fstab</filename>, effectively, this may also - prevent the system from booting.</para> - - <para>One solution to this issue is to chain the - <acronym>SCSI</acronym> devices in order so a new device added - to the <acronym>SCSI</acronym> card will be issued unused device - numbers. But what about <acronym>USB</acronym> devices which - may replace the primary <acronym>SCSI</acronym> disk? This - happens because <acronym>USB</acronym> devices are usually - probed before the <acronym>SCSI</acronym> card. One solution is - to only insert these devices after the system has been booted. - Another method could be to use only a single - <acronym>ATA</acronym> drive and never list the - <acronym>SCSI</acronym> devices in + <filename>/etc/fstab</filename> which may also prevent the + system from booting.</para> + + <para>One solution is to chain <acronym>SCSI</acronym> devices + in order so a new device added to the <acronym>SCSI</acronym> + card will be issued unused device numbers. But what about + <acronym>USB</acronym> devices which may replace the primary + <acronym>SCSI</acronym> disk? This happens because + <acronym>USB</acronym> devices are usually probed before the + <acronym>SCSI</acronym> card. One solution is to only insert + these devices after the system has been booted. Another method + is to use only a single <acronym>ATA</acronym> drive and never + list the <acronym>SCSI</acronym> devices in <filename>/etc/fstab</filename>.</para> - <para>A better solution is available. By using the - <command>glabel</command> utility, an administrator or user may - label their disk devices and use these labels in + <para>A better solution is to use <command>glabel</command> to + label the disk devices and use the labels in <filename>/etc/fstab</filename>. Because <command>glabel</command> stores the label in the last sector of a given provider, the label will remain persistent across @@ -1086,39 +1074,33 @@ ggate0 through.</para> <note> - <para>This goes without saying that a label be permanent. The - <command>glabel</command> utility may be used to create both a - transient and permanent label. Only the permanent label will - remain consistent across reboots. See the &man.glabel.8; - manual page for more information on the differences between - labels.</para> + <para><command>glabel</command> can create both transient and + permanent labels. Only permanent labels are consistent across + reboots. Refer to &man.glabel.8; for more information on the + differences between labels.</para> </note> <sect2> <title>Label Types and Examples</title> - <para>There are two types of labels, a generic label and a - file system label. Labels can be permanent or temporary. - Permanent labels can be created with the &man.tunefs.8; - or &man.newfs.8; commands. They will then be created - in a sub-directory of - <filename class="directory">/dev</filename>, which will be - named according to their file system type. For example, + <para>Permanent labels can be a generic or a file system label. + Permanent file system labels can be created with + &man.tunefs.8; or &man.newfs.8;. These types of labels are + created in a sub-directory of <filename + class="directory">/dev</filename>, and will be named + according to the file system type. For example, <acronym>UFS</acronym>2 file system labels will be created in - the <filename class="directory">/dev/ufs</filename> directory. - Permanent labels can also be created with the <command>glabel - label</command> command. These are not file system specific, - and will be created in the - <filename class="directory">/dev/label</filename> - directory.</para> - - <para>A temporary label will go away with the next reboot. - These labels will be created in the - <filename class="directory">/dev/label</filename> directory - and are perfect for experimentation. A temporary label can be - created using the <command>glabel create</command> command. - For more information, please read the manual page of - &man.glabel.8;.</para> + <filename class="directory">/dev/ufs</filename>. Generic + permanent labels can be created with <command>glabel + label</command>. These are not file system specific and + will be created in <filename + class="directory">/dev/label</filename>.</para> + + <para>Temporary labels are destroyed at the next reboot. These + labels are created in <filename + class="directory">/dev/label</filename> and are suited to + experimentation. A temporary label can be created using + <command>glabel create</command>.</para> <!-- XXXTR: How do you create a file system label without running newfs or when there is no newfs (e.g.: cd9660)? --> @@ -1131,14 +1113,12 @@ ggate0 <warning> <para>If the file system is full, this may cause data - corruption; however, if the file system is full then the - main goal should be removing stale files and not adding - labels.</para> + corruption.</para> </warning> - <para>A label should now exist in - <filename class="directory">/dev/ufs</filename> which may be - added to <filename>/etc/fstab</filename>:</para> + <para>A label should now exist in <filename + class="directory">/dev/ufs</filename> which may be added + to <filename>/etc/fstab</filename>:</para> <programlisting>/dev/ufs/home /home ufs rw 2 2</programlisting> @@ -1147,7 +1127,7 @@ ggate0 to run <command>tunefs</command>.</para> </note> - <para>Now the file system may be mounted like normal:</para> + <para>Now the file system may be mounted:</para> <screen>&prompt.root; <userinput>mount /home</userinput></screen> @@ -1160,8 +1140,8 @@ ggate0 <para>File systems may also be created with a default label by using the <option>-L</option> flag with - <command>newfs</command>. See the &man.newfs.8; manual page - for more information.</para> + <command>newfs</command>. Refer to &man.newfs.8; for + more information.</para> <para>The following command can be used to destroy the label:</para> @@ -1185,7 +1165,7 @@ ggate0 <filename class="directory">/</filename>, <filename class="directory">/var</filename>, <filename class="directory">/usr</filename> and - <filename class="directory">/tmp</filename> file systems, as + <filename class="directory">/tmp</filename>, as well as a swap partition.</para> <para>Reboot the system, and at the &man.loader.8; prompt, @@ -1207,8 +1187,8 @@ GEOM_LABEL: Label for provider /dev/ad0s1b is label/swap <para>The system will continue with multi-user boot. After the boot completes, edit <filename>/etc/fstab</filename> and replace the conventional device names, with their respective - labels. The final <filename>/etc/fstab</filename> file will - look like the following:</para> + labels. The final <filename>/etc/fstab</filename> will + look like this:</para> <programlisting># Device Mountpoint FStype Options Dump Pass# /dev/label/swap none swap sw 0 0 @@ -1232,24 +1212,23 @@ devfs on /dev (devfs, local) <para>Starting with &os; 7.2, the &man.glabel.8; class supports a new label type for <acronym>UFS</acronym> file systems, based on the unique file system id, - <literal>ufsid</literal>. These labels may be found in the - <filename class="directory">/dev/ufsid</filename> directory - and are created automatically during system startup. It is - possible to use <literal>ufsid</literal> labels to mount - partitions using the <filename>/etc/fstab</filename> facility. - Use the <command>glabel status</command> command to receive a - list of file systems and their corresponding - <literal>ufsid</literal> labels:</para> + <literal>ufsid</literal>. These labels may be found in + <filename class="directory">/dev/ufsid</filename> and are + created automatically during system startup. It is possible + to use <literal>ufsid</literal> labels to mount partitions + using <filename>/etc/fstab</filename>. Use <command>glabel + status</command> to receive a list of file systems and their + corresponding <literal>ufsid</literal> labels:</para> <screen>&prompt.user; <userinput>glabel status</userinput> Name Status Components ufsid/486b6fc38d330916 N/A ad4s1d ufsid/486b6fc16926168e N/A ad4s1f</screen> - <para>In the above example <devicename>ad4s1d</devicename> - represents the <filename class="directory">/var</filename> - file system, while <devicename>ad4s1f</devicename> represents - the <filename class="directory">/usr</filename> file system. + <para>In the above example, <devicename>ad4s1d</devicename> + represents <filename class="directory">/var</filename>, + while <devicename>ad4s1f</devicename> represents + <filename class="directory">/usr</filename>. Using the <literal>ufsid</literal> values shown, these partitions may now be mounted with the following entries in <filename>/etc/fstab</filename>:</para> @@ -1258,9 +1237,9 @@ ufsid/486b6fc16926168e N/A ad4s1f</screen> /dev/ufsid/486b6fc16926168e /usr ufs rw 2 2</programlisting> <para>Any partitions with <literal>ufsid</literal> labels can be - mounted in this way, eliminating the need to create permanent - labels for them manually, while still enjoying the benefits of - device-name independent mounting.</para> + mounted in this way, eliminating the need to manually create + permanent labels, while still enjoying the benefits of device + name independent mounting.</para> </sect2> </sect1> @@ -1274,51 +1253,50 @@ ufsid/486b6fc16926168e N/A ad4s1f</screen> <primary>Journaling</primary> </indexterm> - <para>With the release of &os; 7.0, the long awaited feature - of journals has been implemented. The implementation itself is - provided through the <acronym>GEOM</acronym> subsystem and is - easily configured via the &man.gjournal.8; utility.</para> - - <para>What is journaling? Journaling capability stores a log of - file system transactions, i.e.: changes that make up a complete - disk write operation, before meta-data and file writes are - committed to the disk proper. This transaction log can later - be replayed to redo file system transactions, preventing file - system inconsistencies.</para> - - <para>This method is yet another mechanism to protect against data - loss and inconsistencies of the file system. Unlike Soft - Updates which tracks and enforces meta-data updates and - Snapshots which is an image of the file system, an actual log is - stored in disk space specifically reserved for this task, and in - some cases may be stored on another disk entirely.</para> + <para>Beginning with &os; 7.0, support for UFS journals is + available. The implementation is provided through the + <acronym>GEOM</acronym> subsystem and is configured using + &man.gjournal.8;.</para> + + <para>Journaling stores a log of file system transactions, such as + changes that make up a complete disk write operation, before + meta-data and file writes are committed to the disk. This + transaction log can later be replayed to redo file system + transactions, preventing file system inconsistencies.</para> + + <para>This method provides another mechanism to protect against + data loss and inconsistencies of the file system. Unlike Soft + Updates, which tracks and enforces meta-data updates, and + snapshots, which create an image of the file system, a log is + stored in disk space specifically for this task, and in + some cases, may be stored on another disk entirely.</para> <para>Unlike other file system journaling implementations, the <command>gjournal</command> method is block based and not - implemented as part of the file system - only as a + implemented as part of the file system. It is a <acronym>GEOM</acronym> extension.</para> <para>To enable support for <command>gjournal</command>, the - &os; kernel must have the following option - which is the - default on &os; 7.0 and later systems:</para> + &os; kernel must have the following option which is the + default on &os; 7.0 and later:</para> <programlisting>options UFS_GJOURNAL</programlisting> <para>If journaled volumes need to be mounted during startup, the - <filename>geom_journal.ko</filename> kernel module will also - have to be loaded, by adding the following line in + <filename>geom_journal.ko</filename> kernel module needs to be + loaded, by adding the following line to <filename>/boot/loader.conf</filename>:</para> <programlisting>geom_journal_load="YES"</programlisting> - <para>Alternatively, this function can also be built into a custom + <para>Alternatively, this function can be built into a custom kernel, by adding the following line in the kernel configuration file:</para> <programlisting>options GEOM_JOURNAL</programlisting> <para>Creating a journal on a free file system may now be done - using the following steps, considering that the + using the following steps. In this example, <devicename>da4</devicename> is a new <acronym>SCSI</acronym> disk:</para> @@ -1332,12 +1310,11 @@ ufsid/486b6fc16926168e N/A ad4s1f</screen> <screen>&prompt.root; <userinput>newfs -O 2 -J /dev/da4.journal</userinput></screen> - <para>The previously issued command will create a - <acronym>UFS</acronym>2 file system on the journaled - device.</para> + <para>This command will creates a <acronym>UFS</acronym>2 file + system on the journaled device.</para> - <para>Effectively <command>mount</command> the device at the - desired point with:</para> + <para><command>mount</command> the device at the desired point + with:</para> <screen>&prompt.root; <userinput>mount /dev/da4.journal <replaceable>/mnt</replaceable></userinput></screen> @@ -1351,21 +1328,21 @@ ufsid/486b6fc16926168e N/A ad4s1f</screen> <devicename>ad4s2.journal</devicename>.</para> </note> - <para>For better performance, keeping the journal on another disk - may be desired. For these cases, the journal provider or - storage device should be listed after the device to enable - journaling on. Journaling may also be enabled on current file - systems by using <command>tunefs</command>; however, always make - a backup before attempting to alter a file system. In most - cases, the <command>gjournal</command> will fail if it is unable - to create the actual journal but this does not protect against - data loss incurred as a result of misusing + <para>For better performance, the journal may be kept on another + disk. In this configuration, the journal provider or storage + device should be listed after the device to enable journaling + on. Journaling may also be enabled on current file systems by + using <command>tunefs</command>. However, + <emphasis>always</emphasis> make a backup before attempting to + alter a file system. In most cases, <command>gjournal</command> + will fail if it is unable to create the journal, but this does + not protect against data loss incurred as a result of misusing <command>tunefs</command>.</para> <para>It is also possible to journal the boot disk of a &os; - system. Please refer to the article <ulink + system. Refer to the article <ulink url="&url.articles.gjournal-desktop;">Implementing UFS - Journaling on a Desktop PC</ulink> for detailed instructions - on this task.</para> + Journaling on a Desktop PC</ulink> for detailed + instructions.</para> </sect1> </chapter> |