diff options
Diffstat (limited to 'zh_CN.GB2312/books/handbook/vinum/chapter.sgml')
-rw-r--r-- | zh_CN.GB2312/books/handbook/vinum/chapter.sgml | 85 |
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 卷上的数据, |