Solaris Volume Manager 管理指南

Solaris Volume Manager 磁盘集管理

与本地磁盘集管理不同的是,您无需手动创建或删除磁盘集状态数据库。Solaris Volume Manager 会在磁盘集中的每个磁盘上放置一个状态数据库副本(在片 7 上),最多可在磁盘集中放置 50 个副本。

向磁盘集中添加磁盘时,Solaris Volume Manager 会在磁盘集上自动创建状态数据库副本。将磁盘收入磁盘集时,Solaris Volume Manager 可能会对磁盘重新分区,以便可将磁盘集的状态数据库副本置于磁盘上(请参见自动磁盘分区)。

驻留在磁盘集中的卷上的文件系统通常不会在引导时通过 /etc/vfstab 文件自动挂载。必要的 Solaris Volume Manager RPC 守护进程(rpc.metadrpc.metamhd)不会在引导过程中很早就启动以允许此操作发生。此外,在重新引导期间会丢失磁盘集的拥有权。请不要在 /etc/inetd.conf 文件中禁用 Solaris Volume Manager RPC 守护进程。它们被配置为在缺省情况下启动。只有这些守护进程始终处于启用状态,Solaris Volume Manager 才能使用其全部功能。

如果使用 metaset 命令的 -A 选项启用了自动获取功能,则在引导时会自动获取磁盘集。在这样的情况下,驻留在磁盘集中的卷上的文件系统可以随 /etc/vfstab 文件一同自动挂载。要在引导过程中启用自动获取功能,必须仅将磁盘集与单个主机关联,且必须启用自动获取功能。可以在磁盘集创建期间或创建之后启用该磁盘集。有关自动获取功能的更多信息,请参见自动获取磁盘集


注 –

尽管磁盘集在单个主机配置中受支持,但它们通常不适合在“本地”(并非双连接)使用。两种常见的例外情况是:使用磁盘集为逻辑卷提供一个更便于管理的名称空间,以及使用磁盘集更方便地管理存储区域网络 (Storage Area Network, SAN) 光纤网络上的存储器(请参见方案-磁盘集)。


可以使用 Solaris Volume Manager 命令行界面(metaset 命令)或 Solaris Management Console 中增强的存储工具 来创建和配置磁盘集。

向磁盘集添加磁盘后,该磁盘集便可由磁盘集中的主机保留(或获取)和释放。如果某一主机保留了磁盘集,则磁盘集中的其他主机便不能访问该磁盘集中磁盘上的数据。要对磁盘集执行维护,主机必须是磁盘集的属主,或已保留了磁盘集。主机通过将第一个磁盘置于磁盘集中获得该磁盘集的隐式拥有权。

可以使用 metaimport 命令将磁盘集(包括在不同系统上创建的磁盘集)导入现有的 Solaris Volume Manager 配置中。

保留磁盘集

主机使用磁盘集中的磁盘之前,必须先保留该磁盘集。保留磁盘集的方法有两种:


注 –

如果突然确定不保留磁盘(或许由于使用该磁盘集的其他主机强制获取了磁盘),则主机将崩溃。此行为有助于最大程度地减少在两台主机同时访问同一磁盘时造成的数据丢失。


有关获取或保留磁盘集的更多信息,请参见如何提取磁盘集

释放磁盘集

对磁盘集中的物理磁盘执行维护时,释放磁盘集可能非常有用。释放磁盘集后,主机便不能访问该磁盘集。如果磁盘集中的两台主机都释放了磁盘集,则磁盘集中的两台主机都不能访问该磁盘集中的磁盘。

有关释放磁盘集的更多信息,请参见如何释放磁盘集

导入磁盘集

从 Solaris 9 9/04 发行版开始,使用 metaimport 命令可以将磁盘集(包括复制的磁盘集)导入在磁盘集中具备设备 ID 支持的现有 Solaris Volume Manager 配置。还可以使用 metaimport 命令报告可以导入的磁盘集。

复制的磁盘集是使用远程复制软件创建的。为了使用 metaimport 命令导入复制的磁盘集,还必须将包含磁盘集中每个磁盘的状态数据库副本的片复制到被复制磁盘集所在的同一片上。对于非 EFI 磁盘,这对应于片 7,对于 EFI 磁盘,则对应于片 6。复制磁盘集之前,请确保要复制的数据磁盘配置与远程站点的磁盘配置匹配。此步骤可确保精确复制状态数据库副本和数据。

如果磁盘不包含卷或状态数据库副本,则 metaimport 命令也不会在磁盘集中导入磁盘。如果卷或状态数据库副本尚未添加到磁盘或已从磁盘删除,则会出现此情况。在这种情况下,如果将磁盘集导入其他系统,则会发现磁盘集中缺少该磁盘。例如,每个 Solaris Volume Manager 磁盘集最多允许 50 个状态数据库副本。如果磁盘集中具有 60 个磁盘,则不包含状态数据库副本的 10 个磁盘必须包含卷,才能随磁盘集一同导入。

有关与导入磁盘集关联的任务,请参见导入磁盘集


注 –

在 Sun Cluster 环境下,metaimport 命令不可用。


自动磁盘分区

向磁盘集中添加新磁盘时,Solaris Volume Manager 将检查磁盘格式。如有必要,Solaris Volume Manager 将对磁盘重新分区,以确保磁盘具有正确配置的片 7(具有容纳状态数据库副本所需的足够磁盘空间)。片 7 的准确大小取决于磁盘的几何参数。但是,大小不会小于 4 MB,可能更接近于 6 MB(具体取决于柱面边界所在的位置)。

缺省情况下,Solaris Volume Manager 会将一个状态数据库副本置于片 7 上。可以增加片 7 的缺省大小或缩小状态数据库副本的大小,以便将多个状态数据库副本置于该片中。


注 –

基于各种因素(包括状态数据库副本的大小以及要在状态数据库副本中存储的信息),片 7 的最小大小可能会在将来发生更改。多属主磁盘集中的状态数据库副本的缺省大小为 16 MB。


为了在磁盘集中使用,磁盘的片 7 必须满足以下条件:

如果现有分区表不满足这些条件,则 Solaris Volume Manager 将对磁盘重新分区。每个驱动器都有一小部分空间保留在片 7 中供 Solaris Volume Manager 使用。每个驱动器上其余的空间都被置于片 0 中。磁盘上的任何现有数据都会因重新分区而丢失。


提示 –

向磁盘集添加驱动器后,可以在必要时对其重新分区,但不能以任何方式对片 7 进行更改。


prtvtoc 命令的以下输出显示了某磁盘在添加到磁盘集之前的状态。


[root@lexicon:apps]$ prtvtoc /dev/rdsk/c1t6d0s0

* /dev/rdsk/c1t6d0s0 partition map

*

* Dimensions:

*     512 bytes/sector

*     133 sectors/track

*      27 tracks/cylinder

*    3591 sectors/cylinder

*    4926 cylinders

*    4924 accessible cylinders

*

* Flags:

*   1: unmountable

*  10: read-only

*

*                          First     Sector    Last

* Partition  Tag  Flags    Sector     Count    Sector  Mount Directory

       0      2    00          0   4111695   4111694

       1      3    01    4111695   1235304   5346998

       2      5    01          0  17682084  17682083

       3      0    00    5346999   4197879   9544877

       4      0    00    9544878   4197879  13742756

       5      0    00   13742757   3939327  17682083

以上输出显示磁盘不包含片 7。因此,向磁盘集添加磁盘时,Solaris Volume Manager 将对磁盘重新分区。prtvtoc 命令的以下输出显示了该磁盘在添加到磁盘集之后的状态。


[root@lexicon:apps]$ prtvtoc /dev/rdsk/c1t6d0s0

* /dev/rdsk/c1t6d0s0 partition map

*

* Dimensions:

*     512 bytes/sector

*     133 sectors/track

*      27 tracks/cylinder

*    3591 sectors/cylinder

*    4926 cylinders

*    4924 accessible cylinders

*

* Flags:

*   1: unmountable

*  10: read-only

*

*                          First     Sector    Last

* Partition  Tag  Flags    Sector     Count    Sector  Mount Directory

       0      0    00      10773  17671311  17682083

       7      0    01          0     10773     10772

[root@lexicon:apps]$ 

输出显示磁盘已重新分区,其中包括一个在柱面 0 处开始且有足够空间容纳状态数据库副本的片 7。如果向磁盘集添加的磁盘具有可接受的片 7,则不会对它们重新格式化。


注 –

如果已使用 Solstice DiskSuite 软件升级了磁盘集,则这些磁盘集上的缺省状态数据库副本大小将为 1034 个块,而不是 Solaris Volume Manager 中的 8192 块大小。相应地,在 Solstice DiskSuite 软件下添加的磁盘上的片 7 比 Solaris Volume Manager 下添加的磁盘上的片 7 也要小。


磁盘集名称要求

磁盘集卷名称与其他 Solaris Volume Manager 组件名称类似。但是,磁盘集名称会作为该名称的一部分。例如,卷路径名称会在 /dev/md/ 之后和路径中实际卷名称之前包含磁盘集名称。

下表显示了一些示例磁盘集卷名称。

表 18–1 磁盘集的示例卷名称

/dev/md/blue/dsk/d0

磁盘集 blue 中的块卷 d0

/dev/md/blue/dsk/d1

磁盘集 blue 中的块卷 d1

/dev/md/blue/rdsk/d126

磁盘集 blue 中的原始卷 d126

/dev/md/blue/rdsk/d127

磁盘集 blue 中的原始卷 d127

同样,热备用池也将磁盘集名称作为热备件名称的一部分。

示例—两个共享磁盘集

图 18–1 显示使用两个磁盘集的示例配置。

在此配置中,主机 A 和主机 B 共享磁盘集 red 和 blue。每个磁盘集都有各自的本地磁盘集,本地磁盘集不是共享的。如果主机 A 出现了故障,则主机 B 可以取代主机 A 来控制其共享磁盘集,即磁盘集 red。同样,如果主机 B 出现故障,则主机 A 可以取代主机 B 来控制其共享磁盘集,即磁盘集 blue。

图 18–1 磁盘集示例

图中显示两个主机如何通过共享磁盘集共享一些磁盘,并始终独占使用本地磁盘集中的其他磁盘。