この節では、ディスクセットの予約と解放、ディスクセットに対するホストとディスクの追加など、ディスクセットの保守作業について説明します。
ディスクセットの保守を実行するには、ホストがディスクセットの所有者であるか、ディスクセットを予約している必要があります (ホストは、セットに最初のドライブを置くことによって、ディスクセットの暗黙的な所有権を取得します)。
ディスクセットを操作するには、ルートがグループ 14 のメンバーであるか、./rhosts ファイルに他 (各ホスト) のホスト名のエントリが含まれていることが必要です。
ディスクセットは、「安全」または「強制的」に予約できます。ディスクセット内のあるホストがディスクセットを予約すると、ディスクセット内の他のホストは、ディスクセット内のドライブのデータにアクセスできません。
安全に - そのディスクセットを予約しているホストが他に存在しない場合にだけ、ディスクセットをユーザーのホスト用に予約します。
強制的に - 他のホストがセットを現在予約しているかどうかとは無関係に、ディスクセットを予約します。ディスクセット内のホストがダウンしているか通信していない場合は、この方法を使用します。この時点で他のホストがディスクセットを予約していた場合、予約が失われることによってそのホストはパニック状態となります。
ディスクセット内のホストが通信していることにかなりの確信がもてる場合、通常は安全な予約を実行するようお勧めします。
前提条件 (「DiskSuite オブジェクトを保守するための前提条件」) を満たし、予備情報 (「ディスクセットを操作するための予備情報」) を読んだことを確認します。metaset(1M) を使用して、ディスクセットを安全または強制的に予約します。詳細は、metaset(1M) のマニュアルページを参照してください。
他のホストがディスクセットの所有権をもつ場合、SCSI 予約の競合によって、そのホストはパニック状態になります。
red# metaset ... Set name = relo-red, Set number = 2 Host Owner red blue ... red# metaset -s relo-red -t red# metaset ... Set name = relo-red, Set number = 2 Host Owner red Yes blue ... |
この例では、ホスト red がホスト blue と通信を行い、ホスト red がセットの予約を試みる前に、ホスト blue がディスクセットの予約を解放したことを確認します。
この例では、ホスト blue がセット relo-red を所有していた場合、上記の出力の「Owner」カラムはまだブランクのままです。metaset(1M) コマンドは、(他のホストではなく) 発行側のホストがディスクセットを所有するかどうかだけを示します。
# metaset -s relo-red -t -f |
この例では、ホスト red はホスト blue と通信しません。その代わり、ディスクセット内のドライブは警告なしに予約されます。ホスト blue がディスクセットを予約している場合、予約が失われるためパニック状態となります。
セット内のドライブの保守を行うとき、ディスクセットを解放すると便利です。ディスクセットが解放されると、ホストからはアクセスできません。ディスクセット内の両方のホストがセットを解放した場合、いずれのホストも、セット内で定義されたメタデバイスやホットスペア集合にアクセスできません。
前提条件 (「DiskSuite オブジェクトを保守するための前提条件」) を満たし、予備情報 (「ディスクセットを操作するための予備情報」) を読んだことを確認する。
metaset(1M) コマンドを使用して、ディスクセットを解放する。
# metaset -s <ディスクセット> -r |
このコマンドでは、
-s <ディスクセット> |
metaset が作用するディスクセットの名前を指定します。 |
-r |
ディスクセットの所有権を解放します。セット内でのすべてのディスクの予約は解除されます。セット内部で設定されたメタデバイスは、もうアクセスできません。 |
オプションなしで metaset(1M) コマンドを使用することによって、ディスクセットがこのホスト上で解放されたことを確認する。
# metaset |
red# metaset -s relo-red -r red# metaset -s relo-red Set name = relo-red, Set number = 1 Host Owner red blue Drive Dbase c1t0d1 Yes c1t2d0 No c1t3d0 No c1t4d1 No c2t2d0 Yes c3t0d1 Yes c3t2d0 No c3t3d0 No c3t4d1 No |
この例では、ディスクセット relo-red を解放します。ディスクセットの所有者が存在しないことに注意してください。状態をホスト red から見ると、誤解を招くことがあります。ホストが調査できるのは、そのホストがディスクセットを所有するかどうかだけです。たとえば、ホスト blue がディスクセットを予約した場合、ホスト red からはそのことがわかりません。この場合、予約を確認できるのはホスト blue だけです。
ディスクセットを定義したら、ディスクセットにドライブを追加できます。
前提条件 (「DiskSuite オブジェクトを保守するための前提条件」) を満たし、予備情報 (「ディスクセットを操作するための予備情報」) を読んだことを確認する。
metaset(1M) コマンドを使用して、既存のディスクセットにドライブを追加する。
# metaset -s <ディスクセット> -a <ドライブ名> ... |
このコマンドでは、
-s <ディスクセット> |
metaset が作用するディスクセットの名前を指定します。 |
-a |
指定のディスクセットにドライブを追加します。 |
<ドライブ名> ... |
ディスクセットに追加するドライブを指定します。ドライブ名の形式は cxtxdx であり、名前の最後に「sx」スライス識別子を置くことはできません。このドライブ名は、ディスクセット内のすべてのホストに関して、同じメジャー名とマイナー名をもつ必要があります。 |
ドライブがディスクセットに追加されると、DiskSuite は、残りのドライブ全体を通じてメタデバイスの状態データベースの複製のバランスを再調整します。詳細は、「ディスクセットの作成」を参照してください。
データが収められているドライブを追加した場合は、データが失われます。
オプションなしの metaset(1M) コマンドを使用して、ホストがディスクセットに追加されたことを確認する。
# metaset |
red# metaset -s relo-red -a c2t5d0 red# metaset Set name = relo-red, Set number = 1 Host Owner red Yes blue Drive Dbase c1t2d0 Yes c1t3d0 Yes c2t2d0 Yes c2t3d0 Yes c2t4d0 Yes c2t5d0 No |
この例では、ドライブ c2t5d0 をディスクセット relo-red に追加します。
DiskSuite ツールの実行中にディスクセットに対してドライブの追加または削除を行なった場合、設定が変更されたことを示すダイアログボックスが表示されます。「ファイル」メニューから「構成の再走査」を選択して設定を再ロードするか、または DiskSuite ツールを終了してから再起動します。
DiskSuite は、ディスクセットあたり最大 2 つのホストをサポートします。1 つのホストしかもたない既存のディスクセットには、別のホストを追加できます。
前提条件 (「DiskSuite オブジェクトを保守するための前提条件」) を満たし、予備情報 (「ディスクセットを操作するための予備情報」) を読んだことを確認する。
ホストを追加する。
# metaset -s <ディスクセット> -a -h <ホスト> ... |
このコマンドでは、
-s <ディスクセット> |
metaset が作用するディスクセットの名前を指定します。 |
-a |
指定のディスクセットにホストを追加します。 |
-h <ホスト>... |
ディスクセットに追加される 1 つ以上のホスト名を指定します。最初のホストを追加すると、セットが作成されます。ホスト名は、/etc/nodename にあるものと同じ名前です。 |
オプションなしで metaset(1M) コマンドを使用して、ホストがディスクセットに追加されたことを確認する。
# metaset |
red# metaset -s relo-red -a -h blue red# metaset -s relo-red Set name = relo-red, Set number = 1 Host Owner red Yes blue Drive Dbase c1t0d1 Yes c1t2d0 No c1t3d0 No c1t4d1 No c2t2d0 Yes c3t0d1 Yes c3t2d0 No c3t3d0 No c3t4d1 No |