aboutsummaryrefslogtreecommitdiff
path: root/zh_CN.GB2312/books/handbook/vinum/chapter.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'zh_CN.GB2312/books/handbook/vinum/chapter.sgml')
-rw-r--r--zh_CN.GB2312/books/handbook/vinum/chapter.sgml85
1 files changed, 43 insertions, 42 deletions
diff --git a/zh_CN.GB2312/books/handbook/vinum/chapter.sgml b/zh_CN.GB2312/books/handbook/vinum/chapter.sgml
index c07724c0b9..875780386d 100644
--- a/zh_CN.GB2312/books/handbook/vinum/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/vinum/chapter.sgml
@@ -8,7 +8,7 @@
For the FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
- Original Revision: 1.40
+ Original Revision: 1.41
$FreeBSD$
-->
@@ -47,7 +47,7 @@
例如使用多个, 有些时候甚至是冗余的, 磁盘。</para>
<para>除了支持许多种不同的硬件 RAID 控制器之外,
-FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。</para>
+FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现虚拟磁盘驱动器的块设备。</para>
<para>Vinum 提供了比传统磁盘存储更好的灵活性、性能和可靠性,
它还实现了 RAID-0, RAID-1, 以及 RAID-5
@@ -174,7 +174,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。
<emphasis>分段(striping)</emphasis> 或者 <acronym>RAID-0</acronym>
<footnote>
- <para><acronym>RAID</acronym> 代表<emphasis>廉价磁盘容错(Redundant
+ <para><acronym>RAID</acronym> 代表<emphasis>廉价冗余磁盘阵列 (Redundant
Array of Inexpensive Disks)</emphasis> 提供各种容错机制,
但后面这个术语可能会有些让人误解:它不提供冗余功能。</para> </footnote>.
@@ -194,10 +194,11 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。
<sect1 id="vinum-data-integrity">
<title>数据的完整性</title>
- <para>T当前磁盘的最后一个问题是它们不太可靠。虽然磁盘驱动器
- 的可靠性在过去几年有了很大的提高,它们仍然是会损坏的服务器的
- 最核心组件。当它们发生故障的时候, 结果可能是灾难性的:
- 替换一个坏的磁盘驱动器,然后恢复数据可能要花费几天时间。
+ <para>现时磁盘的最后一个问题是它们不太可靠。
+ 虽然磁盘驱动器的可靠性在过去几年有了很大的提高,
+ 但它们仍然是服务器中最容易损坏的核心组件。
+ 当它们发生故障的时候, 结果可能是灾难性的:
+ 替换坏的磁盘驱动器并恢复数据可能要花费几天时间。
</para>
<indexterm>
@@ -211,12 +212,12 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。
<primary>RAID-1</primary>
</indexterm>
- <para>解决这个问题的传统方法是建立镜象
- <emphasis>镜象</emphasis>, 在不同的物理硬件上对数据做两个副本。
- 由于<acronym>RAID</acronym> 的出现levels, 所以这个技术也被叫做
- <acronym>第一级RAID</acronym> 或者
- <acronym>RAID-1</acronym>. 任何写到卷的数据也会被写到镜象上,所
- 以可以从任何一个副本读取数据, 如果其中有一个出现故障,
+ <para>解决这个问题的传统方法是建立
+ <emphasis>镜象</emphasis>, 在不同的物理硬件上对数据做两个副本。
+ 根据 <acronym>RAID</acronym> 级别出现的时间顺序, 这个技术也被叫做
+ <acronym>RAID 级别1</acronym> 或者
+ <acronym>RAID-1</acronym>。 任何写到卷的数据也会被写到镜象上,
+ 所以可以从任何一个副本读取数据, 如果其中有一个出现故障,
数据也还可以从其他驱动器上访问到。</para>
<para>镜象有两个问题:</para>
@@ -228,14 +229,14 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。
<listitem>
<para>性能影响。 写入操作必须在两个驱动器上执行,所以它们
- 花费两倍的带宽。读取数据并不会影响性能:看起来它们会更快。</para>
+ 花费两倍的带宽。读取数据并不会影响性能: 它们甚至看起来会更快。</para>
</listitem>
</itemizedlist>
- <para><indexterm><primary>RAID-5</primary></indexterm>一个
- 可选的方案采用 <emphasis>parity</emphasis>,
- 其实现了 <acronym>RAID</acronym> 2, 3, 4 和
- 5. 而其中, <acronym>RAID-5</acronym> 是我们最感兴趣的。
+ <para><indexterm><primary>RAID-5</primary></indexterm>
+ 一个可选的方案采用 <emphasis>奇偶校验</emphasis> 的方式,
+ 用以实现 <acronym>RAID</acronym> 2、 3、 4 和
+ 5。 这其中, <acronym>RAID-5</acronym> 是我们最感兴趣的。
在 Vinum 的实现中, 这是一个条带组织结构的变体,
其中, 每一个条带中都以一个专用的块,
来保存其它块的奇偶校验值。 这样,
@@ -269,7 +270,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。
<itemizedlist>
<listitem>
- <para>T最显著的目标是虚拟磁盘, 叫做
+ <para>最显著的目标是虚拟磁盘, 叫做
<emphasis>卷(volume)</emphasis>. 卷本质上与一个UNIX 磁盘
驱动器有同样的属性,虽然它们是有些不太一样。它们没有大小的限制。
</para>
@@ -315,7 +316,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。
每个plex 是一个在一个卷中的数据的描述。一个卷可以包含一个
到八个plex。</para>
- <para>Although虽然一个plex 描述了一个卷的所有数据,,
+ <para>虽然一个plex 描述了一个卷的所有数据,,
但可能描述的部分被物理地丢失了。可能是设计的问题
(没有为plex 部分定义一个subdisk)也可能是意外的故障
(由于驱动器的故障导致)。只要至少有一个plex 能够为
@@ -350,8 +351,8 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。
<listitem>
<para>串联的plex 更加灵活:它们可以包含任何数量的subdisk,
subdisk 也可能有不同的长度。Plex 可以通过添加额外的subdisk
- 来得到扩展。 它们需要更少的
- <acronym>CPU</acronym> 时钟相对分段plexes, 尽管
+ 来得到扩展。 与分段 plex 不同, 它们需要的
+ <acronym>CPU</acronym> 时钟更少, 尽管
<acronym>CPU</acronym> 上的负载差异是不可测量的。
另一方面,它们的负载可能不平衡,一个磁盘可能负载很重,
而其他的可能很空闲。</para>
@@ -365,7 +366,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。
: 它们必须是同样大小, 通过添加新的subdisk 来扩展一个plex
是非常复杂的,以至Vinum 当前没有实现它. Vinum 利用一个额外
的,代价不高的限制:一个分段的plex 必须有至少两个subdisk,
- 因为否则的话,它是无法从一个连接的plex 进行区分的。</para>
+ 否则, 它就无法区分连接的 plex 了。</para>
</listitem>
</itemizedlist>
@@ -380,7 +381,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。
<entry>Plex 类型</entry>
<entry>最少subdisks</entry>
<entry>可否添加subdisks</entry>
- <entry>必须相同大小</entry>
+ <entry>尺寸相同</entry>
<entry>应用</entry>
</row>
</thead>
@@ -390,7 +391,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。
<entry>串联 </entry>
<entry>1</entry>
<entry>可以</entry>
- <entry>不可以</entry>
+ <entry>不必须</entry>
<entry>带有很大弹性和适中性能的大数据量存储。
</entry>
</row>
@@ -399,7 +400,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。
<entry>分段</entry>
<entry>2</entry>
<entry>不可以</entry>
- <entry>可以</entry>
+ <entry>必须</entry>
<entry>大量并发访问时,具有较高性能。</entry>
</row>
</tbody>
@@ -450,7 +451,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。
唯一需要的参数是组织,在这个例子中是
<emphasis>concat</emphasis>. 没有名称是必然的:
系统自动通过添加suffix
- <emphasis>.p</emphasis><emphasis>x</emphasis>px
+ <emphasis>.p</emphasis><emphasis>x</emphasis>
来从卷名称产生一个名字,这里的<emphasis>x</emphasis>
是在卷中的plex 的编号。而这个plex 将被
叫做<emphasis>myvol.p0</emphasis>。</para>
@@ -563,8 +564,8 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。
<sect2>
<title>优化性能</title>
- <para>恰面例子中的镜像卷要比没有镜像的卷具有更好的容灾能力,
- 但它的性能要差一些: 每一次写入卷时, 需要同时写道两个驱动器上,
+ <para>前面例子中的镜像卷要比没有镜像的卷具有更好的容灾能力,
+ 但它的性能要差一些: 每一次写入卷时, 需要同时写到两个驱动器上,
因而也就需要更大的磁盘访问带宽。 如果希望非常好的性能,
则需要另外一种方式: 不做镜像,
而将数据分成条带放到尽可能多的、不同的磁盘上。
@@ -666,7 +667,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。
<title>对象命名</title>
<para>如前面所描述的那样, Vinum 会给 plex 和子盘指定默认的名字,
- 而这些名字也是可以定制的。 不推荐盖面默认的名字:
+ 而这些名字也是可以定制的。 不推荐修改默认的名字:
使用允许给对象任意命名的 VERITAS
卷管理器的经验证明, 这一灵活性并没有带来太多的好处,
相反, 它很容易导致对象的混淆。</para>
@@ -677,7 +678,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。
32 个字符。</para>
<para>Vinum 对象会在
- <filename>/dev/gvinum</filename> 之下生成设备接点。
+ <filename>/dev/gvinum</filename> 之下生成设备节点。
前述的配置将使 Vinum 创建以下设备节点:</para>
<itemizedlist>
@@ -705,7 +706,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。
<note><para>这些内容仅适用于旧式的 Vinum
实现。</para></note>
- <para>一个包含每个驱动器对应项的 <filename>/dev/vinum/drive</filename>
+ <para>一个包含每个驱动器对应设备的 <filename>/dev/vinum/drive</filename>
目录。 这些项事实上是指向对应磁盘节点的符号连接。</para>
</listitem>
@@ -764,7 +765,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。
<para>对于系统而言, 卷和磁盘是一样的。
唯一的例外是, 与 &unix; 驱动器不同, Vinum 并不对卷进行分区,
- 因而它也就不包含分区表。 这导致修改了某些磁盘工具,
+ 因而它也就不包含分区表。 这要求修改某些磁盘工具,
特别是 &man.newfs.8;, 它会试图将 Vinum 卷名当作分区标识。
例如, 磁盘驱动器的名字可能是 <filename>/dev/ad0a</filename> 或
<filename>/dev/da2h</filename>。
@@ -772,7 +773,7 @@ FreeBSD 的基本系统中包括了 Vinum 卷管理器, 它是一个用以实现磁盘驱动器的块设备。
磁盘上的第一个分区 (<devicename>a</devicename>),
以及第三个 (2) SCSI 磁盘 (<devicename>da</devicename>)
上的第八个分区 (<devicename>h</devicename>)。
- 于此相反, Vinum 卷可能叫做
+ 而相比而言, Vinum 卷可能叫做
<filename>/dev/gvinum/concat</filename>,
这个名字和分区名没有什么关系。</para>
@@ -1002,13 +1003,13 @@ sd name bigraid.p0.s4 drive e plex bigraid.p0 state initializing len 4194304b dr
<para>需要注意的是, Vinum 偏移量和尺寸的单位是字节。
它们必须是 512 的整数倍, 才能得到
- <command>disklabel</command> 命令所需的块号。</para>
+ <command>bsdlabel</command> 命令所需的块号。</para>
</step>
<step>
<para>在每一个根卷成员设备上, 执行命令:</para>
- <screen>&prompt.root; <userinput>disklabel -e <replaceable>devname</replaceable></userinput></screen>
+ <screen>&prompt.root; <userinput>bsdlabel -e <replaceable>devname</replaceable></userinput></screen>
<para>这其中, 对于没有 slice (也就是 fdisk) 表的磁盘,
<replaceable>devname</replaceable> 必须是磁盘的名字
@@ -1038,7 +1039,7 @@ sd name bigraid.p0.s4 drive e plex bigraid.p0 state initializing len 4194304b dr
<para>这样, 新的 <literal>"a"</literal> 分区,
将创建并覆盖这一设备上的 Vinum 分区的范围。
- 注意, <command>disklabel</command> 只有在
+ 注意, <command>bsdlabel</command> 只有在
Vinum 分区的 fstype 被标记为 <literal>"vinum"</literal>
时, 才允许这样做。</para>
</step>
@@ -1089,12 +1090,12 @@ Subdisk root.p1.s0:
<para>需要注意的值是 <literal>135680</literal>,
也就是偏移量 (相对于
- <filename>/dev/da0h</filename> 分区)。 这相当于 <command>disklabel</command>
+ <filename>/dev/da0h</filename> 分区)。 这相当于 <command>bsdlabel</command>
记法中的 265 个 512-字节的磁盘块。 类似地, 根卷的尺寸是 245760
个 512-字节的磁盘块。 <filename>/dev/da1h</filename> 中,
包含了根卷的第二个副本, 采用了同样的配置。</para>
- <para>这些设备的 disklabel 类似下面的样子:</para>
+ <para>这些设备的 bsdlabel 类似下面的样子:</para>
<screen>
...
@@ -1146,7 +1147,7 @@ Subdisk root.p1.s0:
<option>-as</option> 会要求内核询问所挂接的根文件系统
(<option>-a</option>), 并使引导过程在单用户模式停止
(<option>-s</option>), 此时根文件系统是以只读方式挂接的。
- 这样, 及时只挂接了多 plex 卷中的一个 plex,
+ 这样, 即使只挂接了多 plex 卷中的一个 plex,
也不会引致 plex 之间数据不一致的问题。</para>
<para>当提示输入要挂接的根文件系统时,
@@ -1184,14 +1185,14 @@ Subdisk root.p1.s0:
<para>这种情况一般是由于 Vinum 安装过程中破坏了引导程序造成的。
不幸的是, Vinum 目前只在分区开始的地方保留了 4 KB
的空间, 之后就开始写 Vinum 头信息了。 然而,
- 目前第一阶段和第二阶段的引导程序, 加上 disklabel
+ 目前第一阶段和第二阶段的引导程序, 加上 bsdlabel
嵌入的内容则需要 8 KB。 因此, 如果 Vinum
分区从偏移量 0 开始, 而这个 slice 或磁盘能够启动,
则 Vinum 的安装将毁掉引导程序。</para>
<para>类似地, 如果从上述情形中恢复, 例如,
从 <quote>Fixit</quote> 盘启动, 并通过
- <command>disklabel -B</command> 按照 <xref
+ <command>bsdlabel -B</command> 按照 <xref
linkend="boot-boot1"> 中介绍的方法来恢复引导程序,
则引导程序会覆盖掉 Vinum 头, 这样 Vinum 也就找不到它的磁盘了。
尽管这并不会真的毁掉 Vinum 的配置数据, 或者 Vinum 卷上的数据,