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

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

CPU またはメモリボードに対する Dynamic Reconfiguration の実行

正常に機能していない CPU ボードまたはメモリボードを取り外したり、より多くのボードを必要とする別のドメインにボードを移動して再構成したいことがあると思います。

あるドメインから別のドメインへボードを再度割り当てるには、元のドメインで該当ボードをドメインから取り除き、もう一方のドメインに加えて、ドメインの再設定を行う必要があります。この再構成は、対象ボードをスロットから取り外さずに実行できます。ただし、故障したボードを交換する場合には、そのボードが属しているドメインで対象ボードをソフトウェア的に取り除いた後、実際にボードをスロットから取り外し、交換用のボードを取り付けてドメインの再設定を行う必要があります。

次の手順に従って、CPU やメモリボードに対して Dynamic Reconfiguration 操作を実行します。

Dynamic Reconfiguration 対象のボードの状態を確認するには

  1. 必要に応じて、CPU やメモリボードが存在するドメインに管理者としてログインします。
  2. 取り外すボードの接続点を確認します。

    # cfgadm

    Ap_Id Type Receptable Occupant Cond
    .
    N0.SB2 CPU connected configured ok
    .
  3. 対象ボードに永続メモリが搭載されているかどうかを必ず確認してください。

    「永続メモリが存在する CPU またはメモリボードを判別するには」を参照してください。

CPU にバインドされているプロセスを解放するには

  1. プロセスが CPU にバインドされているかどうかを判別するには、次のコマンドを実行します。

    # pbind -q

  2. プロセスが CPU にバインドされている場合は、コマンドの戻り値でプロセス PID とそのプロセスがバインドされている CPU ID が表示されます。
    process id 650: 0
  3. コマンドの戻り値として何も出力されない、または、Dynamic Reconfiguration 対象のボードの CPU にバインドされたプロセスが存在しない場合は、ボードの設定を解除するにはの手順を実行してください。
  4. ボード上の CPU にバインドされたすべてのプロセスを解放します。次のように実行します。

    # pbind -u 650

  5. 必要に応じて、別のボードのプロセッサにプロセスを再バインドします。たとえば、プロセス 650 を別のボードのプロセッサ、プロセッサ ID 9 にバインドするには、次のコマンドを実行します。

    # pbind -b 650 9

  6. プロセスがバインドされている CPU を搭載したボードに対して設定解除を実行した場合、次のようなメッセージが出力されます。
    cfgadm: Hardware specific failure: unconfigure SB15: Failed to
    off-line:dr@0:SB15::cpu3

ボードの設定を解除するには

  1. ボードを設定解除して、ドメインから切り離します。

    # cfgadm -v -c disconnect SB2

  2. ボードに永続メモリが存在しない場合、コマンドの出力は次のようになります(サーバーにより部分的に異なります)。
    request delete capacity (4 cpus)
    request delete capacity (2097152 pages)
    request delete capacity SB2 done
    request offline SUNW_cpu/cpu448
    request offline SUNW_cpu/cpu449
    request offline SUNW_cpu/cpu450
    request offline SUNW_cpu/cpu451
    request offline SUNW_cpu/cpu448 done
    request offline SUNW_cpu/cpu449 done
    request offline SUNW_cpu/cpu450 done
    request offline SUNW_cpu/cpu451 done
    unconfigure SB2
    unconfigure SB2 done
    notify remove SUNW_cpu/cpu448
    notify remove SUNW_cpu/cpu449
    notify remove SUNW_cpu/cpu450
    notify remove SUNW_cpu/cpu451
    notify remove SUNW_cpu/cpu448 done
    notify remove SUNW_cpu/cpu449 done
    notify remove SUNW_cpu/cpu450 done
    notify remove SUNW_cpu/cpu451 done
    disconnect SB2
    disconnect SB2 done
    poweroff SB2
    poweroff SB2 done
    unassign SB2 skipped

    4 に進みます。

  3. ボードに永続メモリが存在する場合は、操作を続行するかどうかの確認メッセージが出力されます。
    System may be temporarily suspended; proceed (yes/no)?

    「yes」と入力した場合、Dynamic Reconfiguration 操作が続行されます。Dynamic Reconfiguration 操作が実行されている間、システムはサスペンド状態となります。カーネルが別のボードで稼働すると、システムは再開され、ボードがドメインから切り離されます。切断の操作が成功した場合は、出力は次のようになります(サーバーにより部分的に異なります)。

    request suspend SUNW_OS
    request suspend SUNW_OS done
    request delete capacity (2097152 pages)
    request delete capacity SB15 done
    request offline SUNW_cpu/cpu480
    request offline SUNW_cpu/cpu481
    request offline SUNW_cpu/cpu482
    request offline SUNW_cpu/cpu483
    request offline SUNW_cpu/cpu480 done
    request offline SUNW_cpu/cpu481 done
    request offline SUNW_cpu/cpu482 done
    request offline SUNW_cpu/cpu483 done
    unconfigure SB15
    unconfigure SB15 done
    notify remove SUNW_cpu/cpu480
    notify remove SUNW_cpu/cpu481
    notify remove SUNW_cpu/cpu482
    notify remove SUNW_cpu/cpu483
    notify remove SUNW_cpu/cpu480 done
    notify remove SUNW_cpu/cpu481 done
    notify remove SUNW_cpu/cpu482 done
    notify remove SUNW_cpu/cpu483 done
    disconnect SB15
    disconnect SB15 done
    poweroff SB15

    4 に進みます。

    メモ:

    リアルタイムプロセスが、設定解除を行うボード上に存在する場合、切り離し操作に失敗する可能性があります。Dynamic Reconfiguration を続行するには、これらのプロセスを適切な方法で停止する必要があります。

  4. 切り離すはずのボード上にリアルタイムプロセスが存在する場合、Dynamic Reconfiguration 操作は失敗し、ボード上に存在するプロセスの ID を表示します。Oracle Sun Enterprise サーバーの違いにより出力内容には多少の違いがあります。

    次に例を示します。

    .
    .
    notify remove SUNW_cpu/cpu481 done
    notify remove SUNW_cpu/cpu482 done
    notify remove SUNW_cpu/cpu483 done
    cfgadm: Hardware specific failure: unconfigure SB15:
    Cannot
    quiesce realtime thread: 621
  5. プロセス名を判別するには、次のコマンドを使用します。

    # ps -ef | grep PID

  6. プロセスを適切な方法で停止させます。たとえば、次のように kill コマンドを使用してプロセスを停止させることも可能です。

    # kill -9 PID

  7. 1 のコマンドを再試行します。
  8. ボードがドメインから取り除かれたことを確認するために、cfgadm コマンドを実行します。

    # cfgadm

    Ap_Id Type Receptable Occupant Cond
    .
    N0.SB2 CPU disconnected unconfigured unknown
    .

    この時点で、ボードをスロットから取り外すか、別のドメインに加えることが可能です。

    メモ:

    ドメインからボードが取り除かれることを確認するまでは、スロットからボードを取り外さないでください。

  9. すぐにボードを交換する場合は、ドメインにボードを追加するにはを参照してください。それ以外の場合は、次の項の手順で、切り離した CPU やメモリボードを交換せずにクラスタを再起動させます。

ドメインにボードを追加するには

  1. ボードを追加するドメインに、管理者としてログインします。
  2. 新規または交換用のボードをドメイン(たとえば、dom1)に追加する場合は、ボードを取り付けるスロットの状態を確認します。

    新規にボードを追加する場合には、スロットが次の状態および条件であることが必要です。

    • Receptacle state: empty

    • Occupant state: unconfigured

    • Condition: unknown

    この状態および条件を確認するには、次の例のように、cfgadm コマンドを使用してスロットを一覧表示します。dom1 ドメインのスロット SB2 は空いているので、このスロットに CPU ボードを取り付けることが可能です。

  3. cfgadm コマンドを使用して、CPU やメモリボードを接続し、ドメインに追加します。

    cfgadm -v -c configure SBx

    次に例を示します。

    # cfgadm -v -c configure SB2

    assign SB2
    assign SB2 done
    poweron SB2
    poweron SB2 done
    test SB2
    test SB2 done
    connect SB2
    connect SB2 done
    configure SB2
    configure SB2 done
    notify online SUNW_cpu/cpu448
    notify online SUNW_cpu/cpu449
    notify online SUNW_cpu/cpu450
    notify online SUNW_cpu/cpu451
    notify add capacity (4 cpus)
    notify add capacity (2097152 pages)
    notify add capacity SB2 done
  4. cfgadm コマンドを使用して、新規のボードが接続および設定されていることを確認します。次に例を示します。

    # cfgadm

    Ap_Id Type Receptable Occupant Cond
    .
    SB2 CPU connected configured ok