📄 vinum-objects.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta name="generator" content="HTML Tidy, see www.w3.org" /><title>Vinum Objects</title><meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.7" /><link rel="HOME" title="FreeBSD Handbook" href="index.html" /><link rel="UP" title="The Vinum Volume Manager" href="vinum-vinum.html" /><link rel="PREVIOUS" title="Data Integrity" href="vinum-data-integrity.html" /><link rel="NEXT" title="Some Examples" href="vinum-examples.html" /><link rel="STYLESHEET" type="text/css" href="docbook.css" /></head><body class="SECT1" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#840084"alink="#0000FF"><div class="NAVHEADER"><table summary="Header navigation table" width="100%" border="0" cellpadding="0"cellspacing="0"><tr><th colspan="3" align="center">FreeBSD Handbook</th></tr><tr><td width="10%" align="left" valign="bottom"><a href="vinum-data-integrity.html"accesskey="P">Prev</a></td><td width="80%" align="center" valign="bottom">Chapter 17 The Vinum Volume Manager</td><td width="10%" align="right" valign="bottom"><a href="vinum-examples.html"accesskey="N">Next</a></td></tr></table><hr align="LEFT" width="100%" /></div><div class="SECT1"><h1 class="SECT1"><a id="VINUM-OBJECTS" name="VINUM-OBJECTS">17.5 Vinum Objects</a></h1><p>In order to address these problems, Vinum implements a four-level hierarchy ofobjects:</p><ul><li><p>The most visible object is the virtual disk, called a <span class="emphasis"><iclass="EMPHASIS">volume</i></span>. Volumes have essentially the same properties as a<span class="TRADEMARK">UNIX</span>® disk drive, though there are some minordifferences. They have no size limitations.</p></li><li><p>Volumes are composed of <span class="emphasis"><i class="EMPHASIS">plexes</i></span>,each of which represent the total address space of a volume. This level in the hierarchythus provides redundancy. Think of plexes as individual disks in a mirrored array, eachcontaining the same data.</p></li><li><p>Since Vinum exists within the <span class="TRADEMARK">UNIX</span> disk storageframework, it would be possible to use <span class="TRADEMARK">UNIX</span> partitions asthe building block for multi-disk plexes, but in fact this turns out to be tooinflexible: <span class="TRADEMARK">UNIX</span> disks can have only a limited number ofpartitions. Instead, Vinum subdivides a single <span class="TRADEMARK">UNIX</span>partition (the <span class="emphasis"><i class="EMPHASIS">drive</i></span>) intocontiguous areas called <span class="emphasis"><i class="EMPHASIS">subdisks</i></span>,which it uses as building blocks for plexes.</p></li><li><p>Subdisks reside on Vinum <span class="emphasis"><i class="EMPHASIS">drives</i></span>,currently <span class="TRADEMARK">UNIX</span> partitions. Vinum drives can contain anynumber of subdisks. With the exception of a small area at the beginning of the drive,which is used for storing configuration and state information, the entire drive isavailable for data storage.</p></li></ul><p>The following sections describe the way these objects provide the functionalityrequired of Vinum.</p><div class="SECT2"><h2 class="SECT2"><a id="AEN26087" name="AEN26087">17.5.1 Volume SizeConsiderations</a></h2><p>Plexes can include multiple subdisks spread over all drives in the Vinumconfiguration. As a result, the size of an individual drive does not limit the size of aplex, and thus of a volume.</p></div><div class="SECT2"><h2 class="SECT2"><a id="AEN26090" name="AEN26090">17.5.2 Redundant Data Storage</a></h2><p>Vinum implements mirroring by attaching multiple plexes to a volume. Each plex is arepresentation of the data in a volume. A volume may contain between one and eightplexes.</p><p>Although a plex represents the complete data of a volume, it is possible for parts ofthe representation to be physically missing, either by design (by not defining a subdiskfor parts of the plex) or by accident (as a result of the failure of a drive). As long asat least one plex can provide the data for the complete address range of the volume, thevolume is fully functional.</p></div><div class="SECT2"><h2 class="SECT2"><a id="AEN26094" name="AEN26094">17.5.3 Performance Issues</a></h2><p>Vinum implements both concatenation and striping at the plex level:</p><ul><li><p>A <span class="emphasis"><i class="EMPHASIS">concatenated plex</i></span> uses theaddress space of each subdisk in turn.</p></li><li><p>A <span class="emphasis"><i class="EMPHASIS">striped plex</i></span> stripes the dataacross each subdisk. The subdisks must all have the same size, and there must be at leasttwo subdisks in order to distinguish it from a concatenated plex.</p></li></ul></div><div class="SECT2"><h2 class="SECT2"><a id="AEN26104" name="AEN26104">17.5.4 Which PlexOrganization?</a></h2><p>The version of Vinum supplied with FreeBSD 5.2.1 implements two kinds of plex:</p><ul><li><p>Concatenated plexes are the most flexible: they can contain any number of subdisks,and the subdisks may be of different length. The plex may be extended by addingadditional subdisks. They require less <acronym class="ACRONYM">CPU</acronym> time thanstriped plexes, though the difference in <acronym class="ACRONYM">CPU</acronym> overheadis not measurable. On the other hand, they are most susceptible to hot spots, where onedisk is very active and others are idle.</p></li><li><p>The greatest advantage of striped (<acronym class="ACRONYM">RAID-0</acronym>) plexesis that they reduce hot spots: by choosing an optimum sized stripe (about 256 kB),you can even out the load on the component drives. The disadvantages of this approach are(fractionally) more complex code and restrictions on subdisks: they must be all the samesize, and extending a plex by adding new subdisks is so complicated that Vinum currentlydoes not implement it. Vinum imposes an additional, trivial restriction: a striped plexmust have at least two subdisks, since otherwise it is indistinguishable from aconcatenated plex.</p></li></ul><p><a href="vinum-objects.html#VINUM-COMPARISON">Table 17-1</a> summarizes the advantagesand disadvantages of each plex organization.</p><div class="TABLE"><a id="VINUM-COMPARISON" name="VINUM-COMPARISON"></a><p><b>Table 17-1. Vinum Plex Organizations</b></p><table border="0" frame="void" class="CALSTABLE"><col /><col /><col /><col /><col /><thead><tr><th>Plex type</th><th>Minimum subdisks</th><th>Can add subdisks</th><th>Must be equal size</th><th>Application</th></tr></thead><tbody><tr><td>concatenated</td><td>1</td><td>yes</td><td>no</td><td>Large data storage with maximum placement flexibility and moderate performance</td></tr><tr><td>striped</td><td>2</td><td>no</td><td>yes</td><td>High performance in combination with highly concurrent access</td></tr></tbody></table></div></div></div><div class="NAVFOOTER"><hr align="LEFT" width="100%" /><table summary="Footer navigation table" width="100%" border="0" cellpadding="0"cellspacing="0"><tr><td width="33%" align="left" valign="top"><a href="vinum-data-integrity.html"accesskey="P">Prev</a></td><td width="34%" align="center" valign="top"><a href="index.html"accesskey="H">Home</a></td><td width="33%" align="right" valign="top"><a href="vinum-examples.html"accesskey="N">Next</a></td></tr><tr><td width="33%" align="left" valign="top">Data Integrity</td><td width="34%" align="center" valign="top"><a href="vinum-vinum.html"accesskey="U">Up</a></td><td width="33%" align="right" valign="top">Some Examples</td></tr></table></div><p align="center"><small>This, and other documents, can be downloaded from <ahref="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/</a>.</small></p><p align="center"><small>For questions about FreeBSD, read the <ahref="http://www.FreeBSD.org/docs.html">documentation</a> before contacting <<ahref="mailto:questions@FreeBSD.org">questions@FreeBSD.org</a>>.<br />For questions about this documentation, e-mail <<ahref="mailto:doc@FreeBSD.org">doc@FreeBSD.org</a>>.</small></p></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -