ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
Solaris Volume Manager 管理ガイド Oracle Solaris 10 1/13 Information Library (日本語) |
1. Solaris Volume Manager の使用開始
4. Solaris Volume Manager for Sun Cluster (概要)
5. Solaris Volume Manager の構成と使用 (シナリオ)
8. RAID-0 (ストライプと連結) ボリューム (概要)
9. RAID-0 (ストライプおよび連結) ボリューム (タスク)
20. Solaris Volume Manager の保守 (タスク)
21. Solaris Volume Manager のベストプラクティス
metassist コマンドを使用して RAID-1 (ミラー) ボリュームを作成する方法
metassist コマンドによるファイルベースのデータ処理
metassist コマンドによるコマンドファイル (シェルスクリプト) の作成
metassist コマンドを使用してコマンドファイル (シェルスクリプト) を作成する方法
metassist コマンドで作成されたシェルスクリプトによるボリュームの作成
保存された metassist コマンドのシェルスクリプトを実行する方法
25. Solaris Volume Manager のトラブルシューティング (タスク)
A. 重要な Solaris Volume Manager ファイル
B. Solaris Volume Manager のクイックリファレンス
metassist コマンドを使用すると、ボリューム特性の評価に使用するファイル、または実際にボリュームを作成するために使用するファイルを作成できます。
metassist コマンドに -c 引数を指定すると、ボリューム構成の作成に使用できるコマンドを含んだ Bourne シェルスクリプトが生成されます。この方法を使用すれば、ボリュームを実際に作成する前にコマンドを確認でき、必要に応じてスクリプトを微調整することもできます。
始める前に
「ボリュームをトップダウン作成するための前提条件」を確認してください。
ストレージを明示的に指定しなかった場合、システム上の未使用のストレージを Solaris Volume Manager が特定し、必要に応じて使用します。ストレージを指定する場合は、広義 (たとえば、コントローラ 1 のすべてのストレージ) または狭義 (たとえば、c1t4d2 は使用し、c1t4d1 は使用しない) に指定でき、そのストレージが Solaris Volume Manager で使用されます。
-c オプションを使用して、ボリュームを実際には作成しないことを指定します。
# metassist create -s diskset-name -f -r redundancy -a device1, device2... \ -S size -v verbosity [-c]
ボリュームを作成するために使用するサブコマンドです。
ボリュームに使用するディスクセットの名前を指定します。
ボリュームとホットスペアを対応付けることを指定します。
作成する冗長レベル (データコピー数) を指定します。
ボリュームの作成に使用できるデバイスを指定します。
作成するボリュームのサイズを KB (キロバイト)、MB (メガバイト)、GB (ギガバイト)、または TB (テラバイト) 単位で指定します。
出力の詳細度を指定します。指定できる値の範囲は 0 (出力がほとんどない) から 2 (出力が多い) です。デフォルトレベルは1 (中程度の出力) です。
ボリュームを実際には作成しないことを指定します。代わりに、指定した構成を作成するためのシェルスクリプトが、標準出力に送信されます。
注 - -c 引数によって要求されたシェルスクリプトは標準出力に送信され、metassist コマンドの他の出力は標準エラーに送信されます。出力ストリームは自由にリダイレクトできます。
詳細は、次の例と metassist(1M) のマニュアルページを参照してください。
例 23-6 metassist コマンドによるコマンドファイル (シェルスクリプト) の作成
次の例では、metassist コマンドを使用して、容量が 10M バイトの 2 面ミラーとホットスペアを作成し、障害耐性を強化する方法を示します。-f オプションで障害耐性を指定します。最後の引数 (-c) で、ボリュームを実際には作成しないことを指定します。代わりに、指定した構成を作成するためのシェルスクリプトが、標準出力に送信されます。
# 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 コマンドを使用してコマンドファイル (シェルスクリプト) を保存する
次の例では、metassist コマンドを使用して、容量が 10M バイトの 2 面ミラーとホットスペアを作成し、障害耐性を強化する方法を示します。-f オプションで障害耐性を指定します。最後の引数 (-c) で、ボリュームを実際には作成しないことを指定します。代わりに、指定した構成を作成するためのシェルスクリプトが、標準出力に送信されます。コマンドの最後で、標準出力をリダイレクトして /tmp/metassist-shell-script.sh シェルスクリプトを作成します。これはあとで、指定したボリュームを作成するために使用できます。
# metassist create -s myset -f -r 2 -S 10mb -c > \ /tmp/metassist-shell-script.sh
metassist コマンドでシェルスクリプトを作成したら、このスクリプトを使ってボリュームを作成できます。ボリュームは、シェルスクリプトの作成時に指定したとおりに作成されます。
![]() | 注意 - metassist コマンドで作成したコマンドスクリプトは、スクリプトを作成したシステムのその時点の構成に大きく依存しています。このスクリプトを別のシステムで使用したり、このスクリプトをシステム構成の変更後に使用したりすると、データが壊れたり失われたりすることがあります。 |
始める前に
「ボリュームをトップダウン作成するための前提条件」を確認してください。
# sh ./metassist-shell-script-name
# metastat -s diskset-name
例 23-8 保存された metassist コマンドのシェルスクリプトを実行する
次の例では、metassist コマンドでシェルスクリプトを使用してボリュームを作成する方法を示します。
# 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 引数を指定すると、XML ベースのボリューム構成ファイルが生成されます。このファイルには、ボリュームに関連するすべてのオプションや情報など、ボリュームとそのコンポーネントの詳細が含まれています。このファイルを調べることによって、metassist コマンドが推奨する構成を知ることができます。さらに、このボリューム構成ファイルを慎重に変更して構成を微調整したあと、実際のボリューム作成の際に metassist コマンドへの入力として使用することもできます。
始める前に
「ボリュームをトップダウン作成するための前提条件」を確認してください。
ストレージを明示的に指定しなかった場合、システム上の未使用のストレージを Solaris Volume Manager が特定し、必要に応じて使用します。ストレージを指定する場合は、広義 (たとえば、コントローラ 1 のすべてのストレージ) または狭義 (たとえば、c1t4d2 は使用し、c1t4d1 は使用しない) に指定でき、そのストレージが Solaris Volume Manager で使用されます。
-d オプションを使用して、ボリュームを実際には作成しないことを指定します。代わりに、XML ベースのボリューム構成ファイルが標準出力に送信されます。
# metassist create -s diskset-name -f -r redundancy -a device1, device2... \ -S size -v verbosity [-d]
ボリュームを作成するために使用するサブコマンドです。
ボリュームに使用するディスクセットの名前を指定します。
ボリュームとホットスペアを対応付けることを指定します。
作成する冗長レベル (データコピー数) を指定します。
ボリュームの作成に使用できるデバイスを指定します。
作成するボリュームのサイズを KB (キロバイト)、MB (メガバイト)、GB (ギガバイト)、または TB (テラバイト) 単位で指定します。
出力の詳細度を指定します。指定できる値の範囲は 0 (出力がほとんどない) から 2 (出力が多い) です。デフォルトレベルは1 (中程度の出力) です。
ボリュームを実際には作成しないことを指定します。
注 - -d 引数によって要求された XML ベースのボリューム構成ファイルは標準出力に送信されます。ただし、metassist コマンドの他の出力は標準エラーに送信されます。出力ストリームは自由にリダイレクトできます。
詳細は、次の例と metassist(1M) のマニュアルページを参照してください。
例 23-9 metassist コマンドを使用してボリューム構成ファイルを作成する
この例では、metassist コマンドを使用して、容量が 10M バイトの 2 面ミラーとホットスペアを作成し、障害耐性を強化する方法を示します。-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 コマンドを使用して、容量が 10M バイトの 2 面ミラーとホットスペアを作成し、障害耐性を強化する方法を示します。-f オプションで障害耐性を指定します。最後の引数 (-d) で、ボリュームを実際には作成しないことを指定します。代わりに、指定した構成を最終的に作成するためのボリューム構成ファイルが、標準出力に送信されます。コマンドの最後で、標準出力をリダイレクトして /tmp/metassist-volume-config.xml ボリューム構成ファイルを作成します。これはあとで、指定したボリュームを作成するために使用できます。
# metassist create -s myset -f -r 2 -S 10mb -d > \ /tmp/metassist-volume-config.xml