D    LAN クラスタの管理

この付録では,以下の項目について説明します。

D.1    クラスタ LAN インターコネクトに使用する NetRAIN 仮想インタフェースの構成

クラスタをインストールするときに NetRAIN (redundant array of independent network adapters) 仮想インタフェースからクラスタ・インターコネクトを構成しなくても,後から構成することができます。ただし,クラスタ・インターコネクトで NetRAIN 仮想インタフェースを構成するための要件と規則は,Tru64 UNIX 『ネットワーク管理ガイド:接続編』 で説明されているものと異なります。

通常の NetRAIN 仮想デバイスとは異なり,クラスタ・インターコネクトに使用する NetRAIN デバイスは,/etc/rc.config ではなく /etc/sysconfigtab にある ics_ll_tcp カーネル・サブシステムの中に設定します。そうすれば,ブートの非常に早い段階でインターコネクトを確立できるので,クラスタ構成要素をメンバとして早く組み込んで入出力を始めたいという要求に応えることができます。

警告

メンバのクラスタ・インターコネクト用 NetRAIN デバイスの属性は,/etc/sysconfigtab ファイル以外で変更しないでください。つまり,ifconfig コマンドまたは SysMan Station を使って変更したり,/etc/rc.config ファイルの中の定義を追加または変更してネットワークを再起動したりしないでください。そのようにすると,クラスタで NetRAIN デバイスを制御できなくなり,メンバ・システムがクラスタから削除されてしまうことがあります。

クラスタをインストールした後でクラスタ・インターコネクト用に NetRAIN インタフェースを構成する場合は,各メンバで以下の手順を実行してください。

  1. クラスタ・インターコネクトでは,LAN インターコネクトに障害が起きてもシステム全体がダウンしないようにする必要があります。そのため,NetRAIN セットとして構成するメンバの冗長イーサネット・アダプタとは別に,イーサネット・スイッチが必要です (LAN インターコネクトを NSPOF (No Single Point of Failure) 構成にする場合は 2 つ必要)。ネットワーク・ハードウェアを追加してインストールする必要がある場合は,そのメンバ・システムを停止し,電源を切ってください。その状態で,そのメンバにネットワーク・カードをインストールし,そのカードを,『クラスタ・ハードウェア構成ガイド』で推奨しているように,異なるスイッチへそれぞれケーブル接続します。その後,スイッチの電源を入れ,メンバをリブートします。追加ハードウェアをインストールする必要がない場合は,この手順を省略します。

  2. ifconfig -a コマンドを使って,NetRAIN セットに使うイーサネット・アダプタの名前を調べます。

  3. 既存の NetRAIN セットをクラスタ・インターコネクトに構成する場合は,最初に,次のようにして現在の構成を無効にする必要があります。

    1. rcmgr delete コマンドを使って,メンバの /etc/rc.config ファイルからデバイスに関係する以下の変数を削除します。 NRDEV_x NRCONFIG_x NETDEV_x IFCONFIG_x

    2. rcmgr set コマンドを使って,NR_DEVICES 変数と NUM_NETCONFIG 変数の値を減らします。

  4. /etc/sysconfigtab ファイルを編集して,新しいアダプタを追加します。たとえば,次のように変更します。

    ics_ll_tcp:
     
    ics_tcp_adapter0 = alt0
     
    

    ics_ll_tcp:
     
    ics_tcp_adapter0 = nr0
    ics_tcp_nr0[0] = alt0
    ics_tcp_nr0[1] = alt1
     
    

    のように変更。

  5. メンバをリブートして,メンバが NetRAIN 仮想インタフェースを物理クラスタ・インターコネクトとして使えるようにします。

  6. たとえば,次のように ifconfig コマンドを使って,CLUIF フラグで定義されている NetRAIN デバイスを表示させます。

    # ifconfig nr0
    nr0: flags=1000c63<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST,SIMPLEX,CLUIF>
         NetRAIN Attached Interfaces: ( alt0 alt1 ) Active Interface: ( alt0 )
        inet 10.1.0.2 netmask ffffff00 broadcast 10.1.0.255 ipmtu 1500 
    

  7. この手順を,残りのメンバについて繰り返します。

D.2    LAN インターコネクトのチューニング

この節では,LAN インターコネクトのチューニングについて,そのガイドラインを示します。

警告

クラスタ・インターコネクトで使っている NetRAIN 仮想インタフェースのチューニングは,他の NetRAIN デバイスに対して使用する方法で行わないでください。使用してはならない方法には,ifconfigniffconfigniffd の各コマンド・オプションや netrain,または ics_ll_tcp カーネル・サブシステム属性も含まれます。この制約に従わなければ,クラスタの運用が中断する可能性があります。クラスタ・インターコネクトで使われている NetRAIN デバイスは,クラスタ・ソフトウェアによって,クラスタの運用が最適になるようにすでにチューニングされています。

D.2.1    ipmtu 値の設定によるクラスタ・インターコネクトの性能改善

アプリケーションによっては,各メンバのクラスタ・インターコネクト仮想インタフェース (ics0) で使用している IP の MTU (最大伝送単位) を物理インタフェース (membern-tcp0) で使用している値と同じ値に設定することにより,性能を改善できるものがあります。推奨値は,使用しているクラスタ・インターコネクトの種類によって異なります。

仮想および物理クラスタ・インターコネクト・デバイスに現在設定されている ipmtu の値を調べる場合は,次のコマンドを使います。

# ifconfig -a
ee0: flags=1000c63<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST,SIMPLEX,CLUIF>
     inet 10.1.0.100 netmask ffffff00 broadcast 10.1.0.255 ipmtu 1500 
 
ics0: flags=1100063<UP,BROADCAST,NOTRAILERS,RUNNING,NOCHECKSUM,CLUIF>
     inet 10.0.0.1 netmask ffffff00 broadcast 10.0.0.255 ipmtu 7000 
 

このクラスタ・メンバは,物理クラスタ・インターコネクト・デバイスに ee0 イーサネット・デバイスを使っているので,仮想クラスタ・インターコネクト・デバイス (ics0) の ipmtu を 7000 から 1500 に変更します。

ics0 仮想デバイスの ipmtu 値を変更する場合は,以下の手順を実行します。

  1. ipmtu の値が設定されている各メンバの /etc/inet.local ファイルに,次の行を追加します。

    ifconfig ics0 ipmtu value
     
    

  2. rcinet restart コマンドを使って,各メンバでネットワークを再起動させます。

D.2.2    イーサネット・スイッチ・アドレス・エイジングに 15 秒を設定する

イーサネット・スイッチは,MAC アドレス (および仮想 LAN (VLAN) 識別子) をポートに関連付けるテーブルを保持しており,それによって,スイッチはパケットを効率的に転送できるようになります。これらの転送データベース (ユニキャスト・アドレス・テーブルとも呼ばれる) では,動的に取得した転送情報が古くなって無効になる時間間隔を設定するメカニズムを提供します。このメカニズムは,エイジング・タイムとも呼ばれます。

LAN インターコネクトに関連するすべてのイーサネット・スイッチに対して,エイジング・タイムは 15 秒に設定します。

転送情報の更新に失敗すると,スイッチは,(たとえば,NetRAIN のフェイルオーバによって) MAC アドレスが別のポートへ移動した後,転送テーブル内にリストされているポートへの MAC アドレスにパケットを誤って転送し続けることになります。これは,クラスタの通信を混乱させ,ノードのいくつかがクラスタから削除されたのと同じ結果になります。このため,クォーラムを喪失して,1 つ以上のノードがハングします。また,いくつかのパニック・メッセージが発生します。例を次に示します。

 CNX MGR: this node removed from cluster
CNX QDISK: Yielding to foreign owner
 

D.3    ネットワーク・アダプタ構成情報の取得

ネットワーク・アダプタ用データリンク・ドライバから名前,速度,動作モードといった情報を取得して表示させる場合は,SysMan Station または hwmgr -get attr -cat network コマンドを使います。次に示すのはその例で,tu2 が 10 Mb/秒の半二重モードで動作しているクライアント・ネットワーク・アダプタであることと,ee0ee1 が LAN インターコネクトとして構成されているNetRAIN 仮想インタフェースであって,100 Mb/秒の全二重モードで動作していることが分かります。

# hwmgr -get attr -cat network | grep -E 'name|speed|duplex'
# hwmgr -get attr -cat network | grep -E 'name|speed|duplex'
  name = ee0
  media_speed = 100
  full_duplex = 1
  user_name = (null) (settable)
  name = ee1
  media_speed = 100
  full_duplex = 1
  user_name = (null) (settable)
  name = tu0
  media_speed = 10
  full_duplex = 1
  user_name = (null) (settable)
  name = tu1
  media_speed = 10
  full_duplex = 0
  user_name = (null) (settable)
  name = tu2
  media_speed = 10
  full_duplex = 0
  user_name = (null) (settable)
  name = tu3
  media_speed = 10
  full_duplex = 0
  user_name = (null) (settable)
  name = alt0
  media_speed = 1000
  full_duplex = 1
  user_name = (null) (settable)
 

D.4    LAN インターコネクト上の動作の監視

LAN インターコネクト上のトラフィックの監視には netstat コマンドを使います。次にその例を示します。

# netstat -acdnots -I nr0
nr0 Ethernet counters at Mon Apr 30 14:15:15 2001
 
           65535 seconds since last zeroed
      3408205675 bytes received
      4050893586 bytes sent
         7013551 data blocks received
         6926304 data blocks sent
         7578066 multicast bytes received
          115546 multicast blocks received
         3182180 multicast bytes sent
           51014 multicast blocks sent
               0 blocks sent, initially deferred
               0 blocks sent, single collision
               0 blocks sent, multiple collisions
               0 send failures
               0 collision detect check failure
               0 receive failures
               0 unrecognized frame destination
               0 data overruns
               0 system buffer unavailable
               0 user buffer unavailable
nr0: access filter is disabled
 

NetRAIN 仮想インタフェースのステータスがアクティブまたは非アクティブのどちらであるかを監視する場合は,次の例に示すように,ifconfig -a コマンドと niffconfig -v コマンドを使います。

# ifconfig -a
ee0: flags=1000c63<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST,SIMPLEX,CLUIF>
     NetRAIN Virtual Interface: nr0 
     NetRAIN Attached Interfaces: ( ee1 ee0 ) Active Interface: ( ee1 )
 
ee1: flags=1000c63<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST,SIMPLEX,CLUIF>
     NetRAIN Virtual Interface: nr0 
     NetRAIN Attached Interfaces: ( ee1 ee0 ) Active Interface: ( ee1 )
 
ics0: flags=1100063<UP,BROADCAST,NOTRAILERS,RUNNING,NOCHECKSUM,CLUIF>
     inet 10.0.0.200 netmask ffffff00 broadcast 10.0.0.255 ipmtu 15u00 
 
lo0: flags=100c89<UP,LOOPBACK,NOARP,MULTICAST,SIMPLEX,NOCHECKSUM>
     inet 127.0.0.1 netmask ff000000 ipmtu 4096 
 
nr0: flags=1000c63<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST,SIMPLEX,CLUIF>
     NetRAIN Attached Interfaces: ( ee1 ee0 ) Active Interface: ( ee1 )
     inet 10.1.0.2 netmask ffffff00 broadcast 10.1.0.255 ipmtu 1500 
 
sl0: flags=10<POINTOPOINT>
 
tu0: flags=c63<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST,SIMPLEX>
     inet 16.140.112.176 netmask ffffff00 broadcast 16.140.112.255 ipmtu 1500 
 
tun0: flags=80<NOARP>
 

# niffconfig -v
Interface:   ee1, description: NetRAIN internal, status:      UP, event:   ALERT, state: GREEN
         t1: 3, dt: 2, t2: 10, time to dead: 3, current_interval: 3, next time: 1
Interface:   nr0, description: NetRAIN internal, status:      UP, event:   ALERT, state: GREEN
         t1: 3, dt: 2, t2: 10, time to dead: 3, current_interval: 3, next time: 1
Interface:   ee0, description: NetRAIN internal, status:      UP, event:   ALERT, state: GREEN
         t1: 3, dt: 2, t2: 10, time to dead: 3, current_interval: 3, next time: 2
Interface:   tu0, description:                 , status:      UP, event:   ALERT, state: GREEN
         t1: 20, dt: 5, t2: 60, time to dead: 30, current_interval: 20, next time: 20
 

D.5    Memory Channel から LAN への移行

この節では,クラスタ・インターコネクトとして Memory Channel インターコネクトを使っているクラスタを LAN インターコネクトへ移行する方法を説明します。

Memory Channel インターコネクトを LAN インターコネクトで置き換えるときは,クラスタをしばらくダウンさせる必要があるので,サービスが一時中断します。

注意

クラスタ・インストレーション・ガイド』の説明に従って ローリング・アップグレードする際に,Memory Channel を LAN インターコネクトで置き換える作業も一緒に行う場合は,各メンバでロールするときに LAN ハードウェアをインストールするように計画してください。そうすれば,以下に示す手順のうち,1〜4 を省略することができます。

Memory Channel インターコネクトを使っている既存のクラスタを LAN インターコネクトを使うように移行する場合は,準備段階として,それぞれのクラスタ・メンバで以下の手順を実行してください。

  1. クラスタ・メンバを停止し,電源を切ります。

  2. ネットワーク・アダプタをインストールし,必要なスイッチまたはハブを構成します。

  3. クラスタ・メンバの電源を入れます。

  4. Memory Channel を使って,genvmunix カーネルでメンバをブートして,クラスタへ組み込みます。

  5. doconfig を使用して vmunix カーネルを再構築します。

  6. ルート (/) ディレクトリに新しいカーネルをコピーします。

新しくインストールしたイーサネット・ハードウェアは,この時点で,すべてのクラスタ・メンバで共用するプライベートな従来型サブネットとして構成できます。LAN インターコネクトをセットアップする前に,ハードウェアが適切に構成されていて正しく動作することを確認してください。rcmgr コマンドを使用したり /etc/rc.config ファイルを静的に編集したりして,このネットワークを永続的に設定してはなりません。この試験用ネットワークは LAN インターコネクト上でクラスタをリブートしたときに残っていないようにする必要があります。したがって,各メンバで設定を行うときは,ifconfig コマンドを使ってください。

LAN インターコネクトを構成する場合は,以下の手順を実行してください。

注意

クラスタから Memory Channel ハードウェア (特にハブ) を削除しようとする場合,次の手順の最初からの 7 ステップを実行します。すべてのメンバを停止した後で,各メンバの電源を切ります。そうすると,Memory Channel のハードウェアを削除できます。手順 8 で説明されているとおり,すべてのメンバの電源を入れて,1 つづつブートします。

実行中のクラスタで Memory Channel ハブをシャット・オフすると,LAN インターコネクトを使用しているのがたった 1 つであっても,クラスタ全体でパニックを引き起こします。ハブからメンバの Memory Channel ケーブルを切断すると,そのメンバにパニックを引き起こします。

  1. 各メンバで,メンバ固有の /etc/sysconfigtab ファイルと /etc/rc.config ファイルについてバックアップ・コピーを作成します。

  2. 各メンバで,メンバ固有の /etc/rc.config ファイルを検査します。特に,NETDEV_x 構成変数と NRDEV_x 構成変数に注意してください。LAN インターコネクトで使うネットワーク・アダプタは,ブート手順の非常に早い段階で構成されるので,/etc/rc.config ではなく /etc/sysconfigtab (次の手順を参照) で定義してください。これは NetRAIN デバイスにも当てはまります。LAN インターコネクトとして,新しいデバイスを構成するのか以前のデバイスを再構成するのかを決めます。以前のデバイスを再構成する場合は,NRDEV_xNRCONFIG_xNETDEV_xIFCONFIG_xNR_DEVICES,および NUM_NETCONFIG の各変数を適切に編集して,/etc/sysconfigtab ファイルの ics_ll_tcp スタンザと /etc/rc.config ファイルに同じネットワーク・デバイス名が現れないようにしてください。

  3. 各メンバで,clubase カーネル属性の cluster_interconnecttcp を設定し,以下の ics_ll_tcp カーネル属性を,メンバのネットワーク構成に合わせて設定します。たとえば,次のようにします。

    clubase:
    cluster_interconnect = tcp
    #
    ics_ll_tcp:
    ics_tcp_adapter0 = nr0
    ics_tcp_nr0[0] = ee0
    ics_tcp_nr0[1] = ee1
    ics_tcp_inetaddr0 = 10.1.0.1
    ics_tcp_netmask0 = 255.255.255.0
     
    

    TruCluster Server バージョン 5.1 からロールしたクラスタでも,clubase カーネル・サブシステムの cluster_node_inter_name 属性を編集します。たとえば,次のように編集します。

    clubase:
    cluster_node_inter_name = pepicelli-ics0
     
    

  4. クラスタ単位の /etc/hosts ファイルを編集して,クラスタ・インターコネクトの下位レベル TCP インタフェースにおける IP 名と IP アドレスを設定します。たとえば,次のように設定します。

    127.0.0.1           localhost
    16.140.112.238      pepicelli.zk3.dec.com       pepicelli
    16.120.112.209      deli.zk3.dec.com            deli
    10.0.0.1            pepicelli-ics0
    10.1.0.1            member1-icstcp0
    10.0.0.2            pepperoni-ics0               
    10.1.0.2            member2-icstcp0
    16.140.112.176      pepperoni.zk3.dec.com       pepperoni
     
    

  5. TruCluster Server バージョン 5.1 からロールしたクラスタでは,クラスタ単位の /etc/hosts.equiv ファイルと /.rhosts ファイルを編集して,mc0 エントリを ics0 エントリに変更します。たとえば,次のように変更します。

    deli.zk3.dec.com
    pepicelli-mc0
    pepperoni-mc0
     
    

    deli.zk3.dec.com
    pepicelli-ics0
    member1-icstcp0
    pepperoni-ics0
    member2-icstcp0
     
    

    に変更。

  6. TruCluster Server バージョン 5.1 からロールしたクラスタでは,rcmgr set コマンドを使って,各メンバの /etc/rc.config ファイルにある CLUSTER_NET 変数を変更します。たとえば,次のようにします。

    # rcmgr get CLUSTER_NET
    pepicelli-mc0
    # rcmgr set CLUSTER_NET pepicelli-ics0
     
    

  7. すべてのクラスタ・メンバを停止させます。

  8. すべてのクラスタ・メンバを一度に 1 つずつブートします。

D.6    LAN から Memory Channel への移行

この節では,クラスタ・インターコネクトに LAN インターコネクトを使っているクラスタを Memory Channel へ移行する方法を説明します。

Memory Channel を構成する場合は,以下の手順を実行してください。

  1. すべてのメンバの電源を切ります。

  2. クラスタ・ハードウェア構成ガイド』に説明されているように,Memory Channel アダプタ,ケーブル,およびハブをインストールして構成します。

  3. LAN インターコネクトを使用して,genvmunix カーネルで各メンバをリブートし,クラスタへ組み込みます。

  4. doconfig を使用して,各メンバの vmunix カーネルを再構築します。

  5. メンバのルート (/) ディレクトリに各メンバの新しいカーネルをコピーします。

  6. 各メンバで,メンバ固有の /etc/sysconfigtab ファイルについて,そのバックアップ・コピーを作成します。

  7. 各メンバで,clubase カーネル属性の cluster_interconnectmct に設定します。

  8. すべてのクラスタ・メンバを停止させます。

  9. すべてのクラスタ・メンバを一度に 1 つづつリブートします。

D.7    高速イーサネット LAN からギガビット・イーサネット LAN への移行

この節では,高速イーサネット LAN インターコネクトを使うクラスタを,ギガビット・イーサネット LAN インターコネクトを使うようにするための移行方法について説明します。

高速イーサネット LAN インターコネクトをギガビット・イーサネット LAN インターコネクトで置き換えるときは,クラスタをしばらくダウンさせる必要があるので,サービスが一時中断します。

高速イーサネット LAN インターコネクトを使用する既存のクラスタを,ギガビット・イーサネット LAN インターコネクトへ移行する準備作業は,それぞれのクラスタで以下の手順で行います。

  1. クラスタ・メンバを停止し,電源を切ります。

  2. ギガビット・イーサネット・ネットワーク・アダプタをインストールし,必要なスイッチ,またはハブを構成します。

  3. クラスタ・メンバの電源を入れます。

  4. 高速イーサネット LAN インターコネクトを使用し,genvmunix カーネルでメンバをリブートして,クラスタへ組み込みます。

  5. doconfig コマンドを使用して,メンバの vmunix カーネルを再構築します。

  6. メンバのルート (/) ディレクトリに新しいカーネルをコピーします。

新しくインストールしたイーサネット・ハードウェアは,この時点で,すべてのクラスタ・メンバで共用するプライベートな従来型サブネットとして構成できます。LAN インターコネクトとしてセットアップする前に,ハードウェアが適切に構成されていて正しく動作することを検証できます。rcmgr コマンドを使用したり,/etc/rc.config ファイルを手動で編集したりして,永続的なネットワーク設定にしてはなりません。この試験用ネットワークは LAN インターコネクトを使用してクラスタをリブートしたときに存在していないようにする必要があります。したがって,各メンバで設定を行うときは,ifconfig コマンドを使用します。

ギガビット・イーサネット LAN インターコネクトを構成するには,次の手順で行います。

  1. それぞれのメンバで,メンバ固有の /etc/sysconfigtab ファイルのバックアップ・コピーを作ります。

  2. それぞれのメンバで,メンバ固有の /etc/rc.config ファイルを調べます。特に,NETDEV_x 構成変数と NRDEV_x 構成変数に注意します。LAN インターコネクトで使うネットワーク・アダプタは,ブート手順の非常に早い段階で構成されるので,/etc/sysconfigtab (次の手順を参照) で定義されます。/etc/rc.config で定義してはなりません。これは NetRAIN デバイスにも当てはまります。LAN インターコネクト用に新しいデバイスを構成するのか以前のデバイスを再構成するのかを決めます。以前のデバイスを再構成する場合は,NRDEV_xNRCONFIG_xNETDEV_xIFCONFIG_xNR_DEVICES,および NUM_NETCONFIG の各変数を適切に編集して,/etc/sysconfigtab ファイルの ics_ll_tcp スタンザと /etc/rc.config ファイルに同じネットワーク・デバイス名が現れないようにします。

  3. それぞれのメンバで,ics_ll_tcp カーネル属性をメンバのネットワーク構成に合わせて設定します。たとえば,次のようにします。

    clubase:
    cluster_interconnect = tcp
    #
    ics_ll_tcp:
    ics_tcp_adapter0 = nr0
    ics_tcp_nr0[0] = alt0
    ics_tcp_nr0[1] = alt1
    ics_tcp_inetaddr0 = 10.1.0.100
    ics_tcp_netmask0 = 255.255.255.0
     
    

  4. すべてのクラスタ・メンバを停止します。

  5. すべてのクラスタ・メンバを一度に 1 つづつブートします。

D.8    トラブルシューティング

この節では,LAN インターコネクトを誤って構成したときに起こる次のような問題について説明し,その解決方法を示します。

D.8.1    新しいメンバをブートすると,ブロードキャスト・エラーが多発して既存メンバがパニックに陥る

スパニング・ツリー・プロトコル (STP) は,クラスタ・メンバのアダプタに接続されているすべてのイーサネット・スイッチ・ポートで無効にしなければなりません。この設定は,スイッチ・ポートが単一のアダプタに接続しているか NetRAIN 仮想インタフェースに含まれる複数のアダプタに接続しているかに関係なく行う必要があります。そうしない場合,クラスタ・メンバにブロードキャスト・メッセージが溢れ,クラスタは,実質的にサービスを提供できなくなります。最初のメンバのブートから最後のメンバのブートまで,次のようなメッセージが大量に表示されることがあります。

arp: local IP address 10.1.0.100 in use by hardware address 00-00-00-00-00-00
 

これらのメッセージに続いて,以下のメッセージが表示されます。

CNX MGR: cnx_pinger: broadcast problem: err 35
 

新しいメンバをブートしてこのクラスタに追加すると,既存のメンバがハングしたりパニックに陥ったりする可能性があります。特に,クォーラム・ディスクが構成されていると,その可能性は高くなります。この場合は,ブート時に次のメッセージが表示されます。

CNX MGR: cannot form: quorum disk is in use. Unable to establish
contact with members using disk.
 

ただし,既存メンバがハングしたりパニックに陥ったりしても,30 秒ほど経過すれば,メンバがクォーラム・ディスクの検出に成功して,クラスタを形成することもあります。

D.8.2    NetRAIN 仮想インタフェースのデバイスを手動でフェイルオーバできない

NetRAIN は,非アクティブ側のインタフェースがパケットを受信しているかどうかを判定することで,そのインタフェースの正常性を監視します。その場合,必要に応じて,探査パケットをアクティブ・インタフェースから送信します。非アクティブ側のインタフェースが切断されると,NetRAIN は,そのインタフェースに DEAD のマークを付けます。アクティブ側のアダプタのケーブルを引き抜くと,NetRAIN は DEAD 状態のスタンバイ・アダプタをアクティブにしようとします。このアダプタに問題が発生していなければ,フェイルオーバは正しく行われます。

ただし,手動による NetRAIN の切り替え操作 (たとえば,ifconfig nr0 switch) は,異なった動作をします。この場合,正常なスタンバイ・アダプタがなければ,NetRAIN は DEAD 状態のアダプタへフェイルオーバしようとはしません。ifconfig nr0 switch コマンドを実行すると,次のようなメッセージが返ってきます。

ifconfig ioctl (SIOCIFSWITCH) No such device nr0
 

デュアル・スイッチ構成で,一方のスイッチに電源を再投入した後すぐに,もう一方のスイッチから手動でアクティブ・アダプタをフェイルオーバしようとすると,この現象が見られます。電源を投入して初期化が行われた後 (2〜3 分かかる) に手動で NetRAIN のフェイルオーバを行えば,正しい動作が行われます。フェイルオーバが正しく行われない場合は,スイッチのケーブル接続やアダプタを調べるとともに,ifconfig コマンドや niffconfig コマンドを使ってインタフェースの状態を調べてください。

D.8.3    アプリケーションをポートにマップできない

LAN インターコネクトを使うクラスタの通信サブシステムでは,特に指定しなければ,クラスタのブロードキャスト・トラフィック用ランデブー・ポートとしてポート 900 が使われ,ポート 901〜910 および 912〜917 が非ブロードキャスト・チャネル用に予約されます。アプリケーションがこの範囲のポートを固定的に参照するように作られていると,そのポートにバインドできません。

この状況は,LAN インターコネクトで使うポートを変更することによって解決します。ics_ll_tcp サブシステムの ics_tcp_rendezvous_port 属性と ics_tcp_ports 属性を sys_attrs_ics_ll_tcp(5) で説明しているように編集した後,クラスタ全体をリブートします。ランデブー・ポートはすべてのクラスタ・メンバで同一にしなければなりません。非ブロードキャスト・ポートはメンバ間で異なっていてもかまいませんが,すべてのメンバで同一にしておく方が管理が容易になります。