cfgadm コマンドは Solaris 7 - 11/99 ソフトウェアリリースにおいて更新され、x86 システムでサポートされる PCI アダプタカードに対し PCI ホットプラグ機能を提供します。ここでの説明は、『Solaris のシステム管理 (第 1 巻)』の「デバイスの管理」で説明されているデバイスの管理に関する情報を補足するものです。
PCI アダプタカードのホットプラグ機能により、システムをリブートすることなく、実行中のシステムに PCI アダプタカードを追加したり削除したりする機能を提供します。
Sun の高可用性方針の一部であるこの機能は、代替パスを提供するというような付加的な階層化製品や、デバイスに障害が発生した場合フォルトトレランスを提供するフェイルオーバーソフトウェアなどと組み合わせて使用できるように設計されています。
高可用性ソフトウェアがない場合は、障害を起こしたデバイスを交換するときに、アプリケーションの停止、デバイスの構成解除、追加または削除操作をすべて手動で行うことになります。
現在、PCI ホットプラグ機能は Intel プラットフォームでサポートされています。ホットプラグ機能をサポートする PCI ハードウェアのリストについては、『Solaris 7 (Intel Platform Edition) 11/99 Hardware Compatibility List』を参照してください。
次の節では、いくつかのホットプラグ操作を説明し、PCI アダプタカードについてホットプラグを行う手順を説明します。
接続されているシステムリソースがアクティブではない PCI アダプタカードは、デバイスドライバがホットプラグ機能をサポートする場合、取り外すことができます。
PCI アダプタカードがアクティブなシステムリソースになっている場合、取り外すことはできません。取り外せる PCI アダプタカードは次の条件を満たす必要があります。
デバイスドライバがホットプラグ機能をサポートしている
基幹となるリソースは、別のパスでアクセスできる
たとえば、システムに Ethernet カードが 1 枚だけインストールされている場合は、ネットワーク接続を解除せずに Ethernet カードを取り外すことはできません。ネットワーク接続を維持しながら取り外すには、別の階層化ソフトウェアのサポートが必要です。
PCI アダプタカードを取り外す詳細な手順は、「x86: PCI アダプタカードを取り外すには」を参照してください。
PCI アダプタカードは次の条件を満たすとき、システムに追加できます。
空きスロットがある
デバイスドライバがこのアダプタカードに対するホットプラグ機能をサポートしている
PCI アダプタカードを取り付ける詳細な手順は、「x86: PCI アダプタカードを追加するには」を参照してください。
次の例では、わかりやすくするため PCI アタッチメントポイントだけを示しています。実際のシステムに示されるアタッチメントポイントは、システム構成により異なります。
cfgadm(1M) コマンドを使用すると、PCI ホットプラグ可能なデバイスとシステムのスロットの状態を表示できます。
スーパーユーザーになります。
PCI スロット構成情報を表示します。
# cfgadm pci Ap_Id Receptacle Occupant Condition pci1:hpc0_slot0 empty unconfigured unknown pci1:hpc0_slot1 empty unconfigured ok pci1:hpc0_slot2 empty unconfigured ok pci1:hpc0_slot3 connected configured ok pci1:hpc0_slot4 empty unconfigured ok # cfgadm -s "cols=ap_id:type:info" pci Ap_Id Type Information pci1:hpc0_slot0 unknown Slot 7 pci1:hpc0_slot1 unknown Slot 8 pci1:hpc0_slot2 unknown Slot 9 pci1:hpc0_slot3 Ethernet/HP Slot 10 pci1:hpc0_slot4 unknown Slot 11 |
論理 ap_id である pci1:hpc0_slot0 は、そのホットプラグ可能スロット Slot 7 (このスロットの物理的な識別子) の論理 ap_id です。構成要素 hpc0 は、このスロットのホットプラグ可能アダプタカードを表し、pci1 は PCI バスインスタンスを表します。Type フィールドは、そのスロットにある PCI アダプタカードの種類を表します。
スーパーユーザーになります。
コントローラが入っているスロットを調べます。
# cfgadm Ap_Id Receptacle Occupant Condition pci1:hpc0_slot0 empty unconfigured unknown pci1:hpc0_slot1 empty unconfigured unknown pci1:hpc0_slot2 empty unconfigured unknown pci1:hpc0_slot3 connected configured ok pci1:hpc0_slot4 empty unconfigured unknown |
デバイスを開いているアプリケーションを停止します。
たとえば、これが Ethernet カードの場合は、ifconfig(1M) を使用してインタフェースを停止します。
デバイスの構成を解除します。
# cfgadm -c unconfigure pci1:hpc0_slot3 |
デバイスが構成解除されていることを確認します。
# cfgadm Ap_Id Receptacle Occupant Condition pci1:hpc0_slot0 empty unconfigured unknown pci1:hpc0_slot1 empty unconfigured unknown pci1:hpc0_slot2 empty unconfigured unknown pci1:hpc0_slot3 connected unconfigured unknown pci1:hpc0_slot4 empty unconfigured unknown |
スロットへの電源を切ります。
# cfgadm -c disconnect pci1:hpc0_slot3 |
デバイスが切り離されていることを確認します。
# cfgadm Ap_Id Receptacle Occupant Condition pci1:hpc0_slot0 empty unconfigured unknown pci1:hpc0_slot1 empty unconfigured unknown pci1:hpc0_slot2 empty unconfigured unknown pci1:hpc0_slot3 disconnected unconfigured unknown pci1:hpc0_slot4 empty unconfigured unknown |
スロットラッチを開き、ボードを取り外します。
スーパーユーザーになります。
ホットプラグ可能なスロットを確認し、ラッチを開きます。
アダプタカードをホットプラグ可能なスロットに挿入します。
挿入し、ラッチを閉じたら、アダプタカードがどのスロットに入っているかを確認します。
# cfgadm Ap_Id Receptacle Occupant Condition pci1:hpc0_slot0 empty unconfigured unknown pci1:hpc0_slot1 empty unconfigured unknown pci1:hpc0_slot2 empty unconfigured unknown pci1:hpc0_slot3 disconnected unconfigured unknown pci1:hpc0_slot4 empty unconfigured unknown |
スロットへの電源を入れます。
# cfgadm -c connect pci1:hpc0_slot3 |
スロットが接続されていることを確認します。
# cfgadm Ap_Id Receptacle Occupant Condition pci1:hpc0_slot0 empty unconfigured unknown pci1:hpc0_slot1 empty unconfigured unknown pci1:hpc0_slot2 empty unconfigured unknown pci1:hpc0_slot3 connected unconfigured unknown pci1:hpc0_slot4 empty unconfigured unknown |
PCI ホットプラグ可能なアダプタカードを構成します。
# cfgadm -c configure pci1:hpc0_slot3 |
スロットに入っているアダプタカードの構成を確認します。
# cfgadm pci1:hpc0_slot3 Ap_Id Receptacle Occupant Condition pci1:hpc0_slot3 connected configured ok |
新しく追加したデバイスの場合は、サポートするソフトウェアを構成します。
たとえば、これが Ethernet カードの場合は、ifconfig(1M) コマンドを使用してインタフェースを設定します。
cfgadm: Configuration operation invalid: invalid transition |
無効な移行を実行しようとしました。
cfgadm -c コマンドを正しく実行したかを確認してください。cfgadm を使用して、現在の受容体 (receptacle) と占有装置 (occupant) の状態を調べ、ap_id が正しいか確認してください。
cfgadm: Attachment point not found |
指定したアタッチメントポイントが見つかりません。
アタッチメントポイントが正しいかどうかを確認してください。cfgadm コマンドを使用して、使用可能なアタッチメントポイントのリストを表示します。また、アタッチメントポイントがまだその物理パスにあるかどうかも確認してください。
cfgadm コマンド以外にも、ホットプラグ操作に役立つコマンドがあります。prtconf(1M) コマンドでは、Solaris がハードウェアを認識するかどうかを確認します。ホットプラグ可能なアダプタカードの構成が正常に終わった後 prtconf コマンドを使用すると、新しいハードウェア用の特定の PCI バスインスタンスが prtconf 出力に表示されるかどうかを確認できます。prtconf 出力にはまた、新しいハードウェア用のドライバが接続されているかどうかも示されます。