Cluster Server 7.3.1 アプリケーションノート: Oracle サーバーの動的再構成 - Solaris
CPU またはメモリボードに対する Dynamic Reconfiguration の実行
正常に機能していない CPU ボードまたはメモリボードを取り外したり、より多くのボードを必要とする別のドメインにボードを移動して再構成したいことがあると思います。
あるドメインから別のドメインへボードを再度割り当てるには、元のドメインで該当ボードをドメインから取り除き、もう一方のドメインに加えて、ドメインの再設定を行う必要があります。この再構成は、対象ボードをスロットから取り外さずに実行できます。ただし、故障したボードを交換する場合には、そのボードが属しているドメインで対象ボードをソフトウェア的に取り除いた後、実際にボードをスロットから取り外し、交換用のボードを取り付けてドメインの再設定を行う必要があります。
次の手順に従って、CPU やメモリボードに対して Dynamic Reconfiguration 操作を実行します。
Dynamic Reconfiguration 対象のボードの状態を確認するには
- 必要に応じて、CPU やメモリボードが存在するドメインに管理者としてログインします。
- 取り外すボードの接続点を確認します。
# cfgadm
Ap_Id Type Receptable Occupant Cond . N0.SB2 CPU connected configured ok .
- 対象ボードに永続メモリが搭載されているかどうかを必ず確認してください。
「永続メモリが存在する CPU またはメモリボードを判別するには」を参照してください。
Dynamic Reconfiguration 操作対象のボードに永続メモリが存在する場合は、まず、VCS の停止と起動を参照してください。で説明している手順に従って VCS を停止してください。
標準的な環境での VCS の停止を参照してください。
標準的な環境での VCS 再起動を参照してください。
SF for Oracle RAC 環境での VCS の停止を参照してください。
SF for Oracle RAC 環境での VCS の再起動を参照してください。
再設定するボードに永続メモリが存在しない場合は、Dynamic Reconfiguration を行うことができます。
CPU にバインドされているプロセスを解放するには
- プロセスが CPU にバインドされているかどうかを判別するには、次のコマンドを実行します。
# pbind -q
- プロセスが CPU にバインドされている場合は、コマンドの戻り値でプロセス PID とそのプロセスがバインドされている CPU ID が表示されます。
process id 650: 0
- コマンドの戻り値として何も出力されない、または、Dynamic Reconfiguration 対象のボードの CPU にバインドされたプロセスが存在しない場合は、ボードの設定を解除するにはの手順を実行してください。
- ボード上の CPU にバインドされたすべてのプロセスを解放します。次のように実行します。
# pbind -u 650
- 必要に応じて、別のボードのプロセッサにプロセスを再バインドします。たとえば、プロセス 650 を別のボードのプロセッサ、プロセッサ ID 9 にバインドするには、次のコマンドを実行します。
# pbind -b 650 9
- プロセスがバインドされている CPU を搭載したボードに対して設定解除を実行した場合、次のようなメッセージが出力されます。
cfgadm: Hardware specific failure: unconfigure SB15: Failed to off-line:dr@0:SB15::cpu3
ボードの設定を解除するには
- ボードを設定解除して、ドメインから切り離します。
# cfgadm -v -c disconnect SB2
- ボードに永続メモリが存在しない場合、コマンドの出力は次のようになります(サーバーにより部分的に異なります)。
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 に進みます。
- ボードに永続メモリが存在する場合は、操作を続行するかどうかの確認メッセージが出力されます。
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 を続行するには、これらのプロセスを適切な方法で停止する必要があります。
- 切り離すはずのボード上にリアルタイムプロセスが存在する場合、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
- プロセス名を判別するには、次のコマンドを使用します。
# ps -ef | grep PID
- プロセスを適切な方法で停止させます。たとえば、次のように kill コマンドを使用してプロセスを停止させることも可能です。
# kill -9 PID
- 1 のコマンドを再試行します。
- ボードがドメインから取り除かれたことを確認するために、cfgadm コマンドを実行します。
# cfgadm
Ap_Id Type Receptable Occupant Cond . N0.SB2 CPU disconnected unconfigured unknown .
この時点で、ボードをスロットから取り外すか、別のドメインに加えることが可能です。
メモ:
ドメインからボードが取り除かれることを確認するまでは、スロットからボードを取り外さないでください。
- すぐにボードを交換する場合は、ドメインにボードを追加するにはを参照してください。それ以外の場合は、次の項の手順で、切り離した CPU やメモリボードを交換せずにクラスタを再起動させます。
ドメインにボードを追加するには
- ボードを追加するドメインに、管理者としてログインします。
- 新規または交換用のボードをドメイン(たとえば、dom1)に追加する場合は、ボードを取り付けるスロットの状態を確認します。
新規にボードを追加する場合には、スロットが次の状態および条件であることが必要です。
Receptacle state: empty
Occupant state: unconfigured
Condition: unknown
この状態および条件を確認するには、次の例のように、cfgadm コマンドを使用してスロットを一覧表示します。dom1 ドメインのスロット SB2 は空いているので、このスロットに CPU ボードを取り付けることが可能です。
- 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
- cfgadm コマンドを使用して、新規のボードが接続および設定されていることを確認します。次に例を示します。
# cfgadm
Ap_Id Type Receptable Occupant Cond . SB2 CPU connected configured ok