22.6. 一些例子
上一页 | 第 22 章 Vinum 卷管理程序 | 下一页

## 22.6. 一些例子

Vinum 维护着一个描述本系统中对象的 配置数据库。 开始时， 用户可以在 gvinum(8) 工具来从若干配置文件生成配置数据库。 Vinum 在其控制的每个磁盘分区 (在 Vinum 中称为 device) 上都保存配置数据库的副本。 这一数据库在每次状态变化时均会更新， 因而重启每个 Vinum 对象时， 都能够恢复其状态。

### 22.6.1. 配置文件

配置文件描述了独立的 Vinum.一个简单卷的定义可能是这样的:

drive a device /dev/da3h volume myvol plex org concat sd length 512m drive a

这个文件描述了四个Vinum 目标:

- drive 行描述了一个磁盘分区（驱动器） 和与下面的硬件相关的它的位置。它给出了一个符号名 a. 这个与设备名称分开的符号名允许 磁盘从一个位置移动到另一个位置而不会搞混。

- volume 行描述了一个卷。 唯一的必须属性是名称，在这个例子中是 myvol.

- plex 行定义了一个plex。 唯一需要的参数是组织,在这个例子中是 concat. 没有名称是必然的: 系统自动通过添加suffix .px 来从卷名称产生一个名字,这里的x 是在卷中的plex 的编号。而这个plex 将被 叫做myvol.p0。

- sd 行描述了一个subdisk。 最小的说明是存储subdisk 的驱动器名称，和subdisk 的长度。 对于plex，没有名称也是必然的：系统自动通过添加 suffix .sx 来分配源自plex 的名称，这里 x是plex 中subdisk 的编号。 Vinum 给这个subdisk 命名为myvol.p0.s0。

处理完这个文件后， gvinum(8) 会产生下面的输出：

`#` gvinum -> `create config1` Configuration summary Drives: 1 (4 configured) Volumes: 1 (4 configured) Plexes: 1 (8 configured) Subdisks: 1 (16 configured) D a State: up Device /dev/da3h Avail: 2061/2573 MB (80%) V myvol State: up Plexes: 1 Size: 512 MB P myvol.p0 C State: up Subdisks: 1 Size: 512 MB S myvol.p0.s0 State: up PO: 0 B Size: 512 MB

这些输出内容展示了 gvinum(8) 的简要列表格式。 在 图 22.4 “一个简单的Vinum 卷” 中用图形展示了这个配置。

图 22.4. 一个简单的Vinum 卷

下面这个图显示了一个由按顺序排列的subdisk 组成的plex。 在这个小小的例子中，卷包含一个plex，plex 包含一个subdisk。

这个卷本身和普通的磁盘分区相比并没有什么特别的优越性， 它包含了一个 plex， 因此不是冗余的。 这个 plex 中包括了一个子磁盘， 因此这和从磁盘分区分配存储没什么两样。 接下来的几节， 将介绍一些更有用的配置方法。

### 22.6.2. 提高容错性： 镜像

卷的容错性可以通过镜像来提高。 在配置镜像卷时， 确保 plex 分布在不同的驱动器上十分重要， 这样一个驱动器坏掉时， 就不会同时影响两个 plex。 下面的配置将映射卷：

drive b device /dev/da4h volume mirror plex org concat sd length 512m drive a plex org concat sd length 512m drive b

上面的例子中， 并不需要再次指定驱动器 a， 因为 Vinum 监控所有其配置数据库的对象。 完成定义之后， 配置如下所示：

Drives: 2 (4 configured) Volumes: 2 (4 configured) Plexes: 3 (8 configured) Subdisks: 3 (16 configured) D a State: up Device /dev/da3h Avail: 1549/2573 MB (60%) D b State: up Device /dev/da4h Avail: 2061/2573 MB (80%) V myvol State: up Plexes: 1 Size: 512 MB V mirror State: up Plexes: 2 Size: 512 MB P myvol.p0 C State: up Subdisks: 1 Size: 512 MB P mirror.p0 C State: up Subdisks: 1 Size: 512 MB P mirror.p1 C State: initializing Subdisks: 1 Size: 512 MB S myvol.p0.s0 State: up PO: 0 B Size: 512 MB S mirror.p0.s0 State: up PO: 0 B Size: 512 MB S mirror.p1.s0 State: empty PO: 0 B Size: 512 MB

图 22.5 “镜像 Vinum 卷” 以图形方式展示了其结构。

图 22.5. 镜像 Vinum 卷

这个例子中， 每一个 plex 包含了完整的 512 MB 地址空间。 在前面的例子中， plex 则只包括一个子盘。

### 22.6.3. 优化性能

前面例子中的镜像卷要比没有镜像的卷具有更好的容灾能力， 但它的性能要差一些： 每一次写入卷时， 需要同时写到两个驱动器上， 因而也就需要更大的磁盘访问带宽。 如果希望非常好的性能， 则需要另外一种方式： 不做镜像， 而将数据分成条带放到尽可能多的、不同的磁盘上。 下面给出了一个跨越四个磁盘驱动器的 plex 卷：

drive c device /dev/da5h drive d device /dev/da6h volume stripe plex org striped 512k sd length 128m drive a sd length 128m drive b sd length 128m drive c sd length 128m drive d

和之前类似， 并不需要定义 Vinum 已经知道的驱动器。 在完成定义之后， 将得到如下配置：

Drives: 4 (4 configured) Volumes: 3 (4 configured) Plexes: 4 (8 configured) Subdisks: 7 (16 configured) D a State: up Device /dev/da3h Avail: 1421/2573 MB (55%) D b State: up Device /dev/da4h Avail: 1933/2573 MB (75%) D c State: up Device /dev/da5h Avail: 2445/2573 MB (95%) D d State: up Device /dev/da6h Avail: 2445/2573 MB (95%) V myvol State: up Plexes: 1 Size: 512 MB V mirror State: up Plexes: 2 Size: 512 MB V striped State: up Plexes: 1 Size: 512 MB P myvol.p0 C State: up Subdisks: 1 Size: 512 MB P mirror.p0 C State: up Subdisks: 1 Size: 512 MB P mirror.p1 C State: initializing Subdisks: 1 Size: 512 MB P striped.p1 State: up Subdisks: 1 Size: 512 MB S myvol.p0.s0 State: up PO: 0 B Size: 512 MB S mirror.p0.s0 State: up PO: 0 B Size: 512 MB S mirror.p1.s0 State: empty PO: 0 B Size: 512 MB S striped.p0.s0 State: up PO: 0 B Size: 128 MB S striped.p0.s1 State: up PO: 512 kB Size: 128 MB S striped.p0.s2 State: up PO: 1024 kB Size: 128 MB S striped.p0.s3 State: up PO: 1536 kB Size: 128 MB

图 22.6. 条带化的 Vinum 卷

这个卷在 图 22.6 “条带化的 Vinum 卷” 中给出。 条带的阴影部分， 表示在 plex 地址空间中的位置： 颜色最浅的在最前面， 而最深的在最后。

### 22.6.4. 高性能容在

如果硬件足够多， 也能够构建比标准 UNIX® 分区同时提高了容灾性和性能的卷。 典型的配置文件类似：

volume raid10 plex org striped 512k sd length 102480k drive a sd length 102480k drive b sd length 102480k drive c sd length 102480k drive d sd length 102480k drive e plex org striped 512k sd length 102480k drive c sd length 102480k drive d sd length 102480k drive e sd length 102480k drive a sd length 102480k drive b

第二个 plex 中的子盘和第一个 plex 中的错开了两个驱动器： 这能够帮助确保即使同时访问两个驱动器， 写操作也不会同时发生在同一个盘上。

图 22.7 “镜像并条带化的 Vinum 卷” 给出了该卷的结构。

图 22.7. 镜像并条带化的 Vinum 卷

上一页 | 上一级 | 下一页
22.5. Vinum 目标 | 起始页 | 22.7. 对象命名

本文档和其它文档可从这里下载： ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题，请先阅读 文档，如不能解决再联系 <questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.