本章提供有关执行与 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 驱动器在引导过程中同时可用。
请查看创建 Solaris Volume Manager 组件的先决条件。
成为超级用户。
要创建状态数据库副本,请使用以下方法之一:
从 Solaris Management Console 中增强的存储工具中,打开“状态数据库副本”节点。选择“操作”⇒“创建副本”并按照屏幕上的说明操作。有关更多信息,请参见联机帮助。
使用 metadb 命令的以下格式。请参见 metadb(1M)。
# metadb -a -c number -l length-of replica -f ctds-of-slice |
指定要添加或创建状态数据库副本。
指定要强制执行该操作,即使没有副本存在也是如此。使用 -f 可强制创建初始副本。
指定要添加到给定片中的副本数量。
指定新副本的大小(用块表示)。缺省大小是 8192。此大小应适合几乎所有的配置(包括那些具有数千个逻辑卷的配置)。
指定将用来存放副本的部件的名称。
在命令行上输入的不带任何选项的 metadb 命令可报告所有状态数据库副本的状态。
# metadb -a -f c0t0d0s7 # metadb flags first blk block count ... a u 16 8192 /dev/dsk/c0t0d0s7 |
必须使用 -f 和 -a 选项来创建第一个状态数据库副本。-a 选项用来向系统中添加状态数据库副本,-f 选项可强制创建第一个副本(在向系统中添加补充副本时,可以省略该选项)。
# 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 标志来指示。
如果要替换现有的状态数据库副本,则可能需要指定副本的大小。特别是在现有的状态数据库副本(可能位于从 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 选项用于指定要添加的副本的长度(用块表示)。
成为超级用户。
要检查状态数据库副本的状态,请使用以下方法之一:
从 Solaris Management Console 中增强的存储工具中,打开“状态数据库副本”节点以查看现有的全部状态数据库副本。有关更多信息,请参见联机帮助。
使用 metadb 命令查看状态数据库副本的状态。添加 -i 选项以显示状态标志的说明,如以下示例中所示。请参见 metadb(1M)。
# 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 |
所有标志的说明后跟相应的状态。设备名称前面的字符表示状态。大写字母表示处于问题状态,小写字母表示处于“正常”状态。
可能需要删除状态数据库副本以维护 Solaris Volume Manager 配置。例如,如果要替换磁盘驱动器,则需要在删除驱动器之前先删除状态数据库副本。否则,Solaris Volume Manager 将报告磁盘驱动器有错误。
成为超级用户。
要删除状态数据库副本,请使用以下方法之一:
从 Solaris Management Console 中增强的存储工具中,打开“状态数据库副本”节点以查看现有的全部状态数据库副本。选择要删除的副本,然后选择“编辑”⇒“删除”将它们删除。有关更多信息,请参见联机帮助。
使用 metadb 命令的以下格式:
# metadb -d -f ctds-of-slice |
指定要删除状态数据库副本。
指定要强制执行该操作,即使没有副本存在也是如此。
指定包含副本的部件的名称。
请注意,需要指定要删除其中的状态数据库副本的每个片。有关更多信息,请参见 metadb(1M) 手册页。
# metadb -d -f c0t0d0s7 |
此示例说明如何从片中删除最后一个副本。
必须添加 -f 选项才能强制删除系统上的最后一个副本。