Solaris Volume Manager 管理指南

第 7 章 状态数据库(任务)

本章提供有关执行与 Solaris Volume Manager 状态数据库副本相关联的任务的信息。有关这些任务中所涉及概念的信息,请参见第 6 章,状态数据库(概述)

状态数据库副本(任务列表)

以下任务列表列出了管理 Solaris Volume Manager 状态数据库副本所需的过程。

任务 

说明 

参考 

创建状态数据库副本 

使用 Solaris Volume Manager GUI 或 metadb -a 命令创建状态数据库副本。

如何创建状态数据库副本

检查状态数据库副本的状态 

使用 Solaris Volume Manager GUI 或 metadb 命令检查现有副本的状态。

如何检查状态数据库副本的状态

删除状态数据库副本 

使用 Solaris Volume Manager GUI 或 metadb -d 命令删除状态数据库副本。

如何删除状态数据库副本

创建状态数据库副本


注意 – 注意 –

如果您从 Solstice DiskSuite 产品升级到 Solaris Volume Manager,而且状态数据库副本与文件系统或逻辑卷共享片(与使用单独的片相反),请不要删除现有的副本或在同一个位置用新的缺省副本来替换它。

Solaris Volume Manager 中状态数据库的缺省大小为 8192 个块,而 Solstice DiskSuite 产品中的缺省大小是 1034 个块。删除在 Solstice DiskSuite 产品中创建的缺省大小的状态数据库副本,然后使用 Solaris Volume Manager 添加新的缺省大小的副本时,请务必小心谨慎。这会覆写占用共享片其余空间的任何文件系统的前 7158 个块,从而会销毁数据。



注意 – 注意 –

请勿将状态数据库副本放置在通过光纤连接系统的存储器、SAN 或未与系统直接连接的其他存储器中。否则可能无法引导 Solaris Volume Manager。副本所在的存储设备必须与传统的 SCSI 或 IDE 驱动器在引导过程中同时可用。


Procedure如何创建状态数据库副本

开始之前

请查看创建 Solaris Volume Manager 组件的先决条件

  1. 成为超级用户。

  2. 要创建状态数据库副本,请使用以下方法之一:

    • 从 Solaris Management Console 中增强的存储工具中,打开“状态数据库副本”节点。选择“操作”⇒“创建副本”并按照屏幕上的说明操作。有关更多信息,请参见联机帮助。

    • 使用 metadb 命令的以下格式。请参见 metadb(1M)


      # metadb  -a -c number -l length-of replica -f ctds-of-slice
      
      -a

      指定要添加或创建状态数据库副本。

      -f

      指定要强制执行该操作,即使没有副本存在也是如此。使用 -f 可强制创建初始副本。

      -c number

      指定要添加到给定片中的副本数量。

      -l length-of-replica

      指定新副本的大小(用块表示)。缺省大小是 8192。此大小应适合几乎所有的配置(包括那些具有数千个逻辑卷的配置)。

      ctds-of-slice

      指定将用来存放副本的部件的名称。


    注 –

    在命令行上输入的不带任何选项的 metadb 命令可报告所有状态数据库副本的状态。



示例 7–1 创建第一个状态数据库副本


# metadb -a -f c0t0d0s7

# metadb

        flags         first blk      block count

...

     a      u         16             8192            /dev/dsk/c0t0d0s7

必须使用 -f-a 选项来创建第一个状态数据库副本。-a 选项用来向系统中添加状态数据库副本,-f 选项可强制创建第一个副本(在向系统中添加补充副本时,可以省略该选项)。



示例 7–2 向同一个片中添加两个状态数据库副本


# metadb -a -c 2 c1t3d0s1

# metadb

        flags         first blk      block count

...

     a        u         16              8192            /dev/dsk/c1t3d0s1

     a        u         8208            8192            /dev/dsk/c1t3d0s1

-a 选项向系统中添加状态数据库副本,-c 2 选项将两个副本放到指定的片上。metadb 命令检查副本是否处于活动状态,活动状态由 metadb 命令输出中的 a 标志来指示。



示例 7–3 添加指定大小的状态数据库副本

如果要替换现有的状态数据库副本,则可能需要指定副本的大小。特别是在现有的状态数据库副本(可能位于从 Solstice DiskSuite 产品升级的系统上)与文件系统共享一个片时,必须将现有的副本替换为相同大小的其他副本,或者在另一个位置中添加新副本。


# metadb -a -c 3 -l 1034 c0t0d0s7

# metadb

        flags         first blk      block count

...

     a      u         16             1034            /dev/dsk/c0t0d0s7

     a      u         1050           1034            /dev/dsk/c0t0d0s7

     a      u         2084           1034            /dev/dsk/c0t0d0s7

-a 选项向系统中添加状态数据库副本,-l 选项用于指定要添加的副本的长度(用块表示)。


维护状态数据库副本

Procedure如何检查状态数据库副本的状态

  1. 成为超级用户。

  2. 要检查状态数据库副本的状态,请使用以下方法之一:

    • 从 Solaris Management Console 中增强的存储工具中,打开“状态数据库副本”节点以查看现有的全部状态数据库副本。有关更多信息,请参见联机帮助。

    • 使用 metadb 命令查看状态数据库副本的状态。添加 -i 选项以显示状态标志的说明,如以下示例中所示。请参见 metadb(1M)


示例 7–4 检查所有状态数据库副本的状态


# metadb -i

        flags           first blk       block count

     a m  p  luo        16              8192            /dev/dsk/c0t0d0s7

     a    p  luo        8208            8192            /dev/dsk/c0t0d0s7

     a    p  luo        16400           8192            /dev/dsk/c0t0d0s7

     a    p  luo        16              8192            /dev/dsk/c1t3d0s1

      W   p  l          16              8192            /dev/dsk/c2t3d0s1

     a    p  luo        16              8192            /dev/dsk/c1t1d0s3

     a    p  luo        8208            8192            /dev/dsk/c1t1d0s3

     a    p  luo        16400           8192            /dev/dsk/c1t1d0s3

 r - replica does not have device relocation information

 o - replica active prior to last mddb configuration change

 u - replica is up to date

 l - locator for this replica was read successfully

 c - replica's location was in /etc/lvm/mddb.cf

 p - replica's location was patched in kernel

 m - replica is master, this is replica selected as input

 W - replica has device write errors

 a - replica is active, commits are occurring to this replica

 M - replica had problem with master blocks

 D - replica had problem with data blocks

 F - replica had format problems

 S - replica is too small to hold current data base

 R - replica had device read errors

所有标志的说明后跟相应的状态。设备名称前面的字符表示状态。大写字母表示处于问题状态,小写字母表示处于“正常”状态。


Procedure如何删除状态数据库副本

可能需要删除状态数据库副本以维护 Solaris Volume Manager 配置。例如,如果要替换磁盘驱动器,则需要在删除驱动器之前先删除状态数据库副本。否则,Solaris Volume Manager 将报告磁盘驱动器有错误。

  1. 成为超级用户。

  2. 要删除状态数据库副本,请使用以下方法之一:

    • 从 Solaris Management Console 中增强的存储工具中,打开“状态数据库副本”节点以查看现有的全部状态数据库副本。选择要删除的副本,然后选择“编辑”⇒“删除”将它们删除。有关更多信息,请参见联机帮助。

    • 使用 metadb 命令的以下格式:


      # metadb -d -f ctds-of-slice
      
      -d

      指定要删除状态数据库副本。

      -f

      指定要强制执行该操作,即使没有副本存在也是如此。

      ctds-of-slice

      指定包含副本的部件的名称。

      请注意,需要指定要删除其中的状态数据库副本的每个片。有关更多信息,请参见 metadb(1M) 手册页。


示例 7–5 删除状态数据库副本


# metadb -d -f c0t0d0s7

此示例说明如何从片中删除最后一个副本。

必须添加 -f 选项才能强制删除系统上的最后一个副本。