メタディスクとディスクパスグループは、2 つのパスを介してアクセスできるディスクに対してだけ作成することができます。一般的には、異なるシステムボード上にある別々のコントローラを使用する必要があります。
ディスクが AP の制御下に置かれた場合、またはパスグループが削除された場合に、AP はディスクのデータを変更しません (例外として、AP データベースコピーを含むスライス上にあるデータは変更されます)。AP は、ディスクのパーティションを再分割しません。パスグループが削除された場合も、その物理デバイス名を使ってデータにアクセスすることができます。
以下に、ディスクデバイスの「物理」デバイスノードの例を示します。
/dev/dsk/c0t0d0s0
/dev/rdsk/c0t0d0s0
デバイス名の各要素は以下のものを表します。
c ホスト (ディスクアレイではない) 上の入出力ポート
t ディスクアレイ内のバス
d そのバス上のディスクのターゲット ID
s ディスク上のスライス番号
これらの物理デバイスノードは、SCSI ディスク上のパーティションへの特定の物理パスを表します。
SCSI ディスクの場合は、デバイス名の各要素は以下のものを表します。
c ホストのアダプタ番号
t ディスクトレイのターゲット番号
d ディスク番号
s スライス番号
各コントローラポートには、ポート番号 (c0 など) とポート名 (pln:2 または sf:3 など) があります。ポート名は、コロンで区切られるポートタイプと「インスタンス」番号から成ります。AP のポート名は、以前のバージョンから変更されています。ただし、この変更は、ディスクドライバの命名規約にだけ適用され、ネットワークの命名規約には適用されません。インスタンス番号の詳細は、path_to_inst(4) を参照してください。
ディスクアレイが 2 つのポートに接続されている場合、どちらのパスからも、/dev/dsk/c0t0d0s0 または /dev/dsk/c1t0d0s0 のような物理デバイスノードによってアクセスすることができます。
メタディスクのデバイスノードは、パスグループの主パスの物理デバイスノードから作成されます。以下に、メタディスクのデバイスノードの例を 2 つ示します。
/dev/ap/dsk/mc0t0d0s0
/dev/ap/rdsk/mc0t0d0s0
このように、ap ディレクトリが追加され、m (「メタ」を表します) がデバイス指定の前に付きます。メタディスクのデバイスノードは、複数のパスから配下の物理ディスクドライブにアクセスすることができます。
メタディスクは、以下の 2 つの場合に、入出力中のパスから代替パスに自動的に切り替えることができます。
入出力中のパスに障害が発生した場合
入出力中のパスのコントローラを持つボードが DR の切り離し 操作によって切り離された場合。DR Detach の際の自動切り替えは、Sun Enterprise 10000 サーバーでだけ可能です
入出力中のパスに障害が発生すると、代替パスが使用可能な場合にだけ自動切り替えが試みられます。障害の発生したパスは、使用不能または「試行済み」と記録されます。試行済みパスは apconfig -S コマンドで特定することができます。
# apconfig -S c1 pln:0 P A c2 pln:1 T メタディスク名: mc1t5d0 mc1t4d0 mc1t3d0 mc1t2d0 mc1t1d0 mc1t0d0
この例では、現在、休止中のパスである pln:1 に、切り替えが試行され失敗したことを示す「T」が付いています。
試行済みフラグは、自動切り替え操作に関してだけ有効です (手動切り替え操作の場合には関係ありません)。通常、AP は試行済みパスへの自動的切り替えは実行しません。この条件によって、障害が発生している 2 つのパス間で、切り替えの試行を繰り返すことを回避します。
試行済みフラグは、以下のどれかの処置によってリセットできます。
対応するドメインを再起動する
試行済みと表示されたコントローラを持つボードを DR Detach した後で、DR Attach を実行する
特定のコントローラについて、試行済みフラグを手動でリセットする
# apdisk -w pln:1
この例では、pln:1 は試行フラグが true に設定されているコントローラです。 apdisk -w 機能は、慎重に使用してください。このコマンドは試行済みフラグをクリアするだけで、コントローラやデバイスの潜在的な問題には対処しません。このコマンドは、障害のあるパスが DR 操作による介入や再起動を実行しなくても復元された場合にだけ使用してください。手動切り替えは、試行済みと表示されたパスに対してだけ実行できます。
ディスクアレイとコントローラを構成する前に、ディスクの使用優先順位を決めておく必要があります。ディスク資源の可用性は、性能との兼ね合い、あるいはハードウェアの追加により高めることができます。
たとえば、デュアルポートの SSA ディスクアレイの場合を考えてみます。この種のデバイスは 1 つまたは 2 つの Fibre Channel ディスクコントローラ (SOC コントローラ) に接続できます。SSA の内部には複数のターゲットが存在し、各ターゲットには複数のディスクが含まれ、各ディスクは複数のスライスに分割されます。システムの構成方法によっては、それらのディスク入出力資源に対して以下のような異なるレベルの競合が発生することがあります。
ディスクレベルの競合
ターゲットレベルの競合 (入出力バスの競合)
コントローラレベルの競合
たとえば、1 つのディスクを 4 つのスライスに分割し、その 4 つのスライスから 1 つのファイルシステムを作成する場合を想定します。このファイルシステムは複数のスライスにまたがることになりますが、これらのスライスは実際は同一のディスク上に存在しています。この場合、ファイルシステムは単純に 1 つのスライス上に配置した方が良いかもしれません。この構成の場合は、ファイルシステムの読み取りおよび書き込みのたびに同じディスクへのアクセスが必要になるので、ディスクレベルの競合が発生します。
ファイルシステムは、同じターゲット内の複数のディスクにまたがって配置することも可能です。しかしこの構成では、ファイルシステムの読み取りおよび書き込みのたびに同じターゲットへのアクセスが生じるので、ターゲットレベルの競合が発生します。ターゲットレベルの競合はディスクレベルの競合ほど深刻な問題ではありませんが、不安定な構成であることに変わりありません。
ファイルシステムを同じ SSA 内の多数のターゲットにまたがって配置した場合、コントローラレベルの競合が発生します。これは、ファイルシステムの読み取りおよび書き込みのたびに同じコントローラを使用するためです。
一般的にファイルシステムは、複数のコントローラを使用して、複数のディスクアレイにまたがって作成するのが最良です。ただしこの場合、ディスクアクセスの速度とシステムの可用性との兼ね合いを考慮する必要があります。ファイルシステムに使用するディスクアレイを増やすに従い、ディスクアクセスの速度はある程度まで向上します。しかし、いずれかのディスクアレイでコンポーネントの障害が発生すると、ファイルシステムは使用できなくなります。ファイルシステムのディスクアレイの数を少なく (たとえば 1 つに) 抑えれば、速度などの性能は低下しますが、ファイルシステムの障害を引き起こす可能性があるコンポーネントの数は少なくなるため、システム全体の可用性は向上します。
たとえば、3 つのデュアルポート SSA ディスクアレイに 6 つのディスクコントローラが接続されている状況を考えてみます。
可用性を最大限に引き出したい場合は、AP を使用してそれぞれの SSA に代替パスを設定します。この構成の利点は、システムボードの保守やアップグレードの際に、DR を使用してディスクアレイ上のファイルシステムに対するアクセスを失うことなくボードを自由に接続・切り離しできることにあります。当然この場合は、代替のディスクコントローラ (SOC コントローラ) は異なるシステムボード上に配置することになります。これを応用して、それぞれ 3 つのディスクコントローラを搭載したシステムボードを 2 枚使用する構成も考えられます。これは簡単ですっきりとした構成です。この構成では、一方のボードを切り離す必要がある場合、コントローラを他方のボード上に切り替えることで対処できます。また、1 つのボードを切り離して接続するだけで、ドメイン間でのディスク資源の切り替えが可能です。
ただしこの場合、それぞれの SSA に2 つずつの SOC コントローラを購入する必要があります。また、非常に大規模な構成の場合、すべての SOC コントローラをホストできる環境を整備するには、デュアルパスの設置のために大量の SSA が必要となり、使用できる SBus スロット数の上限を越える可能性もあります。
SDS や VERITAS Volume Manager(TM)(VxVM) などの他社製のボリュームマネージャを用いてディスクをミラー化している環境で DR によりシステムボードを切り離す場合は、AP と DR の両方で正しく動作するように、ボリュームとミラーを構成する必要があります。
たとえば、システムボードが 12 枚あり、それぞれにホストアダプタ (図 3-2では 「コントローラ」と表記) が 1 つずつ存在する場合を考えてみましょう。
この状況でミラー化されたボリュームを作成する必要があるとします。次の構成を検討していると仮定します。
例 1 では、vol01-01 は、それぞれが異なる 4 つシステムボードに存在する 4 つのコントローラによってアクセスされる 4 方向のスライスで構成されます。vol01-01 は、同じく 4 方向のスライスで構成される vol01-02 にミラー化されます。たとえば、コントローラ 0 のスライス 0 はコントローラ 3 のスライス 1 にミラー化されます。
これらの 4 つのコントローラの 1 つが搭載されているボードを切り離す必要がある状況を考えてみます。その場合、ボードを切り離す前に、そのボード上のコントローラを使用するミラーの一方を停止する必要があります。しかし、上図の構成では、それは不可能です。たとえば、コントローラ 0 があるボード 0 を切り離す場合、ミラー化する側とされる側の両方を停止する必要があり、その場合、ファイルシステムはアクセスできなくなります。つまり、上図の構成では、どのボードに対しても DR を使用することはできません。
この状況を回避する 1 つの方法は、たとえば、図 3-4に示すように、同じシステムボードのコントローラがミラー化する側とされる側のいずれか一方にしか現れないようにボリュームをミラー化することです。
例 2 では、切り離そうとするボード (ボード 0 〜 5 のいずれか) 上のコントローラを使用するミラーの一方を最初に停止することによってボードを切り離すことができます。たとえば、ボード 4 (コントローラ 4 のボード) を切り離すには、まず vol01-02 を停止すればよいだけです。ファイルシステムには vol01-01 を使ってアクセスできますから、ファイルシステムに対するアクセスが失われることはありません。後でボード 4 を再接続すると、再びミラーに vol01-02 を追加することができます。
ただし、この回避策で問題なのは、ミラーが停止しているときシステムが単一点障害に弱くなるという点です。ディスクに障害が発生しても、ミラー化バックアップディスクは存在しません。しかしながら、この問題には、AP を使用して対処することができます。以下の AP メタデバイスを構成します。
mc0 - コントローラ 0 と 6 のメタデバイス
mc1 - コントローラ 1 と 7 のメタデバイス
mc2 - コントローラ 2 と 8 のメタデバイス
mc3 - コントローラ 3 と 9 のメタデバイス
mc4 - コントローラ 4 と 10 のメタデバイス
mc5 - コントローラ 5 と 11 のメタデバイス
上記の mc で始まる名前は説明を簡単にするためのものです。完全なメタデバイス名は、たとえば mc0t0d0s0 であり、これは代替パスとしてデバイス c0t0d0s0 と c6t0d0s0 をカプセル化します。
次の構成を考えてみます。
例 3 では、ミラーを停止させることなくどのボード (ボード 0 〜 11) でも切り離すことができ、単一点障害にも強くなります。たとえば、コントローラ 4 のあるボード 4 を切り離すには、まずメタデバイス mc4 を切り替えて、ボード 10 上のコントローラ 10 を使用するようにします (AP のコマンド、apconfig -P を使用するだけで可能)。
この例では、RAS サポートのレベル (すなわち、ディスク入出力資源の可用性と単一点障害に対する保護レベル) を高めるにつれて、コントローラとボード数を増やす必要があります。つまり、RAS 機能のサポートレベルを向上させるには、システムコストの増大が伴うということになります。
ただし、これは実際の例ではありません。この例の主眼点は、ボリュームとミラーを構成するときには AP と DR の両方を考慮する必要があるということです。両方を考慮しないと、いずれか一方が使用できなくなる状況に陥ることがあります。他社製のボリュームマネージャを使用する場合は、ボリュームを構成する「物理」コントローラおよびスライスの記録を残してください。ボリュームマネージャは、物理コンポーネントを自動的に選択するように使用することができますが、この選択プロセスでは、AP と DR に関する注意事項は考慮されません。AP と DR の両方に対応するには、ボリュームを構成する物理コンポーネントを明示的に選択する必要があります。
この節では (SSA ディスクアレイ用の) pln ポートを使用するコマンドの例を用いています。Sun StorEdge(TM) A5000 ディスクアレイを使用している場合は、pln ポートと示されている部分に sf ポートまたは fp ポート (Solaris 8 だけ) を指定します。サンがサポートするデバイスの一覧については『Solaris 8 2/00 Sun ハードウェアマニュアル (補足)』を参照してください。
パスグループの代替パスを構成する 2 つ のポートを決定します。
apinst(1M) コマンドを以下のように実行し、すべてのポート ( pln:0 および pln:1 など) およびそれらのディスクデバイスノード (/dev/dsk/c1t0d0 など) を表示します。
# apinst pln:0 /dev/dsk/c1t0d0 /dev/dsk/c1t1d0 /dev/dsk/c1t2d0 /dev/dsk/c1t3d0 /dev/dsk/c1t4d0 /dev/dsk/c1t5d0 pln:1 /dev/dsk/c2t0d0 /dev/dsk/c2t1d0 /dev/dsk/c2t2d0 /dev/dsk/c2t3d0 /dev/dsk/c2t4d0 /dev/dsk/c2t5d0
2 つのポートが同じディスクアレイに接続される機会を知るには、システムのハードウェア構成を理解している必要があります。
この例では、SSA が 6 つのディスクと 2 つの SSA ポートを持っていると想定しています。1 つの SSA ポートは pln ポート c1 に接続され、他方の SSA ポートは pln ポート c2 に接続されます。
-p、-a、-c オプションを指定した apdisk(1M) コマンドを実行し、未確定のディスクパスグループを作成します。
# apdisk -c -p pln:0 -a pln:1
指定内容は次のとおりです。
-p には主パスを指定します。
-a には代替パスを指定します。
-c にはこの情報の作成を指示します。
apdisk(1M) コマンドは、メタディスク名を生成します。また、AP データベース内に、6 つのディスクに対する 2 つの代替パスを維持するのに必要な全情報を作成します。
-S、-u オプションを指定した apconfig(1M) コマンドを実行し、結果を確認します。
# apconfig -S -u c1 pln:0 P A c2 pln:1 メタディスク名: mc1t5d0 U mc1t4d0 U mc1t3d0 U mc1t2d0 U mc1t1d0 U mc1t0d0 U
apconfig -S -u コマンドは、未確定のメタディスクを一覧表示します。
-S が指定されると、記憶装置デバイスだけを一覧表示します。 つまり、ネットワークエントリではなく、ディスクエントリを表示します。
-u が指定されると、未確定のデバイスだけを一覧表示します。
メタディスク名の隣に U が表示されているときは、そのメタディスクエントリは未確定です。
pln:0 の隣に P が表示されているときは、その pln:0 は主パスです。
A が表示されているときは、その pln:0 は有効な代替パスです。
入出力中の代替パスは変更することができますが、主パスは常に不変です。主パスで重要なことは、最初は入出力中の代替パスであること、メタディスク名が付けられたときに使用されること、およびメタディスクの識別に使用されることです。この例では、主パス名の c1t0d0 が、メタディスク名 mc1t0d0 の一部になります。
手順 3 で得られた結果に問題がなければ、-C オプションを指定した apdb(1M) コマンドを実行し、未確定のデータベースエントリを確定します。
# apdb -C
-S オプションを指定した apconfig(1M) コマンドを実行し、データベースにある確定済みの記憶装置エントリを表示します。
# apconfig -S c1 pln:0 P A c2 pln:1 メタディスク名: mc1t5d0 mc1t4d0 mc1t3d0 mc1t2d0 mc1t1d0 mc1t0d0
パーティションを物理パス名でマウントしている場合は、いったんマウント解除し、メタディスクパス名でマウントし直します。
たとえば、たえず使用されているために、パーティションをマウント解除できない場合は、保守のためにシステムを停止して、再起動する準備が整うまでパーティションを AP の制御下に置くのを遅らせることができます。このためには /etc/vfstab ファイルを編集して、システムが再起動したとき、パーティションが AP デバイスの制御下に入るようにします。起動ディスクを AP の制御下に置く場合は、第 4 章「AP 起動デバイスの使用」で説明するように、apboot (1M) を使用して /etc/vfstab を編集する必要があります。
apconfig -S コマンドは、データベースにある確定済みの 記憶装置エントリを表示します。上記の例が示すように、この一覧は手順 3 の一覧と同じです。しかし、メタディスク名に続く U が消えていることから、メタディスクが確定されたことが分かります。
drvconfig(1M) コマンドを実行して、デバイスディレクトリを再構築します。
# drvconfig -i ap_dmd
drvconfig コマンドは、カーネル内のデバイスツリーを表します。AP ディスクメタドライバは、擬似デバイスです。
# ls /devices/pseudo/ap_dmd* /devices/pseudo/ap_dmd@0:128,blk /devices/pseudo/ap_dmd@0:128,raw /devices/pseudo/ap_dmd@0:129,blk /devices/pseudo/ap_dmd@0:129,raw /devices/pseudo/ap_dmd@0:130,blk /devices/pseudo/ap_dmd@0:130,raw ...
この一覧から分かるように、drvconfig(1M)によって、代替パスが設定されたデバイスに対してマイナーノードが作成されました。
-R オプションを指定した apconfig(1M) コマンドを実行し、デバイスディレクトリ /dev/ap/dsk および /dev/ap/rdsk から /devices/pseudo 下のメタディスク特殊ファイルへのシンボリックリンクを作成します。
# apconfig -R
ls コマンドを実行してシンボリックリンクを表示し、結果を確認します。
# ls -l /dev/ap/dsk total 8 lrwxrwxrwx 1 root 40 Jul 27 16:47 mc1t0d0s0 -> ../../../devices/pseudo/ap_dmd@0:128,blk lrwxrwxrwx 1 root 40 Jul 27 16:47 mc1t0d0s1 -> ../../../devices/pseudo/ap_dmd@0:129,blk lrwxrwxrwx 1 root 40 Jul 27 16:47 mc1t0d0s2 -> ../../../devices/pseudo/ap_dmd@0:130,blk
これで必要なデバイスノード、つまり /dev/ap/dsk および /dev/ap/rdsk の下のノードが使用できる状態になりました。
対応するメタディスクデバイスノード (/dev/ap/dsk または /dev/ap/rdsk で始まるパス) を使用するために、物理デバイスノードを使用するすべての参照 (/dev/dsk または /dev/rdsk で始まるパス) を変更します。
デバイスへの入出力の最中でも、パスの切り替えはできます。実際に障害が発生する前に、切り替えのプロセスを実験してみて、切り替え操作の理解とシステムの設定を確認することができます。
AP は、パスを切り替えた後、新しいパスでデータが転送できるかどうかは確認しません。ただし、パスが切り離されている、すなわちオフラインであるかどうかは判定します。代替パスに切り替える前に、prtvtoc(1M) コマンドなどで入出力操作を実行して、パスの状態を確認することができます。正しく機能しないパスに切り替えても、AP はエラーや警告メッセージを出力しません。起動ディスクとして正常に機能しないパスに切り替えた場合は、すぐに元のパスに戻してください。システムに障害が発生することがあります。
-S オプションを指定した apconfig(1M) コマンドを実行して、現在の構成を表示します。
# apconfig -S c1 pln:0 P A c2 pln:1 メタディスク名: mc1t5d0 mc1t4d0 mc1t3d0 mc1t2d0 mc1t1d0
この例では、pln:0 に A が続いているので、これが入出力中の代替パスであることがわかります。P も表示されているので、pln:0 は主パスでもあります。
-P、-a オプションを指定した apconfig(1M) コマンドを実行して、パスを切り替えます。
# apconfig -P pln:0 -a pln:1
-p は主パスを指定し、その結果として、入出力中の代替パスを変更する「パスグループを特定」します。このように、上記の例の -p pln:0 は、pln:0 が主パスであるパスグループを特定します。-a は入出力を実行する代替パスを指定します。
-S オプションを指定した apconfig(1M) コマンドを実行して、データベース内の確定済みメタディスクを表示します。
# apconfig -S c1 pln:0 P c2 pln:1 A メタディスク名: mc1t5d0 mc1t4d0 mc1t3d0 mc1t2d0 mc1t1d0
入出力中の代替パスは pln:1 に切り替えられています。
切り替え操作は確定する必要がありません。
apconfig(1M) コマンドを以下のように実行して、代替パスを主パスに戻します。
# apconfig -P pln:0 -a pln:0 # apconfig -S c1 pln:0 P A c2 pln:1 メタディスク名: mc1t5d0 mc1t4d0 mc1t3d0 mc1t2d0 mc1t1d0
最初の apconfig(1M)コマンドによって、入出力中の代替パスが主コントローラ pln:0 を持つパスグループのパスに切り替えられます。入出力中の代替パスは pln:0 になります。
起動ディスクが AP の制御下にある場合は、「起動ディスクを AP の制御対象から除外する」の手順に従い、apboot (1M) を使用して、起動ディスクを AP の制御対象から除外します。
起動ディスクからマウントしたファイルシステムをマウント解除する必要はありません。これは、マウント解除しなくても、 apboot (1M) によって物理デバイス上にファイルシステムが配置されるためです。
AP メタディスク上に作成されたファイルシステム (起動ディスクからマウントされた以外のファイルシステム) をすべてマウント解除します。
スクリプトとプログラムに、以下の形式のメタディスク参照が含まれている場合:
/dev/ap/dsk/mc?t?d?s? および /dev/ap/rdsk/mc?t?d?s?
これらの参照は、それぞれ次のような適切な形式の物理デバイス参照に変更する必要があります。
/dev/dsk/c?t?d?s? および /dev/rdsk/c?t?d?s?
一般的に、メタディスクへの参照は、以下に含まれています。
/etc/vfstab
/etc/system
/etc/dumpadm.conf
ディスクを参照するアプリケーションまたはスクリプト
-d オプションで削除するパスグループの主パスを指定した apdisk (1M) を実行します。
# apdisk -d pln:0
-S オプションを指定した apconfig(1M) コマンドを実行し、データベース内の確定済みディスクエントリを表示します。
# apconfig -S c1 pln:0 P A c2 pln:1 メタディスク名: mc1t5d0 D mc1t4d0 D mc1t3d0 D mc1t2d0 D mc1t1d0 D mc1t0d0 D
パスグループがまだ確定されていない場合は、apdisk -d コマンドがパスグループをデータベースから削除します。ただし、パスグループがすでに確定済みの場合、apdisk -d コマンドはそれを削除済みと記録するだけで、ユーザーがそのエントリをデータベース内で確定するまで実際に削除されません。上記の例では、pln:0 パスグループは既に確定済みなので、D という文字が付いています。これは、実際に削除されたことを示します。
-C オプションを指定した apdb (1M) コマンドを実行し、データベースエントリを確定します。その結果、削除が完了します。
# apdb -C
-S オプションを指定した apconfig (1M) コマンドを実行して、削除を確認します。
# apconfig -S
削除を確定する前であれば、取り消しができます。削除を取り消すには、apdisk -z コマンドで操作対象となるポートを指定します。
以下の形式のスクリプト参照は変更する必要があります。
/dev/ap/dsk/mc?t?d?s? および /dev/ap/rdsk/mc?t?d?s?
それぞれ以下の形式に変更します。
/dev/dsk/c?t?d?s? および /dev/rdsk/c?t?d?s?
一般的に、メタディスクへの参照は、以下に含まれています。
/etc/vfstab
/etc/system
/etc/dumpadm.conf
構成されたメタディスクを参照するアプリケーションまたはスクリプト
この手順では、ディスクパスグループとメタディスクが作成済みで、そのメタディスク参照が構成解除されていることを前提としています。メタディスクインタフェースを再構成するだけの場合は、この手順を使用します。