Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1299798
  • 博文数量: 554
  • 博客积分: 10425
  • 博客等级: 上将
  • 技术积分: 7555
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-09 09:49
文章分类

全部博文(554)

文章存档

2012年(1)

2011年(1)

2009年(8)

2008年(544)

分类:

2008-04-15 09:58:06

 
自动创建卷
第23 章• 自上而下创建卷(任务) 245
-d 指定输出卷配置,该卷配置满足指定的或所生成的卷请求。
将不生成或执行命令脚本,而且处理将在该阶段停止。
-F config_file | request_file 指定要处理的卷请求文件或卷配置文件。如果将config_file
或request_file 指定为连字符(-),系统将从标准输入中读取
它。如果输入文件是卷配置文件,则不能指定-d 选项。
卷配置文件描述要创建的卷的详细配置,而卷请求文件提供
要生成的卷的特征。有关更多信息,请参见
volume-config (4)volume-config (4) 和volume-request (4)
手册页。
-v verbosity 指定输出的详细程度。允许值介于0(几乎无提示的输出)
和2(详细输出)之间。缺省详细程度是1(中等详细程度
的输出)。
有关更多信息,请参见以下示例和metassist(1M) 手册页。
在创建了卷之后,可以立即查看新卷。
# metastat -s diskset-name
使用metassist 命令创建双向镜像
以下示例说明如何创建大小为10MB的双向镜像。metassist 命令标识未使用的磁盘并使用
这些磁盘创建尽可能最佳的镜像。-s myset 参数指定将在myset 磁盘集内创建卷。如有必
要,请创建该磁盘集。
# metassist create -s myset -r 2 -S 10mb
使用metassist 命令创建双向镜像和热备件
以下示例说明如何使用metassist 命令来创建大小为10MB且具有热备件的双向镜像,热备
件可提供额外的容错功能。-f 选项指定容错功能。
# metassist create -s myset -f-r 2 -S 10mb
借助metassist 命令使用特定的控制器创建条带
以下示例说明如何借助metassist 命令使用控制器1 上的磁盘创建条带。-a 选项指定可用的
控制器。
# metassist create -s myset -a c1 -S 10mb
3
示例23–1
示例23–2
示例23–3
自动创建卷
246 Solaris Volume Manager 管理指南• 2006 年10 月
使用metassist 命令指定输出的详细程度
以下示例说明如何使用metassist 命令来创建大小为10MB且具有热备件的双向镜像,热备
件可提供额外的容错功能。-f 选项指定容错功能。最后一个参数(-v 2) 指定详细程度为2
(最大详细程度),它将尽可能多地提供有关metassist 命令如何工作的信息。
# metassist create -s myset -f-r 2 -S 10mb -v 2
Scanning system physical device configuration...
These HBA/Controllers are known:.
c0
c1
These disks are known:
c0t0d0 id1,dad@AST34342A=____________VGD97101
c1t1d0 id1,sd@SSEAGATE_ST39204LCSUN9.0G3BV0L88P000021097XNL
c1t2d0 id1,sd@SSEAGATE_ST39102LCSUN9.0GLJW22867000019171JDF
c1t3d0 id1,sd@SSEAGATE_ST39204LCSUN9.0G3BV0L7RV00007108TG0H
c1t4d0 id1,sd@SSEAGATE_ST39204LCSUN9.0G3BV0LDFR000021087R1T
c1t5d0 id1,sd@SSEAGATE_ST39204LCSUN9.0G3BV0L0M200002109812L
c1t6d0 id1,sd@SSEAGATE_ST39204LCSUN9.0G3BV0L8K8000021087R0Z
.
.
.
(output truncated)
示例23–4
自动创建卷
第23 章• 自上而下创建卷(任务) 247
以下示例说明如何使用metassist 命令来创建大小为10MB且具有热备件的双向镜像,热备
件可提供额外的容错功能。-f 选项指定容错功能。最后一个参数(-v 0) 指定详细程度为0
(最小详细程度),在该命令运行时,它将提供几乎无提示的输出。
# metassist create -s myset -f-r 2 -S 10mb -v 0
myset/hsp000: Hotspare pool is setup
myset/hsp000: Hotspare is added
myset/d2: Concat/Stripe is setup
myset/d1: Concat/Stripe is setup
myset/d0: Mirror is setup
myset/d0: submirror myset/d1 is attached
使用输入文件创建卷
以下示例说明如何借助metassist 命令使用输入文件创建卷。
# metassist create -F request.xml
有关借助metassist 命令使用输入文件创建卷的更多信息,请参见第248 页中的“使用
metassist 命令处理基于文件的数据”。
使用metassist 命令处理基于文件的数据
使用metassist 命令,可以创建用来评估卷的特征或者实际创建卷的文件。
使用metassist 命令创建命令文件(Shell 脚本)
通过运行带有-c 参数的metassist 命令,可以生成一个Bourne shell 脚本,其中包含将用来
创建卷配置的命令。使用此方法,可以在实际创建卷之前检查命令,甚至可以根据具体需
要稍微修改脚本。
示例23–5
使用metassist 命令处理基于文件的数据
248 Solaris Volume Manager 管理指南• 2006 年10 月
 如何使用metassist 命令来创建命令文件(Shell 脚
本)
请查看第244 页中的“自上而下创建卷的先决条件”。
标识要在其上创建卷的可用存储器。
如果没有明确指定存储器,Solaris Volume Manager 会标识系统上未使用的存储器并使用它
(如果适用的话)。如果您选择指定存储器-可以广泛地指定存储器(例如,控制器1 上
的所有存储器),也可以明确地指定存储器(例如,使用c1t4d2,而不使用c1t4d1),则
Solaris Volume Manager 会使用您指定的存储器。
使用metassist 命令和适用于所执行任务的选项。
使用-c 选项指定不应实际创建卷。
# metassist create -s diskset-name -f-r redundancy -a device1, device2... \
-S size -v verbosity [-c]
create 用于创建卷的子命令。
-s diskset-name 指定要用于卷的磁盘集的名称。
-f 指定该卷要与热备件相关联。
-r redundancy 指定要创建的冗余级别(数据副本的数量)。
-a device1, device2... 指定要用于创建卷的设备。
-S size 指定要创建的卷所采用的单位:KB(表示千字节)、MB(表示兆字
节)、GB(表示千兆字节)或TB(兆兆字节)。
-v verbosity 指定输出的详细程度。允许值介于0(几乎无提示的输出)和2(详
细输出)之间。缺省详细程度是1(中等详细程度的输出)。
-c 指定不应实际创建卷,而应将可用来创建指定配置的shell 脚本发送
到标准输出中。
注– -c 参数所需的shell 脚本将发送到标准输出中,metassist 命令的
其余输出将转至标准错误中。您可以在进行选择时重定向输出流。
有关更多信息,请参见以下示例和metassist(1M) 手册页。
使用metassist 命令创建命令文件(Shell 脚本)
以下示例说明如何使用metassist 命令来创建大小为10MB且具有热备件的双向镜像,热备
件可提供额外的容错功能。-f 选项指定容错功能。最后一个参数(-c) 指定不应实际创建
卷,而应将可用来创建指定配置的shell 脚本发送到标准输出中。
开始之前
1
2
示例23–6
使用metassist 命令处理基于文件的数据
第23 章• 自上而下创建卷(任务) 249
# metassist create -s myset -f-r 2 -S 10mb -c
(output truncated)
.
.
.
Volume request completed successfully.
#!/bin/sh
#
# Environment
#
# Amend PATH
PATH="/usr/sbin:/usr/bin:$PATH"
export PATH
# Disk set name
diskset=’myset’
#
# Functions
#
# Echo (verbose) and exec given command, exit on error
使用metassist 命令处理基于文件的数据
250 Solaris Volume Manager 管理指南• 2006 年10 月
execho () {
test -n "$verbose" && echo "$@"
"$@" || exit
}
# Get full /dev/rdsk path of given slice
fullpath () {
case "$1" in
/dev/dsk/*|/dev/did/dsk/*) echo "$1" | sed ’s/dsk/rdsk/’ ;;
/*) echo "$1" ;;
*) echo /dev/rdsk/"$1" ;;
esac
}
# Run fmthard, ignore partboot error, error if output
fmthard_special () {
ignore=’Error writing partboot’
out=‘fmthard "$@" 2>&1‘
result=$?
echo "$out" |
case "$out" in
*"$ignore"*) grep -v "$ignore"; return 0 ;;
’’) return "$result" ;;
使用metassist 命令处理基于文件的数据
第23 章• 自上而下创建卷(任务) 251
*) cat; return 1 ;;
esac >&2
}
#
# Main
#
# Verify root
if [ "‘id | sed ’s/^[^(]*(\([^)]*\).*/\1/’‘" != root ]
then
echo "This script must be run as root." >&2
exit 1;
fi
# Check for verbose option
case "$1" in
-v) verbose=1 ;;
*) verbose= ;;
esac
# Does the disk set exist?
if metaset -s "$diskset" >/dev/null 2>&1
then
使用metassist 命令处理基于文件的数据
252 Solaris Volume Manager 管理指南• 2006 年10 月
# Take control of disk set
execho metaset -s "$diskset" -t
else
# Create the disk set
autotakeargs=
/usr/sbin/clinfo || autotakeargs=’-A enable’
execho metaset -s "$diskset" $autotakeargs -a -h ‘uname -n | cut -f1 -d.‘
fi
# Format slices
execho fmthard_special -d 7:0:0:0:0 ‘fullpath c1t3d0s7‘
execho fmthard_special -d 7:0:0:0:0 ‘fullpath c1t6d0s7‘
execho fmthard_special -d 7:0:0:0:0 ‘fullpath c1t4d0s7‘
# Add disks to set
execho metaset -s "$diskset" -a c1t3d0
execho metaset -s "$diskset" -a c1t6d0
execho metaset -s "$diskset" -a c1t4d0
# Format slices
execho fmthard_special -d 0:4:0:10773:17649765 ‘fullpath c1t3d0s0‘
execho fmthard_special -d 0:4:0:10773:17649765 ‘fullpath c1t6d0s0‘
execho fmthard_special -d 0:4:0:10773:17649765 ‘fullpath c1t4d0s0‘
使用metassist 命令处理基于文件的数据
第23 章• 自上而下创建卷(任务) 253
execho fmthard_special -d 1:4:0:17660538:21546 ‘fullpath c1t3d0s1‘
execho fmthard_special -d 1:4:0:17660538:21546 ‘fullpath c1t4d0s1‘
execho fmthard_special -d 1:4:0:17660538:21546 ‘fullpath c1t6d0s1‘
# Does hsp000 exist?
metahs -s "$diskset" -i hsp000 >/dev/null 2>&1 || {
# Create hsp hsp000
execho metainit -s "$diskset" hsp000
}
# Add slices to hsp000
execho metahs -s "$diskset" -a hsp000 c1t3d0s1
# Create concat d2
execho metainit -s "$diskset" d2 1 1 c1t4d0s1
# Associate concat d2 with hot spare pool hsp000
execho metaparam -s "$diskset" -h hsp000 d2
# Create concat d1
execho metainit -s "$diskset" d1 1 1 c1t6d0s1
# Associate concat d1 with hot spare pool hsp000
execho metaparam -s "$diskset" -h hsp000 d1
使用metassist 命令处理基于文件的数据
254 Solaris Volume Manager 管理指南• 2006 年10 月
# Create mirror d0
execho metainit -s "$diskset" d0 -m d2 1
execho metattach -s "$diskset" d0 d1
#
使用metassist 命令保存命令文件(Shell 脚本)
以下示例说明如何使用metassist 命令来创建大小为10MB且具有热备件的双向镜像,热备
件可提供额外的容错功能。-f 选项指定容错功能。最后一个参数(-c) 指定不应实际创建
卷,而应将可用来创建指定配置的shell 脚本发送到标准输出中。该命令最后会重定向标准
输出,以便创建/tmp/metassist-shell-script.sh shell 脚本,该脚本以后可用来创建指定
的卷。
# metassist create -s myset -f-r 2 -S 10mb -c > \
/tmp/metassist-shell-script.sh
使用保存的Shell 脚本(由metassist 命令创建)创
建卷
使用metassist 命令创建shell 脚本之后,可以使用该脚本来创建在创建shell 脚本时所指定
的卷。
注意– 在创建脚本时,由metassist 命令创建的命令脚本在很大程度上依赖于在其上创建该
脚本的系统的特定配置。在不同的系统上使用该脚本或者在更改系统配置之后使用该脚本
可能会导致数据损坏或丢失。
 如何执行保存的metassist 命令Shell 脚本
请查看第244 页中的“自上而下创建卷的先决条件”。
请确保自创建shell 脚本以来系统配置未曾进行过更改,而且是在创建脚本的系统上执行脚
本。
执行保存的shell 脚本。
# sh ./metassist-shell-script-name
示例23–7
开始之前
1
2
使用metassist 命令处理基于文件的数据
第23 章• 自上而下创建卷(任务) 255
查看新卷。
# metastat -s diskset-name
执行保存的metassist 命令Shell 脚本
以下示例说明如何借助metassist 命令来使用shell 脚本创建卷。
# sh ./tmp/metassist-shell-script.sh
myset/hsp000: Hotspare pool is setup
myset/hsp000: Hotspare is added
myset/d2: Concat/Stripe is setup
myset/d1: Concat/Stripe is setup
myset/d0: Mirror is setup
myset/d0: submirror myset/d1 is attached
使用metassist 命令创建卷配置文件
通过运行带有-d 参数的metassist 命令,可以生成基于XML的卷配置文件,该配置文件详
细指定要创建的卷及其组件,其中包括所有选项和有关这些卷的相关信息。检查该文件有
助于了解metassist 命令建议使用的配置。如果对该文件进行适当的更改,还可以微调配
置。然后,将更改后的卷配置文件用作metassist 命令的输入来实际创建卷。
 如何使用metassist 命令来创建卷配置文件
请查看第244 页中的“自上而下创建卷的先决条件”。
标识要在其上创建卷的可用存储器。
如果没有明确指定存储器,Solaris Volume Manager 会标识系统上未使用的存储器并使用它
(如果适用的话)。如果您选择指定存储器-可以广泛地指定存储器(例如,控制器1 上
的所有存储器),也可以明确地指定存储器(例如,使用c1t4d2,而不使用c1t4d1),则
Solaris Volume Manager 会使用您指定的存储器。
3
示例23–8
开始之前
1
使用metassist 命令处理基于文件的数据
256 Solaris Volume Manager 管理指南• 2006 年10 月
使用metassist 命令和适用于所执行任务的选项。
使用-d 选项指定不应实际创建卷,而应将基于XML的卷配置文件发送到标准输出中:
# metassist create -s diskset-name -f-r redundancy -a device1, device2... \
-S size -v verbosity [-d]
create 用于创建卷的子命令。
-s diskset-name 指定要用于卷的磁盘集的名称。
-f 指定该卷要与热备件相关联。
-r redundancy 指定要创建的冗余级别(数据副本的数量)。
-a device1, device2... 指定要用于创建卷的设备。
-S size 指定要创建的卷所采用的单位:KB(表示千字节)、MB(表示兆字
节)、GB(表示千兆字节)或TB(兆兆字节)。
-v verbosity 指定输出的详细程度。允许值介于0(几乎无提示的输出)和2(详
细输出)之间。缺省详细程度是1(中等详细程度的输出)。
-d 指定不应实际创建卷。
注– -d 参数所需的基于XML的卷配置文件将发送到标准输出中。但
是,metassist 命令的其余输出将转至标准错误中。您可以在进行选
择时重定向输出流。
有关更多信息,请参见以下示例和metassist(1M) 手册页。
使用metassist 命令创建卷配置文件
以下示例说明如何使用metassist 命令来创建大小为10MB且具有热备件的双向镜像,热备
件可提供额外的容错功能。-f 选项指定容错功能。最后一个参数(-d) 指定不应实际创建
卷,而应将最终可用来创建指定配置的卷配置文件发送到标准输出中。
# metassist create -s myset -f-r 2 -S 10mb -d
.(output truncated)
.
.
2
示例23–9
使用metassist 命令处理基于文件的数据
第23 章• 自上而下创建卷(任务) 257
Volume request completed successfully.






















使用metassist 命令处理基于文件的数据
258 Solaris Volume Manager 管理指南• 2006 年10 月




#
使用metassist 命令保存卷配置文件
以下示例说明如何使用metassist 命令来创建大小为10MB且具有热备件的双向镜像,热备
件可提供额外的容错功能。-f 选项指定容错功能。最后一个参数(-d) 指定不应实际创建
卷,而应将最终可用来创建指定配置的卷配置文件发送到标准输出中。该命令最后会重定
向标准输出,以便创建/tmp/metassist-volume-config.xml 卷配置文件,该文件以后可用来
创建指定的卷。
# metassist create -s myset -f-r 2 -S 10mb -d > \
/tmp/metassist-volume-config.xml
更改metassist 命令的缺省行为
可以使用卷缺省配置文件(/etc/defaults/metassist.xml) 来更改metassist 命令的缺省行
为。通过更改缺省配置文件,可以明确地将特定磁盘或控制器排除或包括在考虑范围之
内。还可以指定由metassist 命令使用的大部分卷设置的要求。
/etc/defaults/metassist.xml 的格式由/usr/share/lib/xml/dtd/volume-defaults.dtd 文档
类型定义(Document Type Definition, DTD) 来指定。该格式在volume-defaults(4) 手册页中
进行介绍。
更改卷缺省配置文件
编辑卷缺省配置文件(/etc/defaults/metassist.xml) 以指定metassist 命令的行为。
注– 在编辑该文件时,必须确保该文件仍旧符合
/usr/share/lib/xml/dtd/volume-defaults.dtd 文档类型定义(Document Type Definition,
DTD)。如果该XML文件不符合DTD,则metassist 命令将失败,并且会出现一条错误消
息。
示例23–10
更改metassist 命令的缺省行为
第23 章• 自上而下创建卷(任务) 259
示例23–11 借助metassist 命令使用更改后的缺省配置创建卷
在创建卷之前,请编辑/etc/default/metassist.xml 文件以指定缺省设置,这些设置将应
用于借助metassist 命令创建的所有卷。在以下示例中,metassist 命令仅在控制器c1 上创
建卷,在创建条带时,仅创建恰好包含四个组件且交错值为512KB 的条带。这些约束适用于
metassist 命令的所有应用场合,直到/etc/default/metassist.xml 文件再次发生更改。
# cat /etc/default/metassist.xml
"/usr/share/lib/xml/dtd/volume-defaults.dtd">




# metassist create -s myset -S 10Gb
metassist 命令会创建一个10 GB 的条带,如/etc/default/metassist.xml 文件中所指定,
该条带将恰好使用四个片且交错值为512 KB。
更改metassist 命令的缺省行为
260 Solaris Volume Manager 管理指南• 2006 年10 月
监视和错误报告(任务)
有时,Solaris Volume Manager 会遇到问题(如由于片级别的物理错误而无法写入卷)。出
现问题后,Solaris Volume Manager 会更改卷的状态,以便系统管理员可以得到通知。但
是,除非借助Solaris Management Console 或者运行metastat 命令在Solaris Volume Manager
GUI 中定期检查卷的状态,否则可能无法立即看到这些状态更改。
本章提供有关Solaris Volume Manager 中提供的各种监视工具的信息。其中一个工具是
Solaris Volume Manager SNMP代理,该代理是Solstice Enterprise AgentsTM 监视软件的子代
理。除了可配置该工具使其报告SNMP陷阱以外,还可以创建一个shell 脚本来不断监视多
种Solaris Volume Manager 功能。此shell 脚本可以作为cron 作业运行,而且可用来确定潜在
的问题。
以下是本章中信息的列表:
 第261 页中的“Solaris Volume Manager 监视和报告(任务列表)”
 第262 页中的“配置mdmonitord 命令以定期检查错误”
 第263 页中的“Solaris Volume Manager SNMP代理概述”
 第263 页中的“配置Solaris Volume Manager SNMP代理”
 第267 页中的“Solaris Volume Manager SNMP代理的限制”
 第267 页中的“用cron 作业监视Solaris Volume Manager”
Solaris Volume Manager 监视和报告(任务列表)
以下任务列表列出了管理Solaris Volume Manager 错误报告所需的过程。
任务说明参考
配置mdmonitord 守护进
程,使其定期检查错误
通过编辑
/lib/svc/method/svc-mdmonitor 脚本来
配置由mdmonitord 守护进程使用的错误
检查间隔。
第262 页中的“配置
mdmonitord 命令以定期检查
错误”
24 第2 4 章
261
任务说明参考
配置Solaris Volume
Manager SNMP代理
编辑/etc/snmp/conf 目录中的配置文
件,以便Solaris Volume Manager 正确地
将陷阱发送给相应的系统。
第263 页中的“配置Solaris
Volume Manager SNMP代理

用cron 命令所运行的脚本
监视Solaris Volume
Manager
创建新脚本或改编现有的脚本以检查错
误,然后从cron 命令运行该脚本。
第267 页中的“用cron 作业
监视Solaris Volume
Manager”
配置mdmonitord 命令以定期检查错误
Solaris Volume Manager 中包括/usr/sbin/mdmonitord 守护进程。当磁盘出现故障时,Solaris
Volume Manager 会检测到该故障并生成一个错误。此错误事件将触发mdmonitord 守护进
程,使其对RAID-1(镜像)卷、RAID-5 卷和热备件执行检查。但是,您还可以将该程序
配置为以指定的时间间隔不断检查错误。
 如何配置mdmonitord 命令以定期检查错误
编辑/lib/svc/method/svc-mdmonitor 脚本,添加定期检查的时间间隔。
成为超级用户。
在所选编辑器中打开/lib/svc/method/svc-mdmonitor 脚本。在该脚本中查找以下部分:
$MDMONITORD
error=$?
case $error in
0) exit 0
;;
*) echo "Could not start $MDMONITORD. Error $error."
exit 0
更改以mdmonitord 命令开头的行,具体操作为添加一个-t 标志以及检查的时间间隔(以秒
为单位)。
$MDMONITORD -t 3600
error=$?
1
2
3
配置mdmonitord 命令以定期检查错误
262 Solaris Volume Manager 管理指南• 2006 年10 月
case $error in
0) exit 0
;;
*) echo "Could not start $MDMONITORD. Error $error."
exit 0
;;
esac
重新启动mdmonitord 命令以激活所做的更改。
# svcadm restart system/mdmonitor
有关更多信息,请参见mdmonitord(1M) 手册页。
Solaris Volume ManagerSNMP代理概述
Solaris Volume Manager SNMP陷阱代理需要核心软件包SUNWlvmr、SUNWlvma 的软件包以及
Solstice Enterprise Agents。核心软件包包括:
 SUNWmibii
 SUNWsacom
 SUNWsadmi
 SUNWsasnm
这些软件包是Solaris 操作系统的一部分。缺省情况下会安装这些软件包,除非在安装时修
改了软件包选项或者安装的是一组最少的软件包。要确认这些软件包是否可用,请使用
pkginfo pkgname 命令,正如在pkginfo SUNWsasnm 中一样。确认了这五个软件包均可用之
后,需要按照下一节中的说明配置Solaris Volume Manager SNMP代理。
配置Solaris Volume ManagerSNMP代理
Solaris Volume Manager SNMP代理在缺省情况下处于禁用状态。请使用以下过程启用SNMP
陷阱。
无论何时升级Solaris 操作系统,都可能需要编辑the/etc/snmp/conf/enterprises.oid 文件
并再次附加步骤6 中的行,然后重新启动Solaris Enterprise Agents 服务器。
在完成此过程之后,系统将向指定的一台或多台主机发送SNMP陷阱。系统发送陷阱时,
需要使用适当的SNMP监视器(如Solstice Enterprise Agents 软件)来查看它们。
 

以上文章转自于 : http://developers.sun.com.cn/
阅读(686) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~