JavaScript is required to for searching.
跳过导航链接
退出打印视图
Solaris Volume Manager 管理指南     Oracle Solaris 10 1/13 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  Solaris Volume Manager 入门

2.  存储管理概念

3.  Solaris Volume Manager 概述

4.  Solaris Volume Manager for Sun Cluster(概述)

5.  配置和使用 Solaris Volume Manager(方案)

6.  状态数据库(概述)

7.  状态数据库(任务)

8.  RAID-0(条带和串联)卷(概述)

9.  RAID-0(条带和串联)卷(任务)

10.  RAID-1(镜像)卷(概述)

11.  RAID-1(镜像)卷(任务)

12.  软分区(概述)

13.  软分区(任务)

14.  RAID-5 卷(概述)

15.  RAID-5 卷(任务)

16.  热备用池(概述)

17.  热备用池(任务)

18.  磁盘集(概述)

19.  磁盘集(任务)

20.  维护 Solaris Volume Manager(任务)

21.  Solaris Volume Manager 的最佳做法

22.  自上而下创建卷(概述)

23.  自上而下创建卷(任务)

自上而下创建卷(任务列表)

自上而下创建卷的先决条件

自动创建卷

通过指定输出的详细级别来分析卷的创建过程

如何使用 metassist 命令创建 RAID-1(镜像)卷

使用 metassist 命令处理基于文件的数据

使用 metassist 命令创建命令文件(shell 脚本)

如何使用 metassist 命令创建命令文件(shell 脚本)

使用保存的 shell 脚本(由 metassist 命令创建)创建卷

如何执行保存的 metassist 命令 shell 脚本

使用 metassist 命令创建卷配置文件

如何使用 metassist 命令创建卷配置文件

更改 metassist 命令的缺省行为

更改卷缺省文件

24.  监视和错误报告(任务)

25.  Solaris Volume Manager 故障排除(任务)

A.  重要的 Solaris Volume Manager 文件

B.  Solaris Volume Manager 快速参考

C.  Solaris Volume Manager CIM/WBEM API

索引

使用 metassist 命令处理基于文件的数据

使用 metassist 命令可以创建用于评估卷特征或实际创建卷的文件。

使用 metassist 命令创建命令文件(shell 脚本)

通过运行带 -c 参数的 metassist 命令,可以生成一个 Bourne shell 脚本,其中包含将用来创建卷配置的命令。通过该技术可以在实际创建卷之前检查命令,甚至可以根据具体需要稍微修改脚本。

如何使用 metassist 命令创建命令文件(shell 脚本)

开始之前

查看自上而下创建卷的先决条件

  1. 确定要在其上创建卷的可用存储。

    如果未显式指定存储,则 Solaris Volume Manager 会识别系统上未使用的存储并根据需要使用存储。如果选择指定存储,无论是广泛地指定(例如,控制器 1 上的所有存储)还是明确地指定(例如,使用 c1t4d2,但不使用 c1t4d1),Solaris Volume Manager 都会使用指定的存储。

  2. 使用 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) 手册页。

示例 23-6 使用 metassist 命令创建命令文件(shell 脚本)

以下示例说明如何使用 metassist 命令来创建大小为 10 MB 且具有可提供额外容错功能的热备件的双向镜像。-f 选项指定容错功能。最后一个参数 (-c) 指定不应实际创建卷,而应将可用来创建指定配置的 shell 脚本发送到标准输出中。

# 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
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" ;;
        *) 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
    # 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`
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

# Create mirror d0
execho metainit -s "$diskset" d0 -m d2 1
execho metattach -s "$diskset" d0 d1
# 

示例 23-7 使用 metassist 命令保存命令文件(shell 脚本)

以下示例说明如何使用 metassist 命令来创建大小为 10 MB 且具有可提供额外容错功能的热备件的双向镜像。-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 脚本

开始之前

查看自上而下创建卷的先决条件

  1. 确保自创建 shell 脚本以来系统配置未进行过更改,而且是在创建脚本的同一系统上执行该脚本。
  2. 执行保存的 shell 脚本。
    # sh ./metassist-shell-script-name
  3. 查看新卷。
    # metastat -s diskset-name

示例 23-8 执行保存的 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 命令创建卷配置文件

开始之前

查看自上而下创建卷的先决条件

  1. 确定要在其上创建卷的可用存储。

    如果未显式指定存储,则 Solaris Volume Manager 会识别系统上未使用的存储并根据需要使用存储。如果选择指定存储,无论是广泛地指定(例如,控制器 1 上的所有存储)还是明确地指定(例如,使用 c1t4d2,但不使用 c1t4d1),Solaris Volume Manager 都会使用指定的存储。

  2. 使用 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) 手册页。

示例 23-9 使用 metassist 命令创建卷配置文件

以下示例说明如何使用 metassist 命令来创建大小为 10 MB 且具有可提供额外容错功能的热备件的双向镜像。-f 选项指定容错功能。最后一个参数 (-d) 指定不应实际创建卷,而应将最终可用来创建指定配置的卷配置文件发送到标准输出中。

# metassist create -s myset -f -r 2 -S 10mb -d


.(output truncated)
.
.
Volume request completed successfully.
<?xml version="1.0"?>
<!DOCTYPE volume-config SYSTEM "/usr/share/lib/xml/dtd/volume-config.dtd">
 <volume-config>
<diskset name="myset"/>
<disk name="c1t3d0"/>
<disk name="c1t6d0"/>
<disk name="c1t4d0"/>
<slice name="c1t3d0s7" sizeinblocks="0"/>
<slice name="c1t3d0s0" sizeinblocks="17649765" startsector="10773"/>
<slice name="c1t6d0s7" sizeinblocks="0"/>
<slice name="c1t6d0s0" sizeinblocks="17649765" startsector="10773"/>
<slice name="c1t4d0s7" sizeinblocks="0"/>
<slice name="c1t4d0s0" sizeinblocks="17649765" startsector="10773"/>
<hsp name="hsp000">
<slice name="c1t3d0s1" sizeinblocks="21546" startsector="17660538"/>
</hsp>
<mirror name="d0" read="ROUNDROBIN" write="PARALLEL" passnum="1">
<concat name="d2">
<slice name="c1t4d0s1" sizeinblocks="21546" startsector="17660538"/>
<hsp name="hsp000"/>
</concat>
<concat name="d1>
<slice name="c1t6d0s1"sizeinblocks="21546" startsector="17660538"/>
<hsp name="hsp000"/>
</concat>
</mirror>
</volume-config>
# 

示例 23-10 使用 metassist 命令保存卷配置文件

以下示例说明如何使用 metassist 命令来创建大小为 10 MB 且具有可提供额外容错功能的热备件的双向镜像。-f 选项指定容错功能。最后一个参数 (-d) 指定不应实际创建卷,而应将最终可用来创建指定配置的卷配置文件发送到标准输出中。命令的结尾将重定向标准输出,以便创建 /tmp/metassist-volume-config.xml 卷配置文件,该配置文件稍后可用于创建指定的卷。

# metassist create -s myset -f -r 2 -S 10mb -d >  \
/tmp/metassist-volume-config.xml