この節では、 Sun Enterprise 10000 システムを対象とした一般的な DR の概念を説明しています。
ある装置が切り離し可能であるためには、以下の条件を満たしている必要があります。
デバイスドライバが DDI_DETACH に対応していること
重要な資源が冗長であるか、または代替パスからアクセス可能であること。CPU およびメモリーバンクは、重要な冗長資源にすることができます。また、代替パスを使用してアクセスできる重要な資源としては、たとえばディスクドライブがあります。
ボードには、ボードの資源を移動できないため、切り離せないものもあります。たとえば、ドメインにボードが 1 枚しかない場合は、そのボードを切り離すことはできません。また、起動ドライブを制御しているボードも切り離せません。ボードの代替パスがない場合は、以下の対処方法があります。
別のボードにディスクチェーンを追加する。この追加によって二次ボードを切り離すことができます。
その装置に対して 2 枚目のボードを経由して 2 つ目のパスを追加する。このようにすると、2 つ目のディスクチェーンへのアクセス手段を失うことなく、ボードを切り離すことができます。
常時メモリー (Open BootTM PROM またはカーネルメモリー) を搭載したシステムボードの構成解除を操作している間に、オペレーティング環境は短時間の間一時停止します。この状態をオペレーティング環境の休止と呼びます。構成解除操作の重大な局面では、センタープレーン上のすべてのオペレーティング環境および装置の動作を停止する必要があります。
休止できるようになるためには、オペレーティング環境は、すべてのプロセス、CPU、装置の動作を一時停止する必要があります。休止できなかった場合、オペレーティング環境は、以下のような理由を表示します。
ユーザースレッドが一時停止しなかった。
リアルタイム処理が動作している。
オペレーティング環境が一時停止させることができない装置が存在する。
一般的に、処理の中断を行えなくしている原因は一時的なものです。中断できない理由を調べてください。一時的な原因のためオペレーティング環境が処理を中断できなかった場合は、ユーザーは操作をやり直すことができます。
DR 操作によりオペレーティング環境の動作が一時停止するとき、オペレーティング環境に接続しているデバイスドライバもすべて一時停止する必要があります。ドライバを一時停止(および、停止後の再開)できないと、DR 操作は失敗します。
一時停止に対して安全な装置は、オペレーティング環境が休止しているときにメモリーアクセスやシステム割り込みを行いません。オペレーティング環境の休止 (一時停止・再開) に対応しているドライバは、一時停止に対して安全なドライバです。また、このようなドライバは、一時停止要求が行われたとき、そのドライバが管理する装置が開いていても、要求が正常に完了するまで、装置はメモリーへアクセスしないことを保証します。一方、一時停止に対して危険な装置とは、オペレーティング環境が休止しているときでも、メモリーアクセスやシステム割り込みを許可する装置です。
DR 操作では、dr.conf ファイル(DR モデル 2.0 の場合) と ngdr.conf ファイル (DR モデル 3.0 の場合) に保存されている一時停止に対して危険なドライバのリストを使用し、DR 操作中に、一時停止に対して危険な装置がメモリーへアクセスしたり、オペレーティング環境に割り込みを行ったりしないようにしています。この危険なドライバのリストは、dr.conf ファイルと ngdr.confファイルにしか保存されず、また、リストのエントリは以下の形式となります。
unsupported-io-drivers="driver1","driver2","driver3"; |
DR はオペレーティング環境の一時停止を準備するときにこのリストを読み込みますので、メモリーコンポーネントの構成を解除することができます。DR が一時停止に対して危険なドライバのリストから、動作中のドライバを見つけると、DR 操作を中止してエラーメッセージを表示します。このメッセージには、動作中の危険なドライバのIDが含まれます。以下の作業のいずれか、または組み合わせた作業を行うことにより、装置の使用を手動で解除する必要があります。
装置を使用する処理を終了させる
modunload(1M) コマンドを使用して、ドライバの読み込みを解除する
装置によっては、ケーブルの接続を外す
装置の使用を解除したら、DR 操作をやり直すことができます。
初めから DR モデルの切り替えを想定していない場合でも、一時停止に対して危険なドライバはすべて、dr.conf と ngdr.conf の両方のファイルにリストしておくことを推奨します。このようにしておくと、後から DR モデルを切り替えることになっても、すべての危険なドライバへの参照が両方の構成ファイルに含まれるようになります。