Sun Enterprise サーバー Alternate Pathing ユーザーマニュアル

第 3 章 メタディスクとディスクパスグループの使用

メタディスクとディスクパスグループは、2 つのパスを介してアクセスできるディスクに対してだけ作成することができます。一般的には、異なるシステムボード上にある別々のコントローラを使用する必要があります。


注 -

ディスクが AP の制御下に置かれた場合、またはパスグループが削除された場合に、AP はディスクのデータを変更しません (例外として、AP データベースコピーを含むスライス上にあるデータは変更されます)。AP は、ディスクのパーティションを再分割しません。パスグループが削除された場合も、その物理デバイス名を使ってデータにアクセスすることができます。


メタディスクのデバイスノード

以下に、ディスクデバイスの「物理」デバイスノードの例を示します。

デバイス名の各要素は以下のものを表します。

c  ホスト (ディスクアレイではない) 上の入出力ポート t  ディスクアレイ内のバス d  そのバス上のディスクのターゲット ID s  ディスク上のスライス番号

これらの物理デバイスノードは、ディスク上のパーティションへの特定の物理パスを表します。

SCSI ディスクの場合は、デバイス名の各要素は以下のものを表します。

c  ホストのアダプタ番号 t  ディスクトレイのターゲット番号 d  ディスク番号 s  スライス番号

各コントローラポートには、ポート番号 (c0 など) とポート名 (pln2 または sf3 など) があります。ポート名は、ポートタイプと「インスタンス」番号から成ります。詳細は /etc/path_to_inst を参照してください。

ディスクアレイが 2 つのポートに接続されている場合、どちらのパスからも、/dev/dsk/c0t0d0s0 または /dev/dsk/c1t0d0s0 のような物理デバイスノードによってアクセスすることができます。

メタディスクのデバイスノードは、パスグループの主パスの物理デバイスノードから作成されます。以下に、メタディスクのデバイスノードの例を 2 つ示します。

このように、ap ディレクトリが追加され、m (「メタ」を表します) がデバイス指定の前に付きます。メタディスクのデバイスノードは、複数のパスから配下の物理ディスクドライブにアクセスすることができます。

メタディスクの自動切り替え

メタディスクは、以下の 2 つの場合に、入出力中のパスから代替パスに自動的に切り替えることができます。

入出力中のパスに障害が発生すると、代替パスが使用可能な場合にだけ自動切り替えが試みられます。障害の発生したパスは、使用不能または「試行済み」と記録されます。試行済みパスは apconfig -S コマンドで特定することができます。


# apconfig -S

c1      pln0  P A
c2      pln1  T
        メタディスク名:
                mc1t5d0  
                mc1t4d0   
                mc1t3d0   
                mc1t2d0   
                mc1t1d0   
                mc1t0d0   

この例では、現在、休止中のパスである pln1 に、切り替えが試行され失敗したことを示す「T」が付いています。

試行済みフラグは、自動切り替え操作に関してだけ有効です (手動切り替え操作の場合には関係ありません)。AP は試行済みパスへの自動的切り替えは実行しません (この条件によって、障害が発生している 2 つのパス間で、切り替えの試行を繰り返すことを回避します)。

試行済みフラグは、以下のどれかの処置によってリセットできます。

試行済みフラグの手動リセットの例を以下に示します。


# apdisk -w pln1

この例では、pln1 は試行フラグが true に設定されているコントローラです。 apdisk -w 機能は、慎重に使用してください。このコマンドは試行済みフラグをクリアするだけで、コントローラやデバイスの潜在的な問題には対処しません。このコマンドは、障害のあるパスが DR 操作による介入や再起動を実行しなくても復元された場合にだけ使用してください。手動切り替えは、試行済みと表示されたパスに対してだけ実行できます。

ディスクの可用性と性能の兼ね合い

ディスクアレイとコントローラを構成する前に、ディスクの使用優先順位を決めておく必要があります。ディスク資源の可用性は、性能との兼ね合い、あるいはハードウェアの追加により高めることができます。

たとえば、デュアルポートの SSA ディスクアレイの場合を考えてみます。この種のデバイスは 1 つまたは 2 つの Fibre Channel ディスクコントローラ (SOC コントローラ) に接続できます。SSA の内部には複数のターゲットが存在し、各ターゲットには複数のディスクが含まれ、各ディスクは複数のスライスに分割されます。システムの構成方法によっては、それらのディスク入出力資源に対して以下のような異なるレベルの競合が発生することがあります。

たとえば、1 つのディスクを 4 つのスライスに分割し、その 4 つのスライスから 1 つのファイルシステムを作成する場合を想定します。このファイルシステムは複数のスライスにまたがることになりますが、これらのスライスは実際は同一のディスク上に存在しています。この場合、ファイルシステムは単純に 1 つのスライス上に配置した方が良いかもしれません。この構成の場合は、ファイルシステムの読み取りおよび書き込みのたびに同じディスクへのアクセスが必要になるので、ディスクレベルの競合が発生します。

ファイルシステムは、同じターゲット内の複数のディスクにまたがって配置することも可能です。しかしこの構成では、ファイルシステムの読み取りおよび書き込みのたびに同じターゲットへのアクセスが生じるので、ターゲットレベルの競合が発生します。ターゲットレベルの競合はディスクレベルの競合ほど深刻な問題ではありませんが、不安定な構成であることに変わりありません。

ファイルシステムを同じ SSA 内の多数のターゲットにまたがって配置した場合、コントローラレベルの競合が発生します。これは、ファイルシステムの読み取りおよび書き込みのたびに同じコントローラを使用するためです。

一般的にファイルシステムは、複数のコントローラを使用して、複数のディスクアレイにまたがって作成するのが最良です。ただしこの場合、ディスクアクセスの速度とシステムの可用性との兼ね合いを考慮する必要があります。ファイルシステムに使用するディスクアレイを増やすに従い、ディスクアクセスの速度はある程度まで向上します。しかし、いずれかのディスクアレイでコンポーネントの障害が発生すると、ファイルシステムは使用できなくなります。ファイルシステムのディスクアレイの数を少なく (たとえば 1 つに) 抑えれば、速度などの性能は低下しますが、ファイルシステムの障害を引き起こす可能性があるコンポーネントの数は少なくなるため、システム全体の可用性は向上します。

たとえば、3 つのデュアルポート SSA ディスクアレイに 6 つのディスクコントローラが接続されている状況を考えてみます。

図 3-1 システムボードとディスクコントローラ

Graphic

可用性を最大限に引き出したい場合は、AP を使用してそれぞれの SSA に代替パスを設定します。この構成の利点は、システムボードの保守やアップグレードの際に、DR を使用して SSA 上のファイルシステムに対するアクセスを失うことなくボードを自由に接続・切り離しできることにあります。当然この場合は、代替のディスクコントローラ (SOC コントローラ) は異なるシステムボード上に配置することになります。これを応用して、それぞれ 3 つのディスクコントローラを搭載したシステムボードを 2 枚使用する構成も考えられます。これは簡単ですっきりとした構成です。この構成では、一方のボードを切り離す必要がある場合、コントローラを他方のボード上に切り替えることで対処できます。また、1 つのボードを切り離して接続するだけで、ドメイン間でのディスク資源の切り替えが可能です。

ただしこの場合、それぞれの SSA に2 つずつの SOC コントローラを購入する必要があります。また、非常に大規模な構成の場合、すべての SOC コントローラをホストできる環境を整備するには、デュアルパスの設置のために大量の SSA が必要となり、使用できる SBus スロット数の上限を越える可能性もあります。

ディスクのミラー化に関する注意事項

Sun Enterprise Volume Manager (SEVM) などの製品を用いてディスクをミラー化している環境で DR (Dynamic Reconfiguration) によりシステムボードを切り離す場合は、AP と DR の両方で正しく動作するように、ボリュームとミラーを構成する必要があります。

たとえば、システムボードが 12 枚あり、それぞれにホストアダプタ (下図では「コントローラ」と表記) が 1 つずつ存在する場合を考えてみましょう。

図 3-2 システムボードとコントローラ

Graphic

この状況でミラー化されたボリュームを作成する必要があるとします。次の構成を検討していると仮定します。

図 3-3 ボリュームのミラー化例 1

Graphic

この構成では、vol01-01 は、それぞれが異なる 4 つシステムボードに存在する 4 つのコントローラによってアクセスされる 4 方向のスライスで構成されます。vol01-01 は、同じく 4 方向のスライスで構成される vol01-02 にミラー化されます。たとえば、コントローラ 0 のスライス 0 はコントローラ 3 のスライス 1 にミラー化されます。

これらの 4 つのコントローラの 1 つが搭載されているボードを切り離す必要がある状況を考えてみます。その場合、ボードを切り離す前に、そのボード上のコントローラを使用するミラーの一方を停止する必要があります。しかし、上図の構成では、それは不可能です。たとえば、コントローラ 0 があるボード 0 を切り離す場合、ミラー化する側とされる側の両方を停止する必要があり、その場合、ファイルシステムはアクセスできなくなります。つまり、上図の構成では、どのボードに対しても DR を使用することはできません。

この状況を回避する 1 つの方法は、たとえば、下図に示すように、同じシステムボードのコントローラがミラー化する側とされる側のいずれか一方にしか現れないようにボリュームをミラー化することです。

図 3-4 ボリュームのミラー化例 2

Graphic

上図の構成では、切り離そうとするボード (ボード 0 〜 5 のいずれか) 上のコントローラを使用するミラーの一方を最初に停止することによってボードを切り離すことができます。たとえば、ボード 4 (コントローラ 4 のボード) を切り離すには、まず vol01-02 を停止すればよいだけです。ファイルシステムには vol01-01 を使ってアクセスできますから、ファイルシステムに対するアクセスが失われることはありません。後でボード 4 を再接続すると、再びミラーに vol01-02 を追加することができます。

この回避策で問題なのは、ミラーが停止しているときシステムが単一点障害に弱くなるという点です。ディスクに障害が発生しても、ミラー化バックアップディスクは存在しません。しかしながら、この問題には、AP を使用して対処することができます。以下の AP メタデバイスを構成します。

上記の mc で始まる名前は説明を簡単にするためのものです。完全なメタデバイス名は、たとえば mc0t0d0s0 であり , これは代替パスとしてデバイス c0t0d0s0c6t0d0s0 をカプセル化します。

次の構成を考えてみます。

図 3-5 ボリュームのミラー化例 3

Graphic

この構成では、ミラーを停止させることなくどのボード (ボード 0 〜 11) でも切り離すことができ、単一点障害にも強くなります。たとえば、コントローラ 4 のあるボード 4 を切り離すには、まずメタデバイス mc4 を切り替えて、ボード 10 上のコントローラ 10 を使用するようにします (AP のコマンド、apconfig -P を使用するだけで可能)。

この例では、RAS サポートのレベル (すなわち、ディスク入出力資源の可用性と単一点障害に対する保護レベル) を高めるにつれて、コントローラとボード数を増やす必要があります。つまり、RAS 機能のサポートレベルを向上させるには、システムコストの増大が伴うということになります。

これは、実際の例ではありません。この例の主眼点は、ボリュームとミラーを構成するときには AP と DR の両方を考慮する必要があるということです。両方を考慮しないと、いずれか一方が使用できなくなる状況に陥ることがあります。Sun Enterprise Volume Manager (SEVM) を使用する場合は、ボリュームを構成する「物理」コントローラおよびスライスの記録を残してください。SEVM は、物理コンポーネントを自動的に選択するように使用することができますが、この選択プロセスでは、AP と DR に関する注意事項は考慮されません。AP と DR の両方に対応するには、ボリュームを構成する物理コンポーネントを明示的に選択する必要があります。

ディスクパスグループとメタディスクの操作


注 -

この節では (SSA ディスクアレイ用の) pln ポートを使用するコマンドの例を用いています。Sun StorEdge (TM) A5000 ディスクアレイを使用している場合は、pln ポートと示されている部分に sf ポートを指定します。Sun StorEdge A7000 ディスクアレイを使用している場合は isp ポートを指定します。


ディスクパスグループとメタディスクを作成する
  1. パスグループの代替パスを構成する 2 つ のポートを決定します。

    1. apinst(1M) コマンドを以下のように実行し、すべてのポート (pln0pln1 など) およびそれらのディスクデバイスノード (/dev/dsk/c1t0d0 など) を表示します。


      # apinst
      pln0
              /dev/dsk/c1t0d0
              /dev/dsk/c1t1d0
              /dev/dsk/c1t2d0
              /dev/dsk/c1t3d0
              /dev/dsk/c1t4d0
              /dev/dsk/c1t5d0
      pln1
              /dev/dsk/c2t0d0
              /dev/dsk/c2t1d0
              /dev/dsk/c2t2d0
              /dev/dsk/c2t3d0
              /dev/dsk/c2t4d0
              /dev/dsk/c2t5d0

    2. 2 つのポートが同じディスクアレイに接続される機会を知るには、システムのハードウェア構成を理解している必要があります。

      この例では、SSA が 6 つのディスクと 2 つの SSA ポートを持っていると想定しています。1 つの SSA ポートは pln ポート c1 に接続され、他方の SSA ポートは pln ポート c2 に接続されます。

  2. -p-a-c オプションを指定した apdisk(1M) コマンドを実行し、未確定のディスクパスグループを作成します。


    # apdisk -c -p pln0 -a pln1
    

    指定内容は次のとおりです。

    -p には主パスを指定します。 -a には代替パスを指定します。 -c にはこの情報の作成を指示します。

    apdisk(1M) コマンドは、メタディスク名を生成します。また、AP データベース内に、6 つのディスクに対する 2 つの代替パスを維持するのに必要な全情報を作成します。

  3. -S-u オプションを指定した apconfig(1) コマンドを実行し、結果を確認します。


    # apconfig -S -u
    
    c1      pln0  P A
    c2      pln1  
            メタディスク名:
                    mc1t5d0  U
                    mc1t4d0  U 
                    mc1t3d0  U 
                    mc1t2d0  U 
                    mc1t1d0  U 
                    mc1t0d0  U 

    apconfig -S -u コマンドは、未確定のメタディスクを一覧表示します。-S は、記憶装置デバイスだけ (つまり、ネットワークではなくディスク) を一覧表示します 。-u は未確定のデバイスだけを表示します。各メタディスク名に続く U は、そのメタディスクエントリが未確定であることを示します。

    pln0 に続く P は、pln0 が主パスであることを示し、Apln0 が入出力中の代替パスであることを示します。入出力中の代替パスは変更することができますが、主パスは常に不変です。主パスで重要なことは、最初は入出力中の代替パスであること、メタディスク名が付けられたときに使用されること、およびメタディスクの識別に使用されることです。この例では、主パス名の c1t0d0 が、メタディスク名 mc1t0d0 の一部になります。

  4. 手順 3 で得られた結果に問題がなければ、-C オプションを指定した apdb(1M) コマンドを実行し、未確定のデータベースエントリを確定します。


    # apdb -C
    

  5. -S オプションを指定した apconfig(1) コマンドを実行し、データベースにある確定済みの記憶装置エントリを表示します。


    # apconfig -S
    
    c1      pln0  P A
    c2      pln1  
            メタディスク名:
                    mc1t5d0  
                    mc1t4d0   
                    mc1t3d0   
                    mc1t2d0   
                    mc1t1d0   
                    mc1t0d0   

    パーティションを物理パス名でマウントしている場合は、いったんマウント解除し、メタディスクパス名でマウントし直します。

    たとえば、たえず使用されているために、パーティションをマウント解除できない場合は、保守のためにシステムを停止して、再起動する準備が整うまでパーティションを AP の制御下に置くのを遅らせることができます。このためには /etc/vfstab ファイルを編集して、システムが再起動したとき、パーティションが AP デバイスの制御下に入るようにします (起動ディスクを AP の制御下に置く場合は、第 4 章で説明するように、apboot(1M) を使用して /etc/vfstab を編集する必要があります)。

    apconfig -S コマンドは、データベースにある確定済みの 記憶装置エントリを表示します。上記の例が示すように、この一覧は手順 3 の一覧と同じです。しかし、メタディスク名に続く U が消えていることから、メタディスクが確定されたことが分かります。

  6. drvconfig(1M) コマンドを指定します。


    # drvconfig -i ap_dmd
    

    drvconfig コマンドは、カーネル内のデバイスツリーを表すデバイスディレクトリを再構築します。AP ディスクメタドライバは、擬似デバイスです。

  7. ls コマンドを実行して、結果を確認します。


    # 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 によって、代替パスが設定されたデバイスに対してマイナーノードが作成されました。

  8. -R オプションを指定した apconfig(1M) コマンドを実行し、デバイスディレクトリ /dev/ap/dsk および /dev/ap/rdsk から /devices/pseudo 下のメタディスク特殊ファイルへのシンボリックリンクを作成します。


    # apconfig -R
    

  9. 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 の下のノードが使用できる状態になりました。

  10. 対応するメタディスクデバイスノード (/dev/ap/dsk または /dev/ap/rdsk で始まるパス) を使用するために、物理デバイスノードを使用するすべての参照 (/dev/dsk または /dev/rdsk で始まるパス) を変更します。

主パスから代替パスに切り替える

注 -

デバイスへの入出力の最中でも、パスの切り替えはできます。実際に障害が発生する前に、切り替えのプロセスを実験してみて、切り替え操作の理解とシステムの設定を確認することをお薦めします。



注意 - 注意 -

AP は、パスを切り替えた後、新しいパスでデータが転送できるかどうかは確認しません (ただし、パスが切り離されている、すなわちオフラインであるかどうかは判定します)。代替パスに切り替える前に、prtvtoc(1M) コマンドなどで入出力操作を実行して、パスの状態を確認することができます。正しく機能しないパスに切り替えても、AP はエラーや警告メッセージを出力しません。起動ディスクとして正常に機能しないパスに切り替えた場合は、すぐに元のパスに戻してください。システムに障害が発生することがあります。


  1. -S オプションを指定した apconfig(1) コマンドを実行して、現在の構成を表示します。


    # apconfig -S
    
    c1      pln0  P A
    c2      pln1  
            メタディスク名:
                    mc1t5d0   
                    mc1t4d0   
                    mc1t3d0   
                    mc1t2d0   
                    mc1t1d0 

    この例では、pln0A が続いているので、これが入出力中の代替パスであることがわかります (P も表示されているので、pln0 は主パスでもあります)。

  2. -P、-a オプションを指定した apconfig(1) コマンドを実行して、パスを切り替えます。


    # apconfig -P pln0 -a pln1
    

    -p は主パスを指定し、その結果として、入出力中の代替パスを変更する「パスグループを特定」します。このように、上記の例の -p pln0 は、pln0 が主パスであるパスグループを特定します。-a は入出力を実行する代替パスを指定します。

  3. -S オプションを指定した apconfig(1) コマンドを実行して、データベース内の確定済みメタディスクを表示します。


    # apconfig -S
    
    c1      pln0  P
    c2      pln1  A  
            メタディスク名:
                    mc1t5d0   
                    mc1t4d0   
                    mc1t3d0   
                    mc1t2d0   
                    mc1t1d0 

    入出力中の代替パスは pln1 に切り替えられています。

    切り替え操作は確定する必要がありません。

主パスに戻す
  1. apconfig(1) コマンドを以下のように実行して、代替パスを主パスに戻します。


    # apconfig -P pln0 -a pln0
    # apconfig -S
    
    c1      pln0  P A
    c2      pln1    
            メタディスク名:
                    mc1t5d0   
                    mc1t4d0   
                    mc1t3d0   
                    mc1t2d0   
                    mc1t1d0 

最初の apconfig コマンドによって、入出力中の代替パスが主コントローラ pln0 を持つパスグループのパスに切り替えられます。入出力中の代替パスは pln0 になります。

ディスクパスグループとメタディスクを削除する
  1. メタディスクへの参照を物理デバイス参照形式に変更します。

    1. 起動ディスクが AP の制御下にある場合は、「起動ディスクを AP の制御対象から除外する」の手順に従い、apboot(1M) を使用して、起動ディスクを AP の制御対象から除外します。

      起動ディスクからマウントしたファイルシステムをマウント解除する必要はありません。これは、マウント解除しなくても、 apboot(1M) によって物理デバイス上にファイルシステムが配置されるためです。

    2. AP メタディスク上に作成されたファイルシステム (起動ディスクからマウントされた以外のファイルシステム) をすべてマウント解除します。

    3. スクリプトとプログラムに /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

      • ディスクを参照するアプリケーションまたはスクリプト

  2. -d オプションで削除するパスグループの主パスを指定した apdisk(1M) を実行します。


    # apdisk -d pln0
    

  3. -S オプションを指定した apconfig(1M) コマンドを実行し、データベース内の確定済みディスクエントリを表示します。


    # apconfig -S
    
    c1      pln0  P A
    c2      pln1  
            メタディスク名:
                    mc1t5d0  D
                    mc1t4d0  D 
                    mc1t3d0  D 
                    mc1t2d0  D 
                    mc1t1d0  D 
                    mc1t0d0  D 

    パスグループがまだ確定されていない場合は、apdisk -d コマンドがパスグループをデータベースから削除します。ただし、パスグループがすでに確定済みの場合、apdisk -d コマンドはそれを削除済みと記録するだけで、ユーザーがそのエントリをデータベース内で確定するまで実際に削除されません。上記の例では、pln0 パスグループは既に確定済みなので、D という文字が付いています。これは、実際に削除されたことを示します。

  4. -C オプションを指定した apdb(1M) コマンドを実行し、データベースエントリを確定します。その結果、削除が完了します。


    # apdb -C
    

  5. -S オプションを指定した apconfig(1M) コマンドを実行して、削除を確認します。


    # apconfig -S
    


    注 -

    削除を確定する前であれば、取り消しができます。削除を取り消すには、apdisk -z コマンドで操作対象となるポートを指定します。


メタディスクを構成解除する
  1. スクリプトとプログラムに /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

    • ディスクを参照するアプリケーションまたはスクリプト

メタディスクを再構成する
  1. 物理デバイスへの参照をメタディスク参照形式に変更します。


    注 -

    この手順では、ディスクパスグループとメタディスクが作成され、その後でメタディスクが構成解除されていることが前提になります。単にメタディスクインタフェースを再構成する場合は、次の手順を使用してください。


    /dev/ap/dsk/mc?t?d?s? あるいは /dev/ap/rdsk/mc?t?d?s? の形式で、スクリプトやプログラムに物理デバイスへの参照が含まれていることがあります。

    一般的に、メタディスクへの参照は、以下に含まれています。

    • /etc/vfstab

    • /etc/system

    • /etc/dumpadm.conf

    • ディスクを参照しているアプリケーションおよびスクリプト