Cluster Server 7.3.1 アプリケーションノート: Oracle サーバーの動的再構成 - Solaris

Last Published:
Product(s): InfoScale & Storage Foundation (7.3.1)

I/O ボードでの Dynamic Reconfiguration の実行

場合によっては、ボードの Dynamic Reconfiguration 実行時に、ドメイン内の VCS を停止する必要があります。

VCS の停止が必要となるシナリオを参照してください。

S6800 の場合

次のシナリオでは、クラスタは dom1 ドメインと dom3 ドメインから構成されています。クラスタは、I/O ボード N0.IB8 および N0.IB6 が含まれる dom1 ドメイン上でサービスグループを実行しています。N0.IB8 には、不具合のあるコンポーネントがあるため Dynamic Reconfiguration 操作を行う必要があります。ドメイン dom3 には、I/O ボード IO14 および IO15 が含まれています。次の各図には、ディスクコントローラと NIC が示されています。

e12K/15K/25K の場合: 次のシナリオでは、クラスタは dom3 ドメインと S6800f0 ドメインで構成されています。クラスタは、I/O ボード IO14 および IO15 が含まれる dom3 ドメイン上でサービスグループを実行しています。IO15 には、不具合のあるコンポーネントがあるため Dynamic Reconfiguration 操作を行う必要があります。ドメイン S6800f0 には、I/O ボード IB8 および IB6 が含まれています。次の各図には、ディスクコントローラと NIC が示されています。

s6800、e12K、e15K、e25K のそれぞれに関して、dom1 および dom3 ドメインの I/O ボード(N0.IB8 ボードおよび IO15 ボード)に対する Dynamic Reconfiguration 操作の概要は、次のとおりです。

  • ボード上のアクティブなコントローラをすべて無効化する。

  • ボード上でプライベート通信に使用される NIC デバイスをすべて無効化する。

  • ボード上でパブリック通信に使用される NIC デバイスをすべて無効化する。

  • I/O ボードを無効化し、取り外す。

  • 交換用の I/O ボードを追加する。

  • 交換用の I/O ボードを有効化する。

  • パブリック NIC デバイスを有効化する。

  • プライベート NIC デバイスを有効化する。

  • アクティブなコントローラを有効化する。

Dynamic Reconfiguration 操作の前にクラスタとドメインの状態を確認するには

  1. VCS コマンド hastatus -sum を使用して、クラスタ内の現在のサービスグループの状態を確認します。このコマンドは、I/O ボードへの Dynamic Reconfiguration 操作の実行前と実行後、クラスタ状態を確認するために使用します。 出力は次のようになります(Oracle サーバーにより部分的に異なります)。
    -- SYSTEM STATE
    -- System State Frozen
    A dom3 RUNNING 0
    A s6800f0 RUNNING 0
    -- GROUP STATE
    -- Group System Probed AutoDisabled State
    B ServiceGroupA dom3 Y N ONLINE
    B ServiceGroupA s6800f0 Y N OFFLINE
    B cvm dom3 Y N ONLINE
    B cvm s6800f0 Y N ONLINE
  2. s6800 の場合、cfgadm -lv コマンドを実行すると、dom1 ドメイン内の I/O ボードおよびカードを表示できます。次に例を示します。

    # cfgadm -lv

    この出力(示されていません)では、ボード N0.IB8 は connected、configured、ok と示されます。また、N0.IB8 の各スロットの状態も示されます。

    e12K、e15K の場合、cfgadm -al コマンドを実行すると、dom3 ドメイン内の I/O ボードおよびカードを表示できます。次に例を示します。

    # cfgadm -al

    Ap_Id Type Receptacle Occupant
    Condition
    IO14 HPCI connected configured ok
    IO14::pci0 io connected configured ok
    IO14::pci1 io connected configured ok
    IO14::pci2 io connected configured ok
    IO14::pci3 io connected configured ok
    IO15 HPCI connected configured ok
    IO15::pci0 io connected configured ok
    IO15::pci1 io connected configured ok
    IO15::pci2 io connected configured ok
    IO15::pci3 io connected configured ok
    SB14 CPU connected configured ok
    SB14::cpu0 cpu connected configured ok
    .
    .
    .
    pcisch1:e14b1slot0 fibre/hp connected configured ok
    pcisch2:e14b1slot3 pci-pci/hp connected configured ok
    pcisch3:e14b1slot2 ethernet/hp connected configured ok
    pcisch4:e15b1slot1 pci-pci/hp connected configured ok
    pcisch5:e15b1slot0 fibre/hp connected configured ok
    pcisch6:e15b1slot3 pci-pci/hp connected configured ok
    pcisch7:e15b1slot2 ethernet/hp connected configured ok

ボード上のコントローラを判別するには

  1. vxdmpadm listctlrall コマンドを実行して、ドメイン内のすべてのコントローラを判別します。dom3 ドメインでの例を次に示します。

    # vxdmpadm listctlr all

    CTLR-NAME ENCLR-TYPE STATE ENCLR-NAME
    =====================================================
    c0 Disk ENABLED Disk
    c9 HDS9960 ENABLED HDS99600
    c8 HDS9960 ENABLED HDS99600
  2. 特定のボード(たとえば、IO15 など)に搭載されているコントローラを判別するには、次のコマンドを実行して、ドメイン内のディスク、ディスクのコントローラおよびコントローラの I/O ボード上での位置に関する情報を表示します。

    cfgadm -lv コマンドを実行して、ドメイン内のすべてのボードを一覧表示します。出力から、IO15 ボード用としてリストされているデバイススロットを確認できます。

    # cfgadm -lv

    次の例(これは出力の一部です)では、リストに次のような行が含まれています。

    .
    pcish4:e15b1slot1 . . .
    /devices/pci@1fc,700000:e15b1slot1
    pcish5:e15b1slot0 . . .
    /devices/pci@1fc,600000:e15b1slot0
    pcish6:e15b1slot3 . . .
    /devices/pci@1fd,700000:e15b1slot3
    pcish7:e15b1slot2 . . .
    /devices/pci@1fd,600000:e15b1slot2
    .

    このリストは、pci@1fc というデバイスが IO15 ボードのスロット 0 および 1 で使用され、デバイス pci@1fd はスロット 3 および 2 で使用されていることを示しています。

    format コマンドを実行して、ディスクデバイスを一覧表示できます。このリストは長くなる場合があります。出力中、デバイス名の最初の 2 文字(c#)で示されるコントローラは、前述のコマンド(手順 a)で一覧表示されたデバイスに相当します。次に例を示します。

    # format

    c0t0d0 <SUN18G ..... /pci@1dc,700000/pci@1.. .....
    c8t0d0 <HITACHI-OPEN ....
    /pci@1dc,600000/fibre-channel ...
    .
    c9t0d0 <HITACHI-OPEN ....
    /pci@1fc,600000/fibre-channel ...

    前述の 2 つのコマンドを比較すると、ボード 15 のスロット 0 にコントローラ c9 が存在することがわかります。

  3. format コマンドを使う代わりに次の手順を使って、Solaris 上の e25K の指定されたスロットまたは I/O ボード上で、どのストレージコントローラが Dynamic Reconfiguration 操作によって影響を受けるかを判別することもできます。

    sol10(cougar)上のボード IO4 でどの I/O コントローラが Dynamic Reconfiguration の影響を受けるかを、次のコマンドを使って確認します。

    cougar# cfgadm -s "cols=ap_id:physid" | grep IO4

    IO4 /devices/pseudo/dr@0:IO4
    IO4_C3V0 /devices/pci@9c,600000:IO4_C3V0
    IO4_C3V1 /devices/pci@9d,600000:IO4_C3V1
    IO4_C5V0 /devices/pci@9c,700000:IO4_C5V0
    IO4_C5V1 /devices/pci@9d,700000:IO4_C5V1

    -s パラメータを使って、出力を ap_id カラムと物理 ID カラムに制限します。

    pci@... に注意します。phys id で「pci@9[cd],[67]00000」を使って再度 grep を使用します。

    cougar# cfgadm -s "cols=ap_id:physid" | grep pci@9[cd],[67]

    IO4_C3V0 /devices/pci@9c,600000:IO4_C3V0
    IO4_C3V1 /devices/pci@9d,600000:IO4_C3V1
    IO4_C5V0 /devices/pci@9c,700000:IO4_C5V0
    IO4_C5V1 /devices/pci@9d,700000:IO4_C5V1
    c0 /devices/pci@9c,700000/pci@1/scsi@2:scsi
    c1 /devices/pci@9c,700000/pci@1/scsi@2,1:scsi
    c2 /devices/pci@9c,600000/SUNW,qlc@1,1/fp@0,0:fc
    c3 /devices/pci@9c,600000/SUNW,qlc@1/fp@0,0:fc
    c4 /devices/pci@9d,700000/SUNW,qlc@1/fp@0,0:fc
    c5 /devices/pci@9d,700000/SUNW,qlc@1,1/fp@0,0:fc

    c0 と c1 は IO4_C5V0 上にあり、c2 と c3 は IO4_C3V0 上、c4 と c5 は IO4_C5V1 上にあります。

    Solaris 9 上でも、手順はほとんど同じです。

    jaguar# cfgadm -s "cols=ap_id:physid" | grep e17

    e17 corresponds to the IO board #17

    pcisch4:e17b1slot1 /devices/pci@23c,700000:e17b1slot1
    pcisch5:e17b1slot0 /devices/pci@23c,600000:e17b1slot0
    pcisch6:e17b1slot3 /devices/pci@23d,700000:e17b1slot3
    pcisch7:e17b1slot2 /devices/pci@23d,600000:e17b1slot2

    jaguar# cfgadm -s "cols=ap_id:physid" | grep pci@23[cd],[67]

    c4 /devices/pci@23c,700000/pci@1/scsi@2:scsi
    c5 /devices/pci@23c,700000/pci@1/scsi@2,1:scsi
    c6 /devices/pci@23d,700000/SUNW,qlc@1/fp@0,0:fc
    pcisch4:e17b1slot1 /devices/pci@23c,700000:e17b1slot1
    pcisch5:e17b1slot0 /devices/pci@23c,600000:e17b1slot0
    pcisch6:e17b1slot3 /devices/pci@23d,700000:e17b1slot3
    pcisch7:e17b1slot2 /devices/pci@23d,600000:e17b1slot2

    c4 と c5 は e17b1slot1 上に、c6 は slot3 上にあります。

ボード上のネットワークインターフェースを判別するには

  • どのネットワークインターフェースが I/O ボード上のどのスロットに対応するかを確認するには(各 I/O ボードでは最大で 4 枚の PCI カードを利用できるため)、grep コマンドを使って /etc/path_to_inst から PCI ID を検索します。

    Solaris 上の e25K の場合

    IO4_C3V0 /devices/pci@9c,600000:IO4_C3V0
    IO4_C3V1 /devices/pci@9d,600000:IO4_C3V1
    IO4_C5V0 /devices/pci@9c,700000:IO4_C5V0
    IO4_C5V1 /devices/pci@9d,700000:IO4_C5V1

    cougar# grep pci@9[cd],[67] /etc/path_to_inst |grep network

    "/pci@9c,700000/network@3,1" 0 "eri"
    "/pci@9c,700000/pci@1/network@0" 0 "ce"
    "/pci@9c,700000/pci@1/network@1" 1 "ce"
    "/pci@9d,600000/pci@1/network@0" 2 "ce"

    IO4_C5V0 には eri0、c0、c1 が含まれています。IO4_C3V1 には ce2 が含まれています。

    cougar#

ボード上のコントローラを無効化するには

  1. vxdmpadm コマンドを実行して、I/O システムカード上のアクティブなコントローラを無効化します。

    vxdmpadm disable ctlr=ctlr

    S6800 の場合

    # vxdmpadm disable ctlr=c2

    E12K、E15K の場合

    # vxdmpadm disable ctlr=c9

  2. vxdmpadm コマンドを実行して、コントローラが無効であることを確認します。 すべての Oracle サーバー(S6800 および E12K、E15K、E25K)で、出力は小さな違いを除けばほとんど同じです。

    # vxdmpadm listctlr all

    S6800 の場合: この例では、ボード上のコントローラは c2 のみです。

    CTLR-NAME ENCLR-TYPE STATE ENCLR-NAME
    =====================================================
    c0 Disk ENABLED Disk
    c2 HDS9960 DISABLED HDS99600
    c1 HDS9960 ENABLED HDS99600

    e12K/15K の場合: この例では、ボード IO15 のコントローラは c9 のみです。

    CTLR-NAME ENCLR-TYPE STATE ENCLR-NAME
    =====================================================
    c0 Disk ENABLED Disk
    c9 HDS9960 DISABLED HDS99600
    c8 HDS9960 ENABLED HDS99600
  3. カードに複数のコントローラが存在する場合は、再設定するカード上のコントローラごとにこのコマンドを実行します。

プライベートネットワークリンクの状態を一覧表示し、無効化するには

  1. lltstat -nv コマンドを実行します。

    出力は次のようになります。

    S6800 の場合

    LLT node information:
    Node State Links
    * 0 dom1 OPEN 2
    1 dom3 OPEN 2
    2 CONNWAIT 0
    .
    .
    31 CONNWAIT 0

    出力から、両方のドメインに 2 つのプライベート通信用リンクが存在することがわかります。 いずれのリンクも「OPEN」、すなわち、動作中です。

    E12K、E15K の場合

    LLT node information:
    Node State Links
    0 s6800f0 OPEN 2
    * 1 dom3 OPEN 2
    2 CONNWAIT 0
    .
    .
    31 CONNWAIT 0

    出力から、両方のドメインに 2 つのプライベート通信用リンクが存在することがわかります。 いずれのリンクも「OPEN」、すなわち、動作中です。

  2. 次のコマンドを使って /etc/llttab ファイルを表示します。

    # cat /etc/llttab

    S6800 の場合

    set-node dom1
    set-cluster 13
    link qfe4 /dev/qfe:4 - ether - -
    link qfe0 /dev/qfe:0 - ether - -

    デバイス qfe0 および qfe4 は、プライベートネットワークリンクとして表示されます。

    E12K、E15K の場合

    set-node dom3
    set-cluster 13
    link cd3 /dev/ce:3 - ether - -
    link cd8 /dev/ce:8 - ether - -

    デバイス ce3 および ce8 は、プライベートネットワークリンクとして表示されます。

  3. プライベートネットワークリンクデバイスを無効化します。

    たとえば、S6800 の場合は、プライベートネットワークリンクデバイスは qfe4 で、I/O ボード N0.IB8 上にあります。

    # /sbin/lltconfig -u qfe4

    たとえば E12K と E15K の場合は、プライベートネットワークリンクデバイスは ce8 で、I/O ボード 15 にあります。

    # /sbin/lltconfig -u ce8

  4. プライベートネットワークリンクの状態をチェックします。

    # lltstat -nv

    S6800 の場合

    LLT node information:
    Node State Links
    * 0 dom1 OPEN 2
    dom3 OPEN 1
    2 CONNWAIT 0
    .
    .
    .
    31 CONNWAIT 0

    E12K、E15K の場合

    LLT node information:
    Node State Links
    0 s6800f0 OPEN 1
    * 1 dom3 OPEN 2
    2 CONNWAIT 0
    .
    .
    .
    31 CONNWAIT 0

パブリック NIC の状態を一覧表示し、無効化するには

  1. ifconfig -a コマンドを実行します。

    S6800 の場合: この例では、qfe3(ボード N0.IB6 上)と qfe7(ボード N0.IB8 上)が、パブリックネットワーク接続に使用される NIC であり、両デバイスは現在動作中です。

    # ifconfig -a

    lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232
    index
    1 inet 127.0.0.1 netmask ff000000
    ge0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500
    index 2 inet 10.182.65.99 netmask fffff000 broadcast
    10.182.79.255 ether 0:3:ba:8:ec:40
    qfe3:
    flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,
    NOFAILOVER> mtu 1500 index 3 inet 10.182.66.143 netmask
    ffffff00 broadcast 10.255.255.255 groupname mn1 ether
    0:3:ba:8:ec:40
    qfe7:
    flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,
    NOFAILOVER> mtu 1500 index 4 inet 10.182.66.144 netmask
    ffffff00 broadcast 10.255.255.255 groupname mn1 ether
    0:3:ba:8:ec:40
  2. S6800 の場合、ボード N0.IB8 のデバイス qfe7 を無効化するには、次のコマンドを実行します。

    # ifconfig qfe7 down

    # ifconfig qfe7 unplumb

    E12K、E15K の場合、ボード IO15 のデバイス ce5 を無効化するには、次のコマンドを実行します。

    # ifconfig ce5 down

  3. S6800 の場合、ifconfig -a コマンドを使って、qfe7 が停止していることを確認します。出力には qfe7 に関する情報は表示されません。

    E12K、E15K、E25K の場合、ifconfig -a コマンドを使用して、ce5 が停止していることを確認します。出力には ce5 に関する情報が表示されません。

    # ifconfig -a

I/O ボードを無効化し、取り外すには

  1. コントローラおよびネットワークインターフェースカードが無効なときに、ボードを取り外します。

    S6800 の場合

    # cfgadm -c disconnect N0.IB8

    E12K、E15K の場合

    # cfgadm -c disconnect IO15

    メモ:

    通常の切断を試みたが失敗したときで、このコマンドの処理を正常に終了させる方法が他に見つからない場合にのみ、-f オプションの使用を推奨します。

  2. cfgadm コマンドを使用して、I/O ボードの状態を確認します。

    # cfgadm -al

    S6800 の場合、出力では、N0.IB8 のフィールド[Receptable]、[Occupant]および[Condition]には、それぞれ disconnected、unconfigured および unknown が表示されます。

    この時点で、I/O ボードを物理的に取り外すことができます。dom1 ドメインに新しいボードを追加する前に、このボードを別のスペアドメインでテストする必要があります。

    E12K、E15K の場合

    Ap_Id Type Receptacle Occupant
    Condition
    IO14 HPCI connected configured ok
    IO14::pci0 io connected configured ok
    IO14::pci1 io connected configured ok
    IO14::pci2 io connected configured ok
    IO14::pci3 io connected configured ok
    IO15 HPCI disconnected unconfigured
    unknown
    SB14 CPU connected configured ok
    SB14::cpu0 cpu connected configured ok
    .
    .

    この時点で、ボード IO15 を物理的に取り外すことができます。

新しい I/O ボードを追加するには

  1. 必要なすべてのケーブルを接続してボードを物理的に取り付け、設定します。

    S6800 の場合

    # cfgadm -c configure N0.IB8

    E12K、E15K の場合

    # cfgadm -c configure IO15

    メモ:

    cfgadm コマンドの出力で、新規ボードを追加するスロットの状態を確認します。状態は disconnected、unconfigured、unknown です。

  2. cfgadm -al コマンドを実行して、ボードが設定されたことを確認します。ボードの状態が connected、configured、ok であれば、正常に構成されています。VCS を停止した場合は、手順 3 から 6 を省略できます。
  3. 新規ボード上で、ネットワークインターフェースカードを再設定します。

    S6800 の場合

    # ifconfig qfe7 plumb

    # ifconfig qfe7 up

    E12K、E15K の場合

    # ifconfig ce5 plumb

  4. ifconfig -a コマンドを実行して、NIC が起動し、動作していることを確認します。
  5. LLT を再設定し、プライベートネットワークリンクを再構築します。

    S6800 の場合

    # /sbin/lltconfig -t qfe4 -d /dev/qfe:4

    E12K、E15K の場合

    # /sbin/lltconfig -t ce8 -d /dev/ce:8

  6. lltstat -nv コマンドを使用して、プライベートネットワークリンクがリストアされたことを確認します。

    # /sbin/lltstat -nv

  7. S6800 の場合、vxdmpadm コマンドを使用して、N0.IB8 上のコントローラ c2 を有効化します。

    # vxdmpadm enable ctlr=c2

    E12K、E15K の場合、vxdmpadm コマンドを使用して、IO15 上のコントローラ c9 を有効化します。

    # vxdmpadm enable ctlr=c9

  8. コントローラが起動し、動作していることを確認します。

    # vxdmpadm listctlr all

    I/O ボードの再設定前に VCS を停止した場合は、VCS を再起動してください。VCS の停止と起動を参照してください。 の項に記載の説明を参照してください。