この節では、論理的な切り離し操作を実行するための DR の構成方法について説明します。
重要なシステムリソースに接続されている入出力コントローラをホストしているボードを切り離す場合、DR Detach 機能は、代替パス設定 (AP : Alternate Pathing) 機能、または SolsticeTM DiskSuiteTM によるミラー化機能と連携して動作します。たとえば、この種のボードのコントローラに接続されているディスク上に、ルート (/) パーティションまたは /usr パーティションがある場合、このディスクへのハードウェア代替パスがなかったり (かつ AP がこれを利用するように構成されている)、またはディスクがミラー化されていなかったりすると、そのボードを切り離せません。つまり、ドメイン内の他のボードが、代替パスまたはミラーのホストとなっている必要があります。同じことがネットワークコントローラの場合にもあてはまります。SSP と Sun Enterprise 10000 プラットフォームを接続する Ethernet コントローラのホストとなっているボードは、このネットワーク接続を維持するための代替パスが他のボードの Ethernet コントローラに指定されていない限り、切り離すことはできません。
soc ドライバや pln ドライバでデバイスの中断ができるように設定するには、/etc/system ファイルを編集して、pln_enable_detach_suspend 変数や soc_enable_detach_suspend 変数の値を次のように 1 に設定しておく必要があります。
set pln:pln_enable_detach_suspend=1 set soc:pln_enable_detach_suspend=1 |
ドメインのスワップ領域は、別々のボードがホストとなっているコントローラに接続されているディスク上に、複数のパーティションとして構成する必要があります。この種の構成では、スワップ領域を動的に追加・削除できるので、特定のスワップパーティションに重要性が偏らなくなります (詳細は、swap(1M) マニュアルページを参照してください)。
メモリー (swapfs) やディスクのスワップ領域を切り離す場合は、現在実行中のプログラムに対応できるだけの十分なメモリーまたはスワップ領域が、ドメイン内に残っている必要があります。
あまり重要ではないシステムリソースをホストしているボードは、リソースへの代替パスの有無に関係なく切り離すことができます。切り離すボード上のデバイスはすべて、切り離しの前に閉じる必要があります。そのボードに関連するすべてのファイルシステムのマウントを解除し、スワップパーティションを削除してください。マウントを解除する前に、ファイルやデバイスを開いているプロセスの終了や、(lockfs(1M) を使用した) ファイルシステムにハードロックの設定が必要な場合もあります。
ボード上の入出力デバイスに関連するすべてのドライバは、ドライバの切り離しエントリポイントにおいて、DDI_DETACH オプションをサポートする必要があります。このオプションは、デバイスまたはアダプタに関連付けられているすべてのシステムリソースを解放します。
ndd(1M) コマンドを使用してネットワークドライバの構成パラメタを設定した場合、DR Detach または DR Attach を実行した後はパラメタの設定内容が無効になる可能性があります。DR 操作の後も変更したパラメタの内容が持続するようにドライバパラメタを設定するには、/etc/system ファイルまたは driver.conf ファイルを編集します。
ページング不可能なメモリーが付いているボードを切り離すとき、DR はページング不可能なメモリーのコピー先となる、代替(ターゲット)メモリーボードを指定しなければなりません。Solaris 7、Solaris 8 では、ターゲットボードが見つからない場合は切り離し操作が拒否され、DR はシステムコンソールに以下の警告メッセージを表示します。
WARNING: sfdr: sfdr_pre_release_mem: no available target for mem-unit (board.0) |
ドメインのスワップ領域は、スワップデバイスと swapfs (メモリー) から構成されます。ドメインには、ページング可能なメモリーをフラッシュできるだけの十分なスワップ領域が必要です。たとえば、2 GB のドメインから 1 GB のメモリーを切り離す場合、負荷に応じて、1 GB のスワップ領域が必要です。スワップ領域が不足している場合、DR は、メモリーを搭載しているボードを切り離せません。この場合、メモリードレイン段階が完了しないので、ユーザーによる切り離し操作の中止が必要です。
DR では、切り離されているボード上のすべてのネットワークインタフェースの使用が自動的に終了されます。切り離し操作を完了すると、dr_daemon(1M) によって、切り離されたボード上の構成されたインタフェースがすべて識別され、次のような ifconfig(1M) コマンドが各インタフェース上に発行されます。
ifconfig interface down ifconfig interface unplumb |
さらに、FDDI インタフェースが切り離されている場合は、切り離し操作を実行する前に DR によって FDDI ネットワーク監視デーモンが終了されます。FDDI ネットワーク監視デーモンは、切り離しが完了した後で DR によって再起動されます。nf デバイスの /usr/sbin/nf_snmd デーモンの起動や停止は、FDDI インタフェースを含むボードが接続されるときには行われないことに注意してください。
これらのコマンドは、次のいずれかの条件を満たすネットワークインタフェースを含むボード上では実行されません。これらの場合、切り離し操作は失敗し、エラーメッセージが表示されます。
インタフェースがドメインの主ネットワークインタフェースである。すなわち IP アドレスがファイル /etc/nodename に含まれるネットワークインタフェース名に対応するインタフェースである場合です。この場合、ドメインの主ネットワークインタフェースを終了すると、ネットワーク情報ネームサービスが動作しなくなり、ftp(1)、rsh(1)、rcp(1)、rlogin(1) などのアプリケーションを使用した遠隔ホストへのネットワーク接続が不可能になります。NFS クライアントおよびサーバーの動作も影響を受けます。
インタフェースがシステムの SSP ホストと同じサブネット上にある。すなわち /etc/ssphostname にある SSP ホスト名に対応する IP アドレスのサブネット上にある場合です。この場合、このインタフェースを終了すると、ホストと SSP が通信できなくなります。DR 操作は SSP 上で開始されるため、切り離しプロセスの制御が失われます (/etc/ssphostname ファイルにはホストを制御する SSP 名が含まれているため、SSP 名を変更した場合は、/etc/ssphostname を手動で更新する必要があります)。
インタフェースが、AP メタデバイスが plumb されたときの Alternate Pathing (AP) メタデバイスに対する有効な代替パスである。AP によって使用されるインタフェースは、ボードが切り離されたときの有効なパスであってはいけません。AP 2.1 では、切り替えが自動的に行われます。ただし、アクティブなパスを、切り離されているボード上にないインタフェースに手動で切り替えることができます。そのようなパスが存在しない場合は、AP インタフェース上で ifconfig down および ifconfig unplumb コマンドを手動で実行します (アクティブなパスを手動で切り替えるには、apconfig(1M) コマンドを使用します)。
ネットワークインタフェースを切り離すと、NFS クライアントシステムに影響を与えることがあります。
すべての非ネットワークデバイスは、切り離しの前に終了する必要があります。Hostview デバイスディスプレイ内および drshow(1M) 入出力リスト内に、特定のデバイスを開いたプロセスの数を示す open count フィールドがあります。どのプロセスがこれらのデバイスを開いたかを知るには、fuser(1M) コマンドをドメイン上で実行します。
非ネットワークデバイスに対して、いくつかの作業を行う必要があります。次に手順を示しますが、厳密にこの順序で実行する必要はありません。
Alternate Pathing 機能または Solstice DiskSuite によるミラー化機能の冗長性という特徴を使用してボードに接続されているデバイスにアクセスする場合、これらのサブシステムを再構成し、他のシステムボードのコントローラを使用してデバイスまたはネットワークにアクセスできるようにします。AP 2.1 では、使用できる代替インタフェースがある場合、ディスクデバイスがそのインタフェースに自動的に切り替えられます。
ボード常駐パーティション (たとえば、umount /partit) が存在する Solstice DiskSuite メタデバイスを含めて、ファイルシステムのマウントを解除します。
Alternate Pathing 機能または Solstice DiskSuite データベースを、ボード常駐パーティションから削除します。Alternate Pathing または Solstice DiskSuite データベースの場所は、ユーザーによって明示的に選択され、変更することができます。
Sun Enterprise Volume ManagerTM または Veritas Volume Manager によって使用される占有領域を、すべて削除します。デフォルトでは、ボリュームマネージャは制御する各デバイスの占有領域を使用するため、ボリュームマネージャに制御されているデバイスを切り離す前に、制御を解除する必要があります。
swap(1M) を使用して、ディスクパーティションをスワップの構成から削除します。
デバイスまたは raw パーティションを直接開くすべてのプロセスを終了するか、あるいはボード上の開いているデバイスを閉じるようにプロセスに指示します。
切り離しに対して危険なデバイスがボード上に存在する場合、デバイスのすべてのインスタンスを閉じ、modunload(1M) を使用してドライバの読み込みを取り消します。
オペレーティング環境が一時停止される可能性がある場合は、開いているすべてのリアルタイムプロセスを終了します。
share(1M) ユーティリティを使用して共有ファイルシステムのマウントを解除すると、NFS クライアントシステムに影響を与えることがあります。
プロセスに対して、いくつかの作業を行う必要があります。次に手順を示しますが、厳密にこの順序で実行する必要はありません。
オペレーティング環境が一時停止される可能性がある場合は、実行中のリアルタイムプロセスをすべて終了します。
ボード上のプロセッサに結合されているすべてのプロセスを、終了または解除します。
ボード上のプロセッサにプロセスが結合されていると、そのボードを切り離すことができません。終了または解除したプロセスは、pbind(1M) を使用して他のプロセッサに再結合できます。
起動プロセッサには、netcon BBSRAM バッファーを保守する役割があります。起動プロセッサが常駐するボードを切り離す前に、dr_daemon(1M) によって起動プロセッサの役割を別のアクティブな (オンライン) プロセッサに割り当てる必要があります。