「ホットプラグ機能」とは、システムの動作中に、システム構成要素を物理的に取り付け、取り外し、または交換できる機能のことです。「動的再構成」とは、システム構成要素のホットプラグを実行できる機能のことです。また動的再構成は、システムリソースをシステムから物理的に取り外さなくても (なんらかの方法で) システムリソース (ハードウェアとソフトウェアの両方) をシステム内で移動したり、無効にできる機能のことです。
一般に、次のバスタイプはホットプラグ対応です。
USB
ファイバチャネル
1394
ATA
SCSI
Infiniband
また、cfgadm コマンドを使用すると、次のデバイスのホットプラグを実行できます。
SPARC および x86 プラットフォームの USB デバイス
SPARC および x86 プラットフォームの SCSI デバイス
SPARC および x86 プラットフォームの PCI デバイス
SPARC または x86 プラットフォームの PCIe デバイス
SPARC および x86 デバイス上の InfiniBand デバイス
cfgadm コマンドには、次のような機能があります。
システム構成要素の状態の表示
システム構成要素の検査
システム構成要素の構成の変更
構成ヘルプメッセージの表示
cfgadm コマンドでシステム構成要素を再構成する利点は、システムが動作しているときでも、システム構成要素を取り付け、取り外し、または交換できることです。さらに、cfgadm コマンドでは、システム構成要素を取り付け、取り外し、または交換するために必要な手順が示されます。
構成要素のホットプラグを実行する手順については、次を参照してください。
すべての SCSI と PCI のコントローラが cfgadm コマンドによるホットプラグ機能をサポートしているわけではありません。
Sun が提供する高可用性の一部として、動的再構成はほかの階層化製品 (代替パス指定やフェイルオーバーソフトウェアなど) とともに使用することをお勧めします。両方の製品ともデバイス障害に対する耐性を提供します。
高可用性ソフトウェアがなくても、障害が発生したデバイスを交換できます。この場合、適切なアプリケーションを手動で停止し、重要でないファイルシステムのマウントを手動で解除し、デバイスを取り付けまたは取り外します。
システムによっては、ホットプラグ対応のスロットとホットプラグに対応しないスロットを持つ場合があります。企業レベルのシステムなど、特定のハードウェア構成に対するデバイスのホットプラグについては、お使いのハードウェア構成のマニュアルを参照してください。
cfgadm コマンドは接続点についての情報を表示します。「接続点」とは、動的再構成を行うことができるシステム内の特定の場所のことです。
接続点は、次の要素から構成されています。
占有装置 (occupant): システムに構成できるハードウェア構成要素のことです。
受容体 (receptacle): 占有装置を受け入れる場所のことです。
接続点は、論理と物理の両方の接続点 ID (Ap_Id) で表現されます。物理 Ap_Id は接続点の物理的なパス名です。論理 Ap_Id は物理 Ap_Id に代わるユーザーに理解しやすい ID です。Ap_Id の詳細は、cfgadm(1m) のマニュアルページを参照してください。
通常、SCSI HBA (Host Bus Adapter)、つまり、SCSI コントローラの論理 Ap_Id はコントローラ番号 (c0 など) で表現されます。
コントローラ番号が SCSI HBA に割り当てられていない場合、内部的に生成された固有の識別子が提供されます。たとえば、SCSI コントローラの固有な識別子は次のようになります。
fas1:scsi
通常、SCSI デバイスの論理 Ap_Id の形式は次のようになります。
HBA-logical-apid::device-identifier
次の例において、c0 は SCSI HBA の論理 Ap_Id です。
c0::dsk/c0t3d0
通常、デバイス識別子は /dev ディレクトリ内にある論理デバイス名から導き出されます。たとえば、論理デバイス名が /dev/rmt/1 のテープデバイスの論理 Ap_Id は次のようになります。
c0::rmt/1
SCSI デバイスの論理 Ap_Id を /dev ディレクトリ内にある論理デバイス名から導き出すことができない場合、内部的に生成された固有の識別子が提供されます。たとえば、/dev/rmt/1 テープデバイスの識別子は、次のようになります。
c0::st4
SCSI Ap_Id の詳細は、cfgadm_scsi(1M) のマニュアルページを参照してください。
cfgadm コマンドはすべてのリソースと動的再構成の操作を、一般的な状態 (configured、unconfigured など) や操作 (connect、configure、unconfigure など) を示す用語で表現します。一般的な状態や操作の詳細は、cfgadm(1m) のマニュアルページを参照してください。
次の表に、SCSI HBA 接続点の受容体と占有装置の状態を示します。
受容体の状態 |
説明 |
占有装置の状態 |
説明 |
---|---|---|---|
empty |
SCSI HBA には利用できません |
configured |
1 つまたは複数のデバイスがバス上で構成されています |
disconnected |
バスは休止しています |
unconfigured |
デバイスは構成されていません |
connected |
バスはアクティブです |
|
|
次の表に、SCSI デバイス接続点の受容体と占有装置の状態を示します。
受容体の状態 |
説明 |
占有装置の状態 |
説明 |
---|---|---|---|
empty |
SCSI デバイスには利用できません |
configured |
デバイスが構成されています |
disconnected |
バスは休止しています |
unconfigured |
デバイスは構成されていません |
connected |
バスはアクティブです |
|
|
SCSI 接続点の状態は特別なハードウェアによって示されない限り未知です。SCSI 構成要素の構成情報を表示する手順については、「SCSI デバイスに関する情報を表示する方法」を参照してください。
デバイスドライバがホットプラグ機能をサポートしている場合、必須でないシステムリソースとして機能している PCI アダプタカードは取り外すことができます。重要なシステムリソースとして機能している PCI アダプタカードは取り外すことができません。PCI アダプタカードが取り外し可能であるためには、次の条件が必要です。
デバイスドライバはホットプラグ機能をサポートしていなければなりません。
重要なリソースには代替パスでアクセスできなければなりません。
たとえば、システムにインストールされている Ethernet カードが 1 つしかない場合、ネットワーク接続を切断せずにこの Ethernet カードを取り外すことは不可能です。このような環境でネットワーク接続をアクティブに保ったまま Ethernet カードを取り外すには、別の階層化ソフトウェアサポートが必要です。
PCI アダプタカードをシステムに取り付けるには、次の条件が必要です。
スロットが利用できなければなりません。
デバイスドライバが当該アダプタカードのホットプラグ機能をサポートしていなければなりません。
PCI アダプタカードの取り付けまたは取り外しの手順については、「cfgadm コマンドによる PCI または PCIe ホットプラグ」を参照してください。
hotplug コマンドを使ってホットプラグ処理可能な接続を管理できます。ここで言う接続とは、PCI Express (PCIe) および PCI SHPC デバイス上のコネクタまたはポートのみを指します。ホットプラグコネクタとは、コンポーネントの挿入や取り外しが行われるシステムの物理的機構のことです。ホットプラグポートとは、システムへのデバイスの接続が管理される、システムデバイスツリー内の論理表現です。
hotplug 機能を使用することで、オンボードデバイスを含むデバイスをシステムに物理的に追加したり取り外したりせずに、オンラインやオフラインにできます。
hotplug コマンドを使ってデバイスを管理するには、hotplug サービスを有効にする必要があります。
# svcadm enable svc:/system/hotplug:default |
次の例は、hotplug コマンドの使用方法を示しています。
次のようにして、システム内のホットプラグ処理可能な PCI/PCIe コネクタ/ポート (仮想および物理) をすべて表示します。
# hotplug list -lv |
PCIe スロットの Ethernet カードを構成します。次に例を示します。
# hotplug enable /pci0,0 pcie0 |
PCIe スロットの Ethernet カードの構成を解除します。次に例を示します。
# hotplug disable /pci0,0 pcie0 |
PCI デバイスノードをオフラインにして、ノードのデバイスドライバを切り離します。次に例を示します。
# hotplug offline /pci0,0/pci1 pci.0,2 |
PCI デバイスノードをオンラインにして、ノードのデバイスドライバを接続します。次に例を示します。
# hotplug online /pci0,0/pci1 pci.0,2 |
hotplug コマンドを使用するには、次のサービスが動作している必要があります。
svc:/system/hotplug:default |
動作していない場合は、次のメッセージが表示されます。
ERROR: hotplug service is not available. |
サポートされる入出力バスがシステムに存在しない場合、次のエラーメッセージが表示されます。
ERROR: there are no connections to display. (See hotplug(1m) for more information.) |
上記のエラーメッセージは、ホットプラグ対応のほかの入出力デバイスがシステムに存在するが、それらのデバイスの管理には hotplug コマンドではなく cfgadm コマンドを使用する必要がある場合にも表示されます。