
SUSE® Linux Enterprise Server (SLES)は、異種コンピューティングシステムおよび環境を統合管理するためのオープンスタンダードベースのツールのコレクションを提供しています。弊社の企業ソリューションでは、Distributed Management Task Forceが提案する標準を実装しています。ここでは、基本コンポーネントについて説明します。
Distributed Management Task Force, Inc (DMTF)は、企業およびインターネットの環境に対する管理標準の開発を推進する業界団体です。DMTFは、管理の標準とイニシアチブを統合し、管理ソリューションを、より高い統合性とコスト効果を持つ、より相互運用可能なものにすることを目的としています。DMTF標準は、制御および通信のための共通システム管理コンポーネントを提供します。こうしたソリューションは、プラットフォームや技術に依存しません。Webベースの企業管理および共通情報モデルは重要な技術の1つです。
Webベースの企業管理(WBEM)は、管理およびインターネット標準技術群です。WBEMは、企業のコンピューティング環境の管理を統合するために開発されました。Webテクノロジを使用した統一管理ツールコレクションを作成する機能を業界に提供するものです。WBEMは、次の標準で構成されます。
データモデル: CIM(Common Information Model)標準
符号化規格: CIM-XML符号化規格
伝送メカニズム: CIM operations over HTTP
共通情報モデルは、システム管理について記述した概念的な情報モデルです。特別な実装は必要なく、管理システム、ネットワーク、サービス、およびアプリケーション間で管理情報を交換できます。CIMには、2つのパート(CIM仕様とCIMスキーマ)があります。
CIM仕様は、言語、ネーミング、およびメタスキーマを記述します。メタスキーマは、モデルの公式な定義です。メタスキーマは、モデルの内容、使用方法、および意味の説明に使う用語を定義します。メタスキーマの要素は、クラス、プロパティ、およびメソッドです。また、メタスキーマは、指示と関連付けをクラスのタイプとして、参照をプロパティとしてサポートします。
CIMスキーマは、実際のモデルを記述します。このスキーマは、管理対象環境について利用可能な情報を編成できる汎用の概念的なフレームを提供する、プロパティと関連を持つ一連の名前が付けられたクラスです。
Common Information Model Object Manager (CIMOM)は、CIM標準に基づいてオブジェクトを管理するアプリケーションです(CIM Object Manager)。CIMOMは、CIMOMプロバイダと、管理者がシステムを管理するCIMクライアントの間の通信を管理します。
CIMOMプロバイダは、クライアントアプリケーションから要求された特定のタスクをCIMOM内で実行するソフトウェアです。各プロバイダは、CIMOMのスキーマの1つまたは複数の機能や役割を果たします。これらのプロバイダは、ハードウェアを直接操作します。
SBLIM (Standards Based Linux Instrumentation for Manageability)は、Webベースの企業管理(WBEM)をサポートするために設計されたツールのコレクションです。SUSE® Linux Enterprise Serverは、Small Footprint CIM Brokerと呼ばれるSBLIMプロジェクトのオープンソースCIMOM (またはCIMサーバ)を使用します。
コンパクトなフットプリントのCIMブローカは、リソースに制限のある環境または埋め込み環境での使用を対象としたCIMサーバです。このサーバは、モジュール性と軽量性を同時に備えた設計になっています。このサーバはオープンスタンダードをベースとし、CMPIプロバイダ、CIM-XMLエンコーディング、および管理オブジェクトフォーマット(MOF)をサポートします。これは高度に設定可能なサーバであり、プロバイダがクラッシュしても動作は安定しています。また、HTTP、HTTPS、Unixドメインソケット、サービスロケーションプロトコル(SLP)、Javaデータベース接続(JDBC)など、さまざまなトランスポートプロトコルがサポートされるために、簡単にアクセスできます。
SFCB (Small Footprint CIM Broker)環境を設定するには、SUSE Linux Enterprise Serverのインストール時にYaSTのが選択されていることを確認します。また、すでに実行中のサーバにインストールするコンポーネントとしてこれを選択します。次のパッケージがシステムにインストールされていることを確認します。
共通情報モデル(CIM)が含まれます。CIMは、ネットワーク/企業環境内の総合的な管理情報を記述するモデルです。CIMは仕様とスキーマで構成されます。仕様は、他の管理モデルとの統合に関する詳細を定義しています。スキーマは、実際のモデルを記述しています。
CMPIタイプのCIMプロバイダをPythonで記述および実行するためのアダプタが含まれます。
基本システムのCIMプロバイダが含まれます。
DSP1027に基づく電源管理プロバイダが含まれます。
管理対象オブジェクトをクエリおよび更新するために、WBEMプロトコルを使用してCIM操作呼び出しを行うためのPythonモジュールが含まれます。
システム上に存在するすべてのCIMOMをCMPIプロバイダパッケージに登録できるユーティリィティが含まれます。
コンパクトなフットプリントのCIMブローカが含まれます。これは、CIM Operations over HTTPプロトコルに準拠するCIMサーバです。堅牢でリソース消費が抑制されているために、埋め込み環境およびリソースが制約された環境に特に適しています。SFCBでは、Common Manageability Programming Interface (CMPI)に対して記述されたプロバイダがサポートされます。
コンパクトなフットプリントのCIMクライアントライブラリのランタイムライブラリが含まれます。
WBEMコマンドラインインタフェースが含まれます。これは、特に基本的なシステム管理タスクに適したスタンドアロンコマンドラインWBEMクライアントです。
Linuxファイルシステム上のボリュームおよびスナップショットを計測するためのプロバイダが含まれます。これらのプロバイダはそれぞれ、SNIAのSMI-Sボリューム管理プロファイルおよびコピーサービスプロファイルに基づきます。
SUSE® Linux Enterprise Serverソフトウェアリポジトリには、Webベースの企業管理インストールパターンにない追加CIMプロバイダが含まれます。YaSTソフトウェアインストールモジュールでパターンsblim-cmpi-を検索することにより、プロバイダのリストやインストールの状態を簡単に参照できます。これらのプロバイダは、DHCP、NFS、カーネルパラメータ設定など、システム管理のさまざまなタスクに対応します。SFCBとともに使用するプロバイダをインストールしておくと役立ちます。
CIMサーバのsfcbdデーモンは、Webベースの企業管理ソフトウェアとともにインストールされ、システム起動時にデフォルトで開始されます。次の表で、sfcbdの起動、停止、および確認ステータスを説明します。
|
タスク |
Linux コマンド |
|---|---|
|
Start sfcbd |
コマンドラインで |
|
sfcbdの停止 |
コマンドラインで |
|
sfcbdの状態の確認 |
コマンドラインで |
SFCBのデフォルトのセットアップは、比較的安全(セキュア)です。ただし、SFCBコンポーネントに対するアクセスが組織で必要とされる安全性を満たしていることを確認します。
安全にSSL (Secure Socket Layers)通信を行うには、証明書が必要になります。SFCBがインストールされている場合、自己署名付き証明書が生成されています。
/etc/sfcb/sfcb.cfgのsslCertificateFilePath:path_filename設定を変更することで、デフォルトの証明書のパスを商用証明書または自己署名付きの証明書のパスに置き換えることができます。ファイルは、PEMフォーマットであることが必要です。
デフォルトで生成されたサーバ証明書は、次の場所に置かれています。
/etc/sfcb/server.pem
デフォルトで生成される証明書ファイルservercert.pemおよびserverkey.pemは、/etc/ssl/servercertsディレクトリに保存されています。ファイル/etc/sfcb/client.pem、/etc/sfcb/file.pem、および/etc/sfcb/server.pemは、これらのファイルへのシンボリックリンクです。
新しい証明書を生成する場合は、rootとしてコマンドラインに次のコマンドを入力します。
tux@mercury:~> sh /usr/share/sfcb/genSslCert.sh Generating SSL certificates in . Generating a 2048 bit RSA private key ...................................................................+++ .+++ writing new private key to '/var/tmp/sfcb.0Bjt69/key.pem' -----
デフォルトでは、このスクリプトにより現在の作業ディレクトリに証明書client.pem、file.pem、およびserver.pemが生成されます。スクリプトにより/etc/sfcbディレクトリに証明書を生成する場合は、コマンドにこのディレクトリを追加する必要があります。これらのファイルがすでに存在する場合、警告メッセージが表示されます。古い証明書は上書きされません。
tux@mercury:~> sh /usr/share/sfcb/genSslCert.sh /etc/sfcb
Generating SSL certificates in .
WARNING: server.pem SSL Certificate file already exists.
old file will be kept intact.
WARNING: client.pem SSL Certificate trust store already exists.
old file will be kept intact.ファイルシステムから古い証明書を削除し、このコマンドを再実行する必要があります。
SFCBで証明書を使用する方法を変更する場合は、32.2.3.3項 「認証」を参照してください。
デフォルトでは、SFCBはセキュアなポート5989を使用するすべての通信を受け入れるように設定されます。ここでは、通信ポートのセットアップと推奨される設定について説明します。
SFCB通信がHTTPSサービスを介して使用するセキュアなポート。デフォルトの設定です。この設定で、CIMOMとクライアントアプリケーション間のすべての通信は、サーバとワークステーション間でインターネットを通じて送信されるときに暗号化されます。ユーザは、SFCBサーバにアクセスするためにクライアントアプリケーションで認証を受ける必要があります。この設定を記録しておくことをお勧めします。ルータやファイアウォールがクライアントアプリケーションとモニタリングされるノードとの間に存在する場合に、SFCB CIMOMが必要なアプリケーションと通信できるようにするには、このポートを開いておく必要があります。
SFCB通信がHTTPSサービスを介して使用する非セキュアなポート。デフォルトでは、この設定は無効にされています。この設定では、CIMOMとクライアントアプリケーション間のすべての通信は、サーバとワークステーション間でインターネットを通じて送信されるときに、誰でも認証なしで開き、レビューできます。この設定は、CIMOMの問題をデバッグするときのみに使用することをお勧めします。問題が解決されたら、すぐにセキュアでないポートオプションを無効にしてください。SFCB CIMOMがセキュアでないアクセスを要求する必要なアプリケーションと通信できるようにするには、クライアントアプリケーションとモニタリングされるノードとの間に存在するルータやファイアウォールでこのポートを開いておく必要があります。
デフォルトのポートの割り当てを変更する場合は、32.2.3.2項 「ポート」を参照してください。
SFCBでは、HTTP基本認証、およびクライアント証明書に基づく認証がサポートされます(HTTP over SSL接続)。基本HTTP認証は、SFCB環境設定ファイル(デフォルトでは/etc/sfcb/sfcb.cfg)で、doBasicAuth=trueを指定することにより有効になります。SFCBのSUSE® Linux Enterprise Serverインストールでは、プラグ可能認証モジュール(PAM)アプローチがサポートされます。したがって、ローカルルートユーザは、ローカルルートユーザの資格情報によりSFCB CIMOMに対して認証を行うことができます。
sslClientCertificate設定プロパティがacceptまたはrequireに設定されている場合、SFCB HTTPアダプタは、HTTP over SSL (HTTPS)で接続した時にクライアントに証明書を要求します。requireが指定された場合、(sslClientTrustStoreを介して指定されたクライアント信頼ストアに従って)クライアントは有効な証明書を提供する必要がありますクライアントが証明書を提供しない場合、接続はCIMサーバにより拒否されます。
sslClientCertificate =acceptという設定は、明確でないことがあります。基本認証およびクライアント証明書認証が両方許可されている場合に、この設定は非常に役立ちます。クライアントが有効な証明書を提供できれば、HTTPS接続が確立され、基本認証手順は実行されません。この機能で証明書を検証できない場合、HTTP基本認証が代わりに実行されます。
SFCBは、CIMサーバの軽量な実装ですが、高度に設定可能です。複数のオプションによりその動作を制御できます。SFCBサーバは次の3つの方法で制御できます。
適切な環境変数を設定する
コマンドラインオプションを使用する
環境設定ファイルを変更する
いくつかの環境変数は、SFCBの動作に直接影響します。これらの環境変数の変更を有効にするには、systemctl restart sfcb.serviceでSFCBデーモンを再起動する必要があります。
PATH
sfcbdデーモンおよびユーティリティへのパスを指定します。
LD_LIBRARY_PATH
sfcbランタイムライブラリへのパスを指定します。また、このパスをシステムワイドの動的ローダ設定ファイル/etc/ld.so.confに追加できます。
SFCB_PAUSE_PROVIDER
プロバイダ名を指定します。SFCBサーバは、プロバイダが最初にロードされた後に一時停止します。その後、デバッグの目的でプロバイダのプロセスにランタイムデバッガを接続できます。
SFCB_PAUSE_CODEC
SFCBコーデックの名前を指定します(現在、httpのみサポートしています)。SFCBサーバは、コーデックが最初にロードされた後に一時停止します。その後、プロセスにランタイムデバッガを接続できます。
SFCB_TRACE
SFCBのデバッグメッセージレベルを指定します。有効な値は、0(デバッグメッセージなし)、または1(重要なデバッグメッセージ)~4(すべてのデバッグメッセージ)です。デフォルトは1です。
SFCB_TRACE_FILE
有効な値は、0 (デバッグメッセージなし)または1 (主要なデバッグメッセージ)~4 (すべてのデバッグメッセージ)です。この変数を設定すると、指定のファイルにデバッグメッセージが代わりに書き込まれます。
SBLIM_TRACE
SBLIMプロバイダのデバッグメッセージレベルを指定します。有効な値は、0(デバッグメッセージなし)、または1(重要なデバッグメッセージ)~4(すべてのデバッグメッセージ)です。
SBLIM_TRACE_FILE
デフォルトでは、SBLIMプロバイダはトレースメッセージをSTDERRに出力します。この変数を設定すると、指定のファイルにトレースメッセージが代わりに書き込まれます。
SFCBデーモンsfcbdには、特定のランタイム機能をオン/オフするためのコマンドラインオプションがあります。SFCBデーモンの開始時に、これらのオプションを入力します。
-c, --config-file=FILE
SFCBデーモンの開始時に、デフォルトで/etc/sfcb/sfcb.cfgから設定が読み込まれます。このオプションでは、代替の環境設定ファイルを指定できます。
-d, --daemon
バックグラウンドで実行するようにsfcbdとその子プロセスを強制します。
-s, --collect-stats
ランタイム統計情報の収集をオンにします。現在の作業ディレクトリのsfcbStatファイルに、さまざまなsfcbdランタイム統計情報が書き込まれます。デフォルトでは、統計情報は収集されません。
-l, --syslog-level=LOGLEVEL
システムログ機能の冗長性レベルを指定します。LOGLEVELは、LOG_INFO、LOG_DEBUG、またはLOG_ERR (デフォルト)のいずれかになります。
-k, --color-trace=ログレベル
プロセスごとに異なる色でトレース出力を印刷して、デバッグを容易にします。
-t, --trace-components=NUM
NUMがトレースするコンポーネントを定義するORビットマスク整数である場合に、コンポーネントレベルのトレースメッセージをアクティブにします。-t ?を指定した後すべてのコンポーネントおよび関連する整数ビットマスクが表示されます。
tux@mercury:~> sfcbd -t ? --- Traceable Components: Int Hex --- providerMgr: 1 0x0000001 --- providerDrv: 2 0x0000002 --- cimxmlProc: 4 0x0000004 --- httpDaemon: 8 0x0000008 --- upCalls: 16 0x0000010 --- encCalls: 32 0x0000020 --- ProviderInstMgr: 64 0x0000040 --- providerAssocMgr: 128 0x0000080 --- providers: 256 0x0000100 --- indProvider: 512 0x0000200 --- internalProvider: 1024 0x0000400 --- objectImpl: 2048 0x0000800 --- xmlIn: 4096 0x0001000 --- xmlOut: 8192 0x0002000 --- sockets: 16384 0x0004000 --- memoryMgr: 32768 0x0008000 --- msgQueue: 65536 0x0010000 --- xmlParsing: 131072 0x0020000 --- responseTiming: 262144 0x0040000 --- dbpdaemon: 524288 0x0080000 --- slp: 1048576 0x0100000
sfcbdの内部機能を表示し、メッセージを生成しすぎない有用な値は-t 2019です。
SFCBは、起動後に環境設定ファイル/etc/sfcb/sfcb.cfgからランタイム設定を読み込みます。この動作は、起動時に-cオプションを使用して上書きできます。
環境設定ファイルには、オプション : 値のペアが1行に1つずつ含まれています。このファイルに変更を加える場合は、使用している環境にネイティブな形式でファイルを保存するどのテキストエディタでも使用できます。
オプションがシャープ記号(#)でコメントアウトされている設定では、デフォルト設定が使用されます。
次のオプションリストは、完全でない可能性があります。完全なリストについては、/etc/sfcb/sfcb.cfgと/usr/share/doc/packages/sblim-sfcb/READMEを参照してください。
CIMクライアントからのHTTP(非セキュア)要求を受信するためにsfcbdがリスンするローカルポート値を指定します。デフォルトは5988です。
httpPort: port_number
SFCBがHTTPクライアント接続を受け入れるかどうかを指定します。デフォルトはfalseです。
enableHttp: option
|
オプション |
説明 |
|---|---|
|
true |
HTTP接続を有効にします。 |
|
false |
HTTP接続を無効にします。 |
新しい着信HTTP要求を拒否するまでの同時HTTPクライアント接続の最大数を指定します。デフォルトは8です。
httpProcs: max_number_of_connections
これらのオプションは、HTTPサーバを実行するユーザを管理します。httpUserSFCBがtrueの場合、HTTPは、SFCBメインプロセスと同じユーザで実行されます。falseの場合は、httpUserで指定されたユーザ名が使用されます。この設定は、HTTPとHTTPSの両方のサーバに使用されます。httpUserSFCBをfalseに設定する場合は、httpUserを指定する必要があります。デフォルトは、trueです。
httpUserSFCB: true
sfcbdがCIMクライアントからのHTTPS要求をリスンするローカルポート値を指定します。デフォルトは5989です。
httpsPort: port_number
SFCBがHTTPSクライアント接続を受け入れるかどうかを指定します。デフォルトはtrueです。
enableHttps: option
|
オプション |
説明 |
|---|---|
|
true |
HTTPS接続を有効にします。 |
|
false |
HTTPS接続を無効にします。 |
新しい着信HTTPS要求を拒否するまでの同時HTTPSクライアント接続の最大数を指定します。デフォルトは8です。
httpsProcs: max_number_of_connections
SFCBで表示サポートにinterop名前空間を提供するかどうかを指定します。デフォルトはtrueです。
enableInterOp: option
|
オプション |
説明 |
|---|---|
|
true |
interop名前空間を有効にします。 |
|
false |
interop名前空間を無効にします。 |
同時プロバイダプロセスの最大数を指定します。この時点以降、新しい着信要求により新しいプロバイダのロードが必要になった場合は、既存のプロバイダのいずれかが最初に自動的にアンロードされます。デフォルトは32です。
provProcs: max_number_of_procs
要求を受け入れる前に、クライアントユーザーIDに基づいて基本認証のオンまたはオフを切り替えます。デフォルト値はtrueで、基本的なクライアント認証が実行されます。
doBasicAuth: option
|
オプション |
説明 |
|---|---|
|
true |
基本認証を有効にします。 |
|
false |
基本認証を無効にします。 |
ローカルライブラリ名を指定します。SFCBサーバは、クライアントユーザIDを認証するためにライブラリをロードします。デフォルトはsfcBasicPAMAuthenticationです。
provProcs: max_number_of_procs
このオプションは、HTTP/HTTPSの「チャンク」使用のオンまたはオフを切り替えます。オンに切り替えた場合、サーバは大量の応答データを、バッファして1つの「チャンク」ですべてを返信するのではなく、小さなチャンクでクライアントに返信します。デフォルトはtrueです。
useChunking: option
|
オプション |
説明 |
|---|---|
|
true |
HTTP/HTTPSデータチャンクを有効にします。 |
|
false |
HTTP/HTTPSデータチャンクを無効にします。 |
1つの接続で、2つの要求の間、要求がなされてから接続を閉じるまでSFCB HTTPプロセスが待機する最大時間を秒数で指定します。0に設定すると、HTTP keep-aliveが無効になります。デフォルトは0です。
keepaliveTimeout: secs
1つの接続で連続して受け付ける要求の最大数を指定します。0に設定すると、HTTP keep-aliveが無効になります。デフォルト値は10です。
keepaliveMaxRequest: number_of_connections
プロバイダの登録データ、ステージング領域、および静的リポジトリを含む登録ディレクトリを指定します。デフォルトは/var/lib/sfcb/registrationです。
registrationDir: dir
SFCBがプロバイダライブラリを検索するディレクトリのリストをスペースで区切って指定します。デフォルトは/usr/lib64 /usr/lib64 /usr/lib64/cmpiです。
providerDirs: dir
プロバイダマネージャが待機中のプロバイダをチェックする間隔を秒で指定します。デフォルトは30です。
providerSampleInterval: secs
待機中のプロバイダがプロバイダマネージャによりアンロードされるまでの間隔を秒で指定します。デフォルトは60です。
providerTimeoutInterval: secs
プロバイダ登録ファイルで他のグループを指定しておらず、このオプションをtrueに設定されている場合、同じ共有ライブラリのすべてのプロバイダが同じプロセス内で実行されます。
providerAutoGroup: option
|
オプション |
説明 |
|---|---|
|
true |
プロバイダのグループを有効にします。 |
|
false |
プロバイダのグループを無効にします。 |
サーバ証明書を含むファイルの名前を指定します。ファイルは、PEM (Privacy Enhanced Mail、RFC 1421、およびRFC 1424)フォーマットであることが必要です。このファイルは、enableHttpsがtrueに設定されている場合にのみ必要です。デフォルトは/etc/sfcb/server.pemです。
sslCertificateFilePath: path
サーバ証明書の秘密鍵が含まれるファイルの名前を指定します。このファイルはPEMフォーマットであることが必要であり、パスフレーズによって保護できない場合があります。このファイルは、enableHttpsがtrueに設定されている場合にのみ必要です。デフォルトは/etc/sfcb/file.pemです。
sslKeyFilePath: path
CAまたはクライアントの自己署名付きの証明書のいずれかを含むファイルの名前を指定します。このファイルはPEMフォーマットであることが必要であり、sslClientCertificateがacceptまたはrequireに設定されている場合にのみ必要になります。デフォルトは/etc/sfcb/client.pemです。
sslClientTrustStore: path
SFCBがクライアント証明書に基づく認証を処理する方法を指定します。ignoreに設定した場合、クライアントに証明書は要求されません。acceptに設定した場合、クライアントに証明書が要求されますが、クライアントが証明書を提示しなくとも失敗しません。requireに設定した場合、クライアントが証明書を提示しないときは、クライアント接続が拒否されます。デフォルト値はignoreです。
sslClientCertificate: option
|
オプション |
説明 |
|---|---|
|
ignore |
クライアント証明書の要求を無効にします。 |
|
承諾 |
クライアント証明書の要求を無効にします。 証明書が存在しなくとも失敗しません。 |
|
必要 |
有効な証明書を持たないクライアント接続を拒否します。 |
クライアント証明書に基づいてユーザ認証を要求するローカルライブラリの名前を指定します。この設定は、sslClientCertificateがignoreに設定されていない場合にのみ必要です。デフォルト値はsfcCertificateAuthenticationです。
certificateAuthLib: file
SFCBのトレースレベルを指定します。この設定は、環境変数SFCB_TRACE_LEVELを設定することにより上書きできます。デフォルト値は0です。
traceLevel: num_level
この章では、SFCBの使用方法に関連するより高度なトピックを取り上げます。このトピックを理解するには、Linuxファイルシステムの基礎知識とLinuxコマンドラインの使用経験が必要です。この章には、次のタスクが含まれています。
CMPIプロバイダのインストール
SFCBのテスト
wbemcli CIMクライアントの使用
CMPIプロバイダをインストールするには、providerDirs設定オプションにより指定されたいずれかのディレクトリに共有ライブラリがコピーされていることを確認する必要があります。32.3.3.17項 「providerDirs」を参照してください。プロバイダはまた、sfcbstageコマンドおよびsfcbreposコマンドを使用して適切に登録されていることが必要です。
プロバイダパッケージは通常、SFCB用に準備されます。したがって、インストールにより適切な登録が行われます。大半のSBLIMプロバイダは、SFCB用に準備されています。
クラスリポジトリは、SFCBがCIMクラスに関する情報を保存する場所です。通常これは、名前空間コンポーネントから成るディレクトリツリーから構成されます。一般的なCIM名前空間はroot/cimv2またはroot/interopであり、ファイルシステム上のクラスリポジトリディレクトリパスにそれぞれ変換されます。
/var/lib/sfcb/registration/repository/root/cimv2
および
/var/lib/sfcb/registration/repository/root/interop
各名前空間ディレクトリには、ファイルclassSchemasが含まれます。ファイルには、その名前空間の下に登録されたすべてのCIMクラスのコンパイル済みバイナリ表現があります。また、CIMスーパークラスに関して必要な情報も含まれます。
さらに各名前空間ディレクトリには、名前空間のすべての修飾子を含むファイル修飾子が含まれます。sfcbdの再起動時に、クラスプロバイダはディレクトリ/var/lib/sfcb/registration/repository/およびそのすべてのサブディレクトリをスキャンして、登録済みの名前空間を決定します。次に、classSchemasファイルがデコードされ、各名前空間のクラス階層が構築されます。
SFCBは、ライブCIMクラス操作を生成できません。クラスをオフラインで追加、変更、または削除し、systemctl restart sfcb.serviceでSFCBサービスを再起動して変更内容を登録します。
SFCBは、プロバイダクラスおよび登録情報を保存するために、「ステージング領域」と呼ばれる場所を使用します。SUSE® Linux Enterprise Serverシステムでは、これは/var/lib/sfcb/stage/の下にあるディレクトリ構造です。
新しいプロバイダを追加するには、次の操作が必要です。
プロバイダクラス定義ファイルを、ステージング領域ディレクトリの/mofsサブディレクトリ(/var/lib/sfcb/stage/mofs)にコピーします。
クラス(複数可)の名前およびプロバイダタイプを含む登録ファイル、および実行可能なライブラリファイルの名前を/regsサブディレクトリにコピーします。
ステージングディレクトリには、2つのデフォルト「mof」(クラス定義)ファイル(indication.mofとinterop.mof)があります。ルートステージングディレクトリ/var/lib/sfcb/stage/mofsの下にあるMOFのファイルは、sfcbreposコマンドの実行後に各名前空間にコピーされます。interop.mofは、interop名前空間に対してのみコンパイルされます。
ディレクトリレイアウトは、次の例のようになります。
tux@mercury:~> ls /var/lib/sfcb/stage default.reg mofs regs
tux@mercury:~> ls /var/lib/sfcb/stage/mofs indication.mof root
tux@mercury:~> ls /var/lib/sfcb/stage/mofs/root cimv2 interop suse virt
tux@mercury:~> ls -1 /var/lib/sfcb/stage/mofs/root/cimv2 | less Linux_ABIParameter.mof Linux_BaseIndication.mof Linux_Base.mof Linux_DHCPElementConformsToProfile.mof Linux_DHCPEntity.mof [..] OMC_StorageSettingWithHints.mof OMC_StorageVolumeDevice.mof OMC_StorageVolume.mof OMC_StorageVolumeStorageSynchronized.mof OMC_SystemStorageCapabilities.mof
tux@mercury:~> ls -1 /var/lib/sfcb/stage/mofs/root/interop ComputerSystem.mof ElementConformsToProfile.mof HostSystem.mof interop.mof Linux_DHCPElementConformsToProfile.mof [..] OMC_SMIElementSoftwareIdentity.mof OMC_SMISubProfileRequiresProfile.mof OMC_SMIVolumeManagementSoftware.mof ReferencedProfile.mof RegisteredProfile.mof
tux@mercury:~> ls -1 /var/lib/sfcb/stage/regs AllocationCapabilities.reg Linux_ABIParameter.reg Linux_BaseIndication.reg Linux_DHCPGlobal.reg Linux_DHCPRegisteredProfile.reg [..] OMC_Base.sfcb.reg OMC_CopyServices.sfcb.reg OMC_PowerManagement.sfcb.reg OMC_Server.sfcb.reg RegisteredProfile.reg
tux@mercury:~> cat /var/lib/sfcb/stage/regs/Linux_DHCPRegisteredProfile.reg [Linux_DHCPRegisteredProfile] provider: Linux_DHCPRegisteredProfileProvider location: cmpiLinux_DHCPRegisteredProfile type: instance namespace: root/interop # [Linux_DHCPElementConformsToProfile] provider: Linux_DHCPElementConformsToProfileProvider location: cmpiLinux_DHCPElementConformsToProfile type: instance association namespace: root/cimv2 # [Linux_DHCPElementConformsToProfile] provider: Linux_DHCPElementConformsToProfileProvider location: cmpiLinux_DHCPElementConformsToProfile type: instance association namespace: root/interop
SFCBは、各プロバイダについてカスタムプロバイダ登録ファイルを使用します。
SBLIM Webサイト上のすべてのSBLIMプロバイダには、すでに、SFCB用の.regファイルを生成するための登録ファイルが含まれています。
SFCB登録ファイルのフォーマットは次のとおりです。
[<class-name>] provider: <provide-name> location: <library-name> type: [instance] [association] [method] [indication] group: <group-name> unload: never namespace: <namespace-for-class> ...
ここで:
<class-name>
CIMクラス名(必須)
<provider-name>
CMPIプロバイダ名(必須)
<location-name>
プロバイダライブラリ名(必須)
type
プロバイダのタイプ(必須)。これは、instance、association、method、またはindicationの任意の組み合わせです。
<group-name>
複数のプロバイダをグループ化し、単一のプロセスの下で実行することで、さらにランタイムリソースを最小化できます。同じ<group-name>の下で登録されたすべてのプロバイダは、同じプロセスの下で実行します。デフォルトでは、各プロバイダは別個のプロセスとして実行します。
unload
プロバイダのアンロードポリシーを指定します。現在サポートされている唯一のオプションはneverであり、これはプロバイダが待機時間について監視されず、決してアンロードされないことを指定します。デフォルトでは、待機時間が環境設定ファイルで指定された値を超えたときに各プロバイダがアンロードされます。
namespace (ネームスペース)
このプロバイダが実行できる名前空間のリストです。この設定は必須ですが、大半のプロバイダでroot/cimv2になります。
すべてのクラス定義およびプロバイダ登録ファイルがステージング領域に保存されたら、コマンドsfcbrepos でSFCBクラスリポジトリを再構築する必要があります。
-f
このようにしてクラスの追加、変更、または削除を行うことができます。クラスリポジトリを再構築した後、コマンドsystemctl restart sfcb.serviceでSFCBを再起動します。
またSFCBパッケージには、プロバイダクラスmofファイルおよび登録ファイルを、ステージング領域の適切な場所にコピーするユーティリィティが含まれています。
sfcbstage -r[provider.reg] [class1.mof] [class2.mof] ...
このコマンドを実行した後、さらにクラスリポジトリを再構築し、SFCBサービスを再起動する必要があります。
SFCBパッケージには、2つのテストスクリプト(wbemcatとxmltest)が含まれます。
wbemcatは、未加工のCIM-XMLデータをHTTPプロトコル経由で、ポート5988上でリスンする指定されたSFCBホスト(デフォルトではlocalhost)に送信します。次に、返された結果を表示します。次のファイルには、標準的なEnumerateClasses要求のCIM-XML表現が含まれます。
<?xml version="1.0" encoding="utf-8"?>
<CIM CIMVERSION="2.0" DTDVERSION="2.0">
<MESSAGE ID="4711" PROTOCOLVERSION="1.0">
<SIMPLEREQ>
<IMETHODCALL NAME="EnumerateClasses">
<LOCALNAMESPACEPATH>
<NAMESPACE NAME="root"/>
<NAMESPACE NAME="cimv2"/>
</LOCALNAMESPACEPATH>
<IPARAMVALUE NAME="ClassName">
<CLASSNAME NAME=""/>
</IPARAMVALUE>
<IPARAMVALUE NAME="DeepInheritance">
<VALUE>TRUE</VALUE>
</IPARAMVALUE>
<IPARAMVALUE NAME="LocalOnly">
<VALUE>FALSE</VALUE>
</IPARAMVALUE>
<IPARAMVALUE NAME="IncludeQualifiers">
<VALUE>FALSE</VALUE>
</IPARAMVALUE>
<IPARAMVALUE NAME="IncludeClassOrigin">
<VALUE>TRUE</VALUE>
</IPARAMVALUE>
</IMETHODCALL>
</SIMPLEREQ>
</MESSAGE>
</CIM>
SFCB CIMOMにこの要求を送信すると、登録済みのプロバイダが存在するすべてのサポートクラスのリストが返されます。ファイルをcim_xml_test.xmlとして保存した場合を考えます。
tux@mercury:~> wbemcat cim_xml_test.xml | less HTTP/1.1 200 OK Content-Type: application/xml; charset="utf-8" Content-Length: 337565 Cache-Control: no-cache CIMOperation: MethodResponse <?xml version="1.0" encoding="utf-8" ?> <CIM CIMVERSION="2.0" DTDVERSION="2.0"> <MESSAGE ID="4711" PROTOCOLVERSION="1.0"> <SIMPLERSP> <IMETHODRESPONSE NAME="EnumerateClasses"> [..] <CLASS NAME="Linux_DHCPParamsForEntity" SUPERCLASS="CIM_Component"> <PROPERTY.REFERENCE NAME="GroupComponent" REFERENCECLASS="Linux_DHCPEntity"> </PROPERTY.REFERENCE> <PROPERTY.REFERENCE NAME="PartComponent" REFERENCECLASS="Linux_DHCPParams"> </PROPERTY.REFERENCE> </CLASS> </IRETURNVALUE> </IMETHODRESPONSE> </SIMPLERSP> </MESSAGE> </CIM>
表示されるクラスは、システムにインストールされているプロバイダに応じて異なります。
2番目のスクリプトxmltestもまた、未加工のCIM-XMLテストファイルをSFCB CIMOMに送信するために使用されます。次に、以前に保存された「良好な」結果ファイルに対して、返された結果を比較します。対応する「良好」なファイルがまだ存在しない場合は、後から使用できるように作成されます。
tux@mercury:~> xmltest cim_xml_test.xml Running test cim_xml_test.xml ... OK Saving response as cim_xml_test.OK tux@mercury:~> xmltest cim_xml_test.xml Running test cim_xml_test.xml ... Passed
SBLIMプロジェクトには、wbemcatおよびxmltestに加えて、より高度なコマンドラインCIMクライアントであるwbemcliが含まれます。このクライアントは、SFCBサーバにCIM要求を送信し、返された結果を表示するために使用されます。これはCIMOMライブラリに依存せず、WBEMに準拠するすべての実装で使用できます。
たとえば、SFCBに登録済みのSBLIMプロバイダにより実装されたすべてのクラスを表示する必要がある場合は、「EnumerateClasses」(ec)要求をSFCBに送信します。
tux@mercury:~> wbemcli -dx ec http://localhost/root/cimv2
To server: <?xml version="1.0" encoding="utf-8" ?>
<CIM CIMVERSION="2.0" DTDVERSION="2.0">
<MESSAGE ID="4711" PROTOCOLVERSION="1.0"><SIMPLEREQ><IMETHODCALL \
NAME="EnumerateClasses"><LOCALNAMESPACEPATH><NAMESPACE NAME="root"> \
</NAMESPACE><NAMESPACE NAME="cimv2"></NAMESPACE> \
</LOCALNAMESPACEPATH>
<IPARAMVALUE NAME="DeepInheritance"><VALUE>TRUE</VALUE> \
</IPARAMVALUE>
<IPARAMVALUE NAME="LocalOnly"><VALUE>FALSE</VALUE></IPARAMVALUE>
<IPARAMVALUE NAME="IncludeQualifiers"><VALUE>FALSE</VALUE> \
</IPARAMVALUE>
<IPARAMVALUE NAME="IncludeClassOrigin"><VALUE>TRUE</VALUE> \
</IPARAMVALUE>
</IMETHODCALL></SIMPLEREQ>
</MESSAGE></CIM>
From server: Content-Type: application/xml; charset="utf-8"
From server: Content-Length: 337565
From server: Cache-Control: no-cache
From server: CIMOperation: MethodResponse
From server: <?xml version="1.0" encoding="utf-8" ?>
<CIM CIMVERSION="2.0" DTDVERSION="2.0">
<MESSAGE ID="4711" PROTOCOLVERSION="1.0">
<SIMPLERSP>
<IMETHODRESPONSE NAME="EnumerateClasses">
<IRETURNVALUE>
<CLASS NAME="CIM_ResourcePool" SUPERCLASS="CIM_LogicalElement">
<PROPERTY NAME="Generation" TYPE="uint64">
</PROPERTY>
<PROPERTY NAME="ElementName" TYPE="string">
</PROPERTY>
<PROPERTY NAME="Description" TYPE="string">
</PROPERTY>
<PROPERTY NAME="Caption" TYPE="string">
</PROPERTY>
<PROPERTY NAME="InstallDate" TYPE="datetime">
</PROPERTY>
[..]
<CLASS NAME="Linux_ReiserFileSystem" SUPERCLASS="CIM_UnixLocalFileSystem">
<PROPERTY NAME="FSReservedCapacity" TYPE="uint64">
</PROPERTY>
<PROPERTY NAME="TotalInodes" TYPE="uint64">
</PROPERTY>
<PROPERTY NAME="FreeInodes" TYPE="uint64">
</PROPERTY>
<PROPERTY NAME="ResizeIncrement" TYPE="uint64">
<VALUE>0</VALUE>
</PROPERTY>
<PROPERTY NAME="IsFixedSize" TYPE="uint16">
<VALUE>0</VALUE>
</PROPERTY>
[..]
-dxオプションでは、wbemcliでSFCBに送信された実際のXMLも、受信した実際のXMLも表示されます。上記の例では、多数返されるクラスのうちの第1のクラスがCIM_ResourcePool、第2のクラスがLinux_ReiserFileSystem.です。他の登録済みの全クラスでも、同様のエントリが表示されます。
-dxオプションを省略した場合、wbemcliは返却されたデータのコンパクト表現のみを表示します。
tux@mercury:~> wbemcli ec http://localhost/root/cimv2
localhost:5988/root/cimv2:CIM_ResourcePool Generation=,ElementName=, \
Description=,Caption=,InstallDate=,Name=,OperationalStatus=, \
StatusDescriptions=,Status=,HealthState=,PrimaryStatus=, \
DetailedStatus=,OperatingStatus=,CommunicationStatus=,InstanceID=, \
PoolID=,Primordial=,Capacity=,Reserved=,ResourceType=, \
OtherResourceType=,ResourceSubType=, \AllocationUnits=
localhost:5988/root/cimv2:Linux_ReiserFileSystem FSReservedCapacity=, \
TotalInodes=,FreeInodes=,ResizeIncrement=,IsFixedSize=,NumberOfFiles=, \
OtherPersistenceType=,PersistenceType=,FileSystemType=,ClusterSize=, \
MaxFileNameLength=,CodeSet=,CasePreserved=,CaseSensitive=, \
CompressionMethod=,EncryptionMethod=,ReadOnly=,AvailableSpace=, \
FileSystemSize=,BlockSize=,Root=,Name=,CreationClassName=,CSName=, \
CSCreationClassName=,Generation=,ElementName=,Description=,Caption=, \
InstanceID=,InstallDate=,OperationalStatus=,StatusDescriptions=, \
Status=,HealthState=,PrimaryStatus=,DetailedStatus=,OperatingStatus= \
,CommunicationStatus=,EnabledState=,OtherEnabledState=,RequestedState= \
,EnabledDefault=,TimeOfLastStateChange=,AvailableRequestedStates=, \
TransitioningToState=,PercentageSpaceUse=
[..]Distributed Management Task Force Webサイト
Webベースの企業管理(WBEM) Webサイト
共通情報モデル(CIM) Webサイト
Standards Based Linux Instrumentation (SBLIM) Webサイト
Small Footprint CIM Broker (SFCB) Webサイト
SBLIMプロバイダパッケージ