fmri - 障害管理リソース識別子
Oracle Solaris subsystems such as the Service Management Facility, the Fault Management Daemon, Boot Environment Management, and the Image Packaging System, identify each element they manage using a fault managed resource identifier, abbreviated as FMRI.See smf(7)), fmd(8), fmadm(8), beadm(8), and pkg(7) for more information on these subsystems.
FMRI はハードウェアリソースとソフトウェアリソースおよび抽象の両方を識別するために使用します。ハードウェアリソースの場合、FMRI は通常実装の詳細であり、コンポーネントに障害があると診断された場合は、それを識別するために使われる FRU (現場交換可能ユニット) の位置ラベルになります。FRU ラベルを使用できない場合、FMRI が使用されます。SMF サービス、ブート環境、ソフトウェアパッケージなどのソフトウェア抽象化では、FMRI (多くの場合は文字列形式) が管理対象リソース (省略形は別にして) に名前を付けるための唯一の手段です。
すべての FMRI には順守する FMRI スキームの指示と、使用されているその FMRI スキームのバージョンが含まれます。スキームとバージョンが分かったら、FMRI の残りの部分は、その FMRI スキームバージョンの形式的定義に指定されているとおりに解釈されます。svc、pkg、cpu, hc (ハードウェアコンポーネント)、dev (デバイス)、その他多くのものに対して、スキームが存在します。
特定の FMRI スキームの特定のバージョンの公式の定義は、(member-name, data-type, data-semantics) タプルで指定された、順序付けされていない一連の FMRI メンバーとして指定されます。FMRI のインスタンスは一連の (名前、型、値) タプルであり、そこでの名前と型は FMRI 仕様に一致し、指定される値は特定の型の値で、そのスキームとバージョンの公式の FMRI 定義に記述されたセマンティクスに従って派生され、解釈されます。libfmevent(3LIB) などの Oracle Solaris C ライブラリ API では、FMRI は libnvpair(3LIB) ライブラリを使用して、nvlists として表されます。
コマンド行での対話やコマンド出力など、特定の FMRI インスタンスを文字列として表すとより便利な場合があります。各 FMRI スキームバージョンの仕様には、そのスキームとバージョンの FMRI を、名前と値のペアリストではなく、文字列としてフォーマットするためのルールが含まれ、FMRI 文字列があれば、それらの同じルールを逆に適用して、より公式の FMRI 形式を復元することができます。場合によっては、FMRI の文字列形式では、公式の形式と比較して含める情報量を減らすことができますが、それでも管理目的でリソースを識別するために十分な情報を提供します。FMRI の文字列形式には、通常 FMRI バージョン番号が含まれないため、バージョンは、特定の FMRI 文字列に一致する公式の FMRI から文字列へのフォーマットルールのバージョンとして理解されます。FMRI の文字列形式は、構文モデルとして使用する RFC 2396 に記述されている URI とあまり違いません。特に、同じ文字セット :、;、=、@、/、&、'、$、および , を予約しており、文字列で示される FMRI メンバー値にこれらの文字が現れる場合は、同じエスケープエンコード規則が必要です。
特定の FMRI スキームの特定のバージョンの公式の定義は、次の順序付けされていないシリーズで指定されます。
(member-name, data-type, data-semantics)
タプル、一部は必須で一部はオプションです。公式の定義では文字列形式で FMRI を表示する方法も指定します。
これは、次のアルファベットから選ばれた文字で、名前を FMRI メンバーに関連付けます。
A-Z a-z '_' (underscore) '-' (hyphen) '.' (period)
これはこのメンバーのデータ型を指定します。正式なプリミティブデータ型を次の表に一覧表示し、すべてのプリミティブ型について、正式なデータ型としてその型の配列も定義しています。プリミティブ整数および倍精度浮動小数点データ型は C と同様に定義され、ブール値と文字列プリミティブデータ型を追加しています。
Primitive Datatype Description --------------------------------------------- boolean_value Values can be 0 or 1 string ASCII string [u]int8 (Un)signed 8-bit integer [u]int16 (Un)signed 16-bit integer [u]int32 (Un)signed 32-bit integer [u]int64 (Un)signed 64-bit integer double Double precision floating point
各プリミティブデータ型について、プリミティブ型の順序付き配列である集約データ型を形成しています。
Primitive Datatype Description ---------------------------------------------- boolean_value array Array of boolean_value string array Array of ASCII strings [u]int8 array Array of (un)signed 8-bit integer [u]int16 array Array of (un)signed 16-bit integer [u]int32 array Array of (un)signed 32-bit integer [u]int64 array Array of (un)signed 64-bit integer double array Array of double
追加の集約データ型 nvlist (名前と値のリスト) を定義しています。nvlist は順序付けされていない (list-member-name, list-member-datatype) のリストで、その中の list-member-name は上の member-name と同じアルファベットを使用して、メンバーに名前を付け、list-member-datatype は任意のプリミティブデータ型または nvlist 自体を含む集約データ型です。nvlist のメンバーを nvpairs (名前と値のペア) と呼んでいます。
nvlist の特殊な型は fmri で、これは下に定義されたいずれかの FMRI スキームバージョンに準拠する nvlist です。
Synthetic Datatype Description --------------------------------------------------------- nvlist Unordered list of nvpairs nvlist array Array of nvlist fmri An nvlist that specifies an FMRI scheme and version and includes other members so as to be a valid FMRI in that scheme version.
FMRI 定義内の特定のメンバーのデータセマンティクスは、そのメンバーの値の解釈方法、つまりそれらの意味を指定します。データセマンティクスは、メンバーが想定できる一連の正式な値を、メンバーのデータ型によって表現可能な値のサブセットに制限できます。
SMF の svc など、一部の FMRI スキームは管理者対応ですが、もっとプライベートな実装の詳細であるスキームもあります。それに応じて、一部の FMRI スキームは Committed インタフェースになり、ほかの定義は Private インタフェースを形成します。attributes(7) を参照してください。すべての Private インタフェースと同様に、Private FMRI コンポーネントの定義は、いつでも互換性のない変更が行われる可能性があるため、それらのインタフェースを使用したり、プライベート FMRI メンバーの存在や想定されるセマンティクスに依存したりしないでください。
下の FMRI スキームの定義では、一連の (member-name, data-type, data-semantics) を一覧表示し、どのメンバーが必須で、どのメンバーがオプションであるか、および FMRI を文字列形式で表示する場合のルールを示しています。安定性の割り当てに関して、各メンバーに 2 つの安定性レベルが関連付けられます。
(member-name, data-type) ペアの安定性
対応するデータセマンティクスの安定性
両方の場合のデフォルトは Private です。メンバーの両方の側面の安定性が同じ (一般的な例) 場合、安定性レベルを 1 回だけ書いています。それらが違う場合は、メンバー名とデータ型の安定性を最初に書き、次にコンマとデータセマンティクスの安定性レベルを続けています。現在 FMRI で採用されている安定性レベルは Committed、Private、および Not An Interface だけですが、ほかも使用できます。Committed FMRI コンポーネントのセマンティクスは、その特定のスキームとバージョンに互換性なく変更されません。
スキーム名とメジャーバージョンのメンバーを含めるために、すべての FMRI 定義が必要です。名前/データ型とデータセマンティクスの安定性は Committed であるため、すべての FMRI 定義を次のように始める必要があります。
Member Name Data Type Stability ---------------------------------------- scheme string Committed version uint8 Committed
この FMRI スキームに名前を付けます
スキームメジャーバージョン
これらと一緒に、特定の FMRI を解釈する一連のルール (下のように) を選択します。さまざまなサブシステム内のリソースの識別を処理するために、少数のスキーム名が定義され、各スキームはバージョン番号 0 から始まってバージョン管理されます。
FMRI の非公式の文字列表現を使用する場合、スキームは常に書き込まれますが、使用されているスキームバージョンは通常含まれません。使用されているバージョンは、特定の FMRI 文字列が、FMRI から文字列への変換ルールに一致している最新のものとして理解されます。
暗黙的に存在している場合もありますが、さらに必要な FMRI メンバーは authority です。
Member Name Data Type Stability ---------------------------------------- [authority] nvlist Committed, (Varies)
権限情報が FMRI に存在する場合は authority nvlist によって明示的に、存在しない場合はローカル障害管理ドメインのそれを暗黙的に、すべての FMRI に権限情報が含まれます。権限情報には 2 つの特性があります。
FMRI のサブジェクトである特定のリソースがあるプラットフォームやホスト名を識別するなどの高レベル権限情報
FMRI のサブジェクトである特定のリソースの識別情報を提供するリーフレベル権限情報
たとえば、ディスクを識別する FMRI には、ディスクが存在するプラットフォーム (ホスト名、製品名、シャーシシリアル) の詳細を示す高レベル権限情報と個々のディスクのパーツ番号、シリアルなどの詳細を示すリーフレベル権限情報が含まれることがあります。
残念なことに、一部の FMRI スキームでは、スタンドアロン FMRI メンバーとして、authority nvlist の外部でリーフレベル権限情報を含めるように発展しており、文字列形式でパスコンポーネントの一部として書かれています。
それらの文字列表現では、高レベルとリーフレベルの両方の FMRI 権限情報がコロン (:) で始まります。たとえば、
hc://:chassis-serial=12345/<string>
「:chassis-serial=12345」は文字列で表現された権限メンバーです。
高レベル権限には 2 つのバージョンがあります (バージョン 0 とバージョン 1)。それぞれの説明を次に示します。
リーフレベル権限メンバーは、後述のスキーム固有のセクションで説明しています。
バージョン 0
Member Name Data Type Stability ----------------------------------------------------- [server-id] string Committed, Not an Interface [chassis-id] string Committed, Not an Interface [product-sn] string Committed, Not an Interface [product-id] string Committed, Not an Interface [domain-id] string Committed, Not an Interface [host-id] string Committed, Not an Interface
Fault Manager が実行しているエンティティーのホスト名 (uname –n) 文字列。不変ではありません。
これはリソースが存在するシャーシを識別するシリアル番号です。一部の大規模なシステムでは、複数の個別のシャーシコンポーネントが含まれることがあります。
場合によっては、chassis-id だけではシステムを完全に識別できないことがあります。たとえば、サービス権限が製品シリアル番号に基づいている場合や製品が複数のシャーシ要素で構成されている可能性がある場合などです。不変です。
Sun-Fire-X4600 などの製品名文字列。不変です。
この機能をサポートするハードウェアの場合に特定のハードウェアドメインを識別します。不変ではありません。
Oracle Solaris での hostid(1) 文字列は、一般には使用されません。必ずしも不変ではありません。
バージョン 1
Member Name Data Type Stability --------------------------------------------------------------- [system-mfg] string Committed, Not an Interface [system-name] string Committed, Not an Interface [system-part] string Committed, Not an Interface [system-serial] string Committed, Not an Interface [sys-comp-mfg] string Committed, Not an Interface [sys-comp-name] string Committed, Not an Interface [sys-comp-part] string Committed, Not an Interface [sys-comp-serial] string Committed, Not an Interface [sys-comp-fw-mfg] string Committed, Not an Interface [sys-comp-fw-version] string Committed, Not an Interface [sys-comp-fw-release] string Committed, Not an Interface [chassis-mfg] string Committed, Not an Interface [chassis-name] string Committed, Not an Interface [chassis-part] string Committed, Not an Interface [chassis-serial] string Committed, Not an Interface [chassis-alias] string Committed, Not an Interface [server-name] string Committed, Not an Interface [domain-name] string Committed, Not an Interface [host-id] string Committed, Not an Interface
最上位レベル製品の製造元。複合製品では、system-* メンバーにサービス権限データが含まれます。単純なスタンドアロンラックシステムでは、system-*、sys-comp-*、および chassis-* データが重複しています。不変です。
最上位レベル製品のモデル名。不変です。
最上位レベル製品のパーツ番号。不変です。
最上位レベル製品のシリアル番号。不変です。
コンポーネントシステムレベル製品の製造元。不変です。
コンポーネントシステムレベル製品のモデル名。不変です。
コンポーネントシステムレベル製品のパーツ番号。不変です。
コンポーネントシステムレベル製品のシリアル番号。不変です。
システムファームウェアスタックの製造元またはベンダー。不変です。
システムコンポーネントファームウェアのバージョン。If there is more than one component of the firmware stack (for example, SPARC), their versions will be represented individually, delimited by a comma (,), in a single string.
システムコンポーネントファームウェアのリリース日。If there is more than one component of the firmware stack (for example, SPARC), their release dates will be represented individually, delimited by a comma (,), in a single string.
リソースが存在するシャーシの製造元。一部の大規模なシステムでは、複数の個別のシャーシコンポーネントが含まれることがあります。不変です。
シャーシのモデル名。不変です。
シャーシのパーツ番号。不変です。
シャーシのシリアル番号。不変です。
場合によっては、*-name/*-part/*-serial の単一のセットだけではシステムを完全に識別できないことがあります。たとえば、サービス権限が製品シリアル番号に基づいている場合や製品が複数のシャーシ要素で構成されている可能性がある場合などです。不変です。
これは「fmadm add-alias」によってこのシャーシに割り当てられた Chassis Receptacle Occupant の別名値です。不変ではありません。
Fault Manager が実行しているエンティティーのホスト名 (uname –n) 文字列。不変ではありません。
この機能をサポートするハードウェアの場合に特定のハードウェアドメインを識別します。不変ではありません。
Oracle Solaris での hostid(1) 文字列、一般に使用されません。必ずしも不変ではありません。
論理 FMRI スキームは、それらが生成された障害管理ドメイン (一般に Oracle Solaris インスタンス) 内でのみ意味をもって解釈可能な FMRI を定義します。個別の障害管理ドメインにネイティブな論理スキームの同一の FMRI は、必ずしも同じ実際のリソースを識別するわけではありません。たとえば、cpu スキームを使用して cpu id 1 と識別された cpu は、FMRI を生成した Oracle Solaris インスタンス (つまり、そのネイティブコンテキスト) で解釈される必要があり、その他の多くの Oracle Solaris インスタンスも論理プロセッサ ID 番号 1 が付けられていますが、それらのすべての FMRI が同じ実際のプロセッサを識別しているわけではありません。ネイティブ障害管理ドメインは、一般に FMRI インスタンスで取得されないが、代わりにローカル Oracle Solaris インスタンスのそれとして理解される、高レベル権限情報によって識別されます。
汎用 FMRI スキームは汎用的な一意の方法でリソースを識別し、汎用スキームでの 2 つの同一の FMRI は、それらが解釈されるどこの場所でも、同じ実際のリソースを識別します。それらのスキームは、障害の発生したハードウェアコンポーネントの識別など、あいまいさを避ける必要がある場合に使用します。
FMRI スキームにはスキームが論理か汎用かを示すメンバーが含まれません。
次の FMRI スキームバージョンはあとのセクションで定義しています。
Scheme Version(s) Universal? Description ------------------------------------------------------------- cpu 0, 1 No Logical processor identification dev 0 No Device resources fmd 0, 1 No Fault Management Daemon modules hc 0, 1 Yes Hardware Components mem 0 No Memory modules and cache mod 0 No Kernel modules pkg 0, 1 Yes Software packages svc 0 No SMF services & service instances sw 0 No Software objects zfs 0 No zfs filesystem resources location 0 No FRU location be 0 No Global zone boot environments zbe 0 No Non-global zone boot environments
これらのうち svc、be、zbe、および pkg スキームは毎日の Oracle Solaris の使用でもっとも目にする可能性のあるもので、残りのものは通常、問題が診断されたときの障害管理サブシステムとのコマンド行の対話に隠されます。
SCHEME cpu VERSION 0cpu スキームは、診断された問題に影響を受ける可能性のある論理 Oracle Solaris プロセッサリソースの識別に使用され、その問題の診断に対応して、オフラインにすることができます。それは必ずしも関係のある物理リソースを識別するわけではないため、交換するパーツを識別するために使用しないでください。
cpu スキームは論理 FMRI スキームで、cpu スキームの FMRI は、権限情報によって識別された障害管理ドメイン内でのみ意味があります。
Member Name Data Type Stability ------------------------------------ scheme string Committed, value "cpu" version uint8 Committed, value 0 cpuid uint32 Committed [serial] uint64 Private
この論理実行ユニットの Oracle Solaris プロセッサインスタンス ID。権限情報によって識別される Oracle Solaris インスタンス上の psradm(8) によって一覧表示されます。
この Private FMRI メンバーのセマンティクスについてはドキュメント化されていません。
cpu:///cpuid=<cpuid>[/serial=<hex-serial>]
<hex-serial> は 0x 接頭辞のない 16 進でのシリアルメンバーです。
cpu FMRI スキームのバージョン 1 の使用方法はバージョン 0 と同じですが、いくつかの Private FMRI メンバーの変更と追加があります。
Member Name Data Type Stability ------------------------------------------------ scheme string Committed, value "cpu" version uint8 Committed, value 1 cpuid uint32 Committed [serial] string Private [cpumask] uint8 Private [cpufru] string Private [cacheindex] uint32 Private [cacheway] uint32 Private [cachebit] uint16 Private [cachetype] uint8 Private cpuid As per cpu scheme version 0 [serial] [cpumask] [cpufru] [cacheindex] [cacheway] [cachebit] [cachetype]
これらの Private FMRI メンバーのセマンティクスについてはドキュメント化されていません。
cpu:///cpuid=<cpuid>[/serial=<serial>] [/cacheindex=.../cacheway=.../ cachebit=.../cachetype=...]
メンバー cpumask および cpufru は文字列形式で表示されません。
dev スキームはデバイスを識別するために使用します。これは不変スキームではありません。dev スキームの FMRI は権限情報内で識別された障害管理ドメイン内でのみ解釈するようにしてください。
Member Name Data Type Stability ------------------------------------------------------------------- scheme string Committed, value "dev" version uint8 Committed, value 0 device-path string Committed [devid] string Private [target-port-l0id] string Private
pci@0、0/pci108e、cb84@2、1 などの、デバイスノードを識別する Oracle Solaris /devices ツリー内のファイルシステムパス。このメンバーが /devices パスを識別するというこの解釈を超えて、このようなパスの内部構造、つまり Oracle Solaris /devices ツリーの構造とノードのネーミングは Not An Interface です。
これらの Private FMRI メンバーのセマンティクスについてはドキュメント化されていません。
dev:///[:devid=<devid>] [:target-port-l0id=<target-port-l0id>] <device-path>
このスキームは、Oracle Solaris Fault Manager (fmd(8)) モジュールを識別するために使用されます。
高レベル権限:
Member Name Data Type Stability --------------------------------- [server-id] string Committed, Not an Interface [chassis-id] string Committed, Not an Interface [product-sn] string Committed, Not an Interface [product-id] string Committed, Not an Interface [domain-id] string Committed, Not an Interface
FMRI は、権限 nvlist 内にリーフレベル権限情報が含まれず、代わりに FMRI の最上位レベルメンバーとして特徴付けられます。
Member Name Data Type Stability ----------------------------- scheme string Committed, value "fmd" version uint8 Committed, value 0 [authority] nvlist Committed, See above mod-name string Committed, Not an Interface mod-version string Committed, Not an Interface
fmd モジュール名、不透明な文字列。
fmd モジュールバージョン、不透明な文字列。
fmd:///module/mod-name>
このスキームは、Oracle Solaris Fault Manager (fmd(8)) モジュールを識別するために使用されます。
高レベル権限:
Member Name Data Type Stability -------------------------------------------------------------- [system-mfg] string Committed, Not an Interface [system-name] string Committed, Not an Interface [system-part] string Committed, Not an Interface [system-serial] string Committed, Not an Interface [sys-comp-mfg] string Committed, Not an Interface [sys-comp-name] string Committed, Not an Interface [sys-comp-part] string Committed, Not an Interface [sys-comp-serial] string Committed, Not an Interface [sys-comp-fw-mfg] string Committed, Not an Interface [sys-comp-fw-version] string Committed, Not an Interface [sys-comp-fw-release] string Committed, Not an Interface [server-name] string Committed, Not an Interface [domain-name] string Committed, Not an Interface [host-id] string Committed, Not an Interface
バージョン 0 と同様に、FMRI の権限 nvlist 内にはリーフレベルの権限情報が含まれていません。代わりに、FMRI の最上位レベルメンバーとして特徴付けられます。
Member Name Data Type Stability -------------------------------------- scheme string Committed, value "fmd" version uint8 Committed, value 1 [authority] nvlist Committed, See above mod-name string Committed, Not an Interface mod-version string Committed, Not an Interface
fmd モジュール名、不透明な文字列。
fmd モジュールバージョン、不透明な文字列。
fmd:///module/<mod-name>
hc スキームはハードウェアコンポーネントを識別するために使用します。ほとんどの場合、これらの FMRI は内部実装の詳細として残るべきであり、ハードウェアコンポーネントが障害があると診断された場合、それは (たとえば、fmadm(8) で) その FRU ラベルまたは位置ラベルによって識別されます。
使用されている hc スキームのバージョンは 1 つだけ (バージョン 0) ですが、2 つのマイナーバーションをメンバーの名前付きコンポーネントの有無によって識別して、区別しています。コンポーネントメンバーを含む hc スキーム FMRI は廃止されたレガシー hc スキームのインスタンスです。
廃止されたレガシー hc バリアント:
Member Name Data Type Stability ------------------------------------------------------------------- scheme string Committed, value "hc" version uint8 Committed, value 0 component string Committed
リソースの FRU ラベル。
hc:///component=<component>
権限 nvlist は特定の FMRI が生成された障害管理ドメインの識別に関係する高レベル権限情報です。そのため、ホスト名、製品名、シャーシシリアル番号などのメンバーが含まれます。これらのメンバーの一部は不変 (プラットフォームシリアル番号など) であり、特定の要素を識別するために一意に使用され、ほかのメンバー (ホスト名など) は時間とともに変更される可能性がある (めったにありませんが) 柔軟な識別情報です。
Member Name Data Type Stability ----------------------------------------------------- [server-id] string Committed, Not an Interface [chassis-id] string Committed, Not an Interface [product-sn] string Committed, Not an Interface [product-id] string Committed, Not an Interface [domain-id] string Committed, Not an Interface [host-id] string Committed, Not an Interface
すべてのメンバーがオプションとして一覧表示されますが、特定の FMRI に意味のある数だけ含めるようにしてください。権限 nvlist が FMRI にない場合、権限はローカル障害管理ドメインとして理解されます。hc スキーム FMRI をそのネイティブドメインの外部に転送する場合は、明示的な高レベル権限情報を含めてください。
それぞれのデータセマンティクスの Not an Interface 安定性は、値を不透明な文字列としてのみ処理することができ、文字列の内部構造がインタフェースではないことを意味します。たとえば、シリアル番号は文字列比較を使用して照合できますが、シリアル番号文字列の長さとその中の個々の文字の意味はインタフェースではありません。
文字列形式:
特定の FMRI に存在するこれらの権限メンバーは、順序付けされていない一連のコロンで区切った name=value のペアとして、文字列形式で書き込むことができます。これを authstr として定義し、デフォルトの権限情報をインポートする下の各 FMRI スキームの文字列形式の仕様で使用しています。
authstr = server-id=<server-id> [:chassis-id=<chassis-id>] [:product-sn=<product-sn>] [:product-id=<product-id>] [:domain-id=<domain-id>] [:host-id=<host-id>] [:devid=<devid>]
権限 nvlist には、リーフレベル権限/識別情報が含まれておらず、代わりにそれらの情報 (シリアルおよびパーツ番号) は、FMRI の最上位レベルメンバーとして特徴付けられます。
Member Name Data Type Stability ------------------------------------------------------ scheme string Committed, value "hc" version uint8 Committed, value 0 [authority] nvlist Committed, See above [serial] string Committed, Not-an-Interface [devid] string Private [part] string Committed, Not-an-Interface [revision] string Committed, Not-an-Interface [hc-root] string Private hc-list-sz uint32 Private hc-list nvlist array Private [facility] nvlist Private [hc-specific] nvlist Private
この FMRI で識別されるハードウェアコンポーネントのシリアル番号文字列。これは内部構造がインタフェースでない不透明な文字列です。
これらの Private FMRI メンバーのセマンティクスについてはドキュメント化されていません。
この FMRI で識別されるハードウェアコンポーネントのパーツ番号文字列。これは内部構造がインタフェースでない不透明な文字列です。
文字列としてのパーツ番号のリビジョン。ここでも、これは不透明の文字列です。
この Private FMRI メンバーのセマンティクスについてはドキュメント化されていません。
この Private FMRI メンバーのセマンティクスについてはドキュメント化されていません。
この Private FMRI メンバーのセマンティクスについてはドキュメント化されていませんが、内容の構造を列挙しています (互換性のない変更が行われることがあります)。(順序付けされた) nvlist 配列の各メンバーは次の構造になります。
Member Name Data Type Stability ------------------------------------ hc-name string Private hc-id string Private
この Private FMRI メンバーのセマンティクスについてはドキュメント化されていませんが、内容の構造を列挙しています (互換性のない変更が行われることがあります)。機能 nvlist には次のメンバーがあります。
Member Name Data Type Stability ------------------------------------ facility-type string Private facility-name string Private
この Private FMRI メンバーのセマンティクスについてはドキュメント化されていません。
authstr is defined above hcauthstr = [:serial=<serial>] [:devid=<devid>] [:part=<part>] [:revision=<revision>] hc-path =<hc-list[0].hc-name>=<hc-list[0].hc-id> /<hc-list[1].hc-name>=<hc-list[1].hc-id> /<hc-list[2].hc-name>=<hc-list[2].hc-id> ... hcspecstr = private string formed from hc-specific nvlist, of the form "/name=value" facstr = <facility.facility-type>=<facility.facility-name> hc://[authstr][hcauthstr]/[hc-root/]<hc-path> [<hcspecstr>] [?<facstr>]
権限 nvlist からの高レベル権限情報は、すべてコロン区切りで、シリアル番号とパーツ番号のリーフレベル権限情報の隣に表示されます。この権限文字列のコンポーネントは、高レベル権限要素とリーフ権限要素が交互に配置され、任意の順序で表示されることがあります。そのような文字列の解釈は難しく、どのコンポーネントがどの権限情報のクラスに属しているか前もって知っていることに依存します。
hc FMRI スキームのバージョン 1 の使用方法はバージョン 0 と同じですが、いくつかの Private FMRI メンバーの変更と追加があります。
Member Name Data Type Stability -------------------------------------------------------- [chassis-mfg] string Committed, Not an Interface [chassis-name] string Committed, Not an Interface [chassis-part] string Committed, Not an Interface [chassis-serial] string Committed, Not an Interface [chassis-alias] string Committed, Not an Interface
バージョン 0 と同じセマンティクスが hc FMRI スキームバージョン 1 文字列形式に適用されます。
authstr = [:chassis-mfg=<chassis-mfg>] [:chassis-name=<chassis-name>] [:chassis-part=<chassis-part>] [:chassis-serial=<chassis-serial>] [:chassis-alias=<chassis-alias>]
hc スキームバージョン 0 と同様に、バージョン 1 では、権限 nvlist にリーフレベル権限/識別情報が含まれておらず、代わりにそれらの情報 (シリアル/リビジョン/パーツ番号など) は FMRI の最上位レベルメンバーとして特徴付けられます。
Member Name Data Type Stability ------------------------------------------------------ scheme string Committed, value "hc" version uint8 Committed, value 1 [authority] nvlist Committed, See above [fru-mfg] string Committed, Not-an-Interface [fru-serial] string Committed, Not-an-Interface [fru-part] string Committed, Not-an-Interface [fru-revision] string Committed, Not-an-Interface [devid] string Private [hc-root] string Private hc-list-sz uint32 Private hc-list nvlist array Private [facility] nvlist Private [hc-specific] nvlist Private
この FMRI で識別されるハードウェアコンポーネントの製造元文字列。これは内部構造がインタフェースでない不透明な文字列です。
この FMRI で識別されるハードウェアコンポーネントのシリアル番号文字列。これは内部構造がインタフェースでない不透明な文字列です。
この FMRI で識別されるハードウェアコンポーネントのパーツ番号文字列。これは内部構造がインタフェースでない不透明な文字列です。
文字列としてのパーツ番号のリビジョン。ここでも、これは不透明の文字列です。
これらの Private FMRI メンバーのセマンティクスについてはドキュメント化されていません。
この Private FMRI メンバーのセマンティクスについてはドキュメント化されていません。
この Private FMRI メンバーのセマンティクスについてはドキュメント化されていません。
この Private FMRI メンバーのセマンティクスについてはドキュメント化されていませんが、内容の構造を列挙しています (互換性のない変更が行われることがあります)。(順序付けされた) nvlist 配列の各メンバーは次の構造になります。
Member Name Data Type Stability ------------------------------------ hc-name string Private hc-id string Private
この Private FMRI メンバーのセマンティクスについてはドキュメント化されていませんが、内容の構造を列挙しています (互換性のない変更が行われることがあります)。機能 nvlist には次のメンバーがあります。
Member Name Data Type Stability ------------------------------------ facility-type string Private facility-name string Private
この Private FMRI メンバーのセマンティクスについてはドキュメント化されていません。
authstr is defined above hcauthstr = [:fru-mfg=<fru-mfg>] [:fru-serial=<fru-serial>] [:devid=<devid>] [:fru-part=<fru-part>] [:fru-revision=<fru-revision>] hc-path =<hc-list[0].hc-name>=<hc-list[0].hc-id> /<hc-list[1].hc-name>=<hc-list[1].hc-id> /<hc-list[2].hc-name>=<hc-list[2].hc-id> ... hcspecstr = private string formed from hc-specific nvlist, of the form "/name=value" facstr = <facility.facility-type>=<facility.facility-name> hc://[authstr][hcauthstr]/[hc-root/]<hc-path> [<hcspecstr>] [?<facstr>]
権限 nvlist からの高レベル権限情報は、すべてコロン区切りで、シリアル番号とパーツ番号のリーフレベル権限情報の隣に表示されます。この権限文字列のコンポーネントは、高レベル権限要素とリーフ権限要素が交互に配置され、任意の順序で表示されることがあります。そのような文字列の解釈は難しく、どのコンポーネントがどの権限情報のクラスに属しているか前もって知っていることに依存します。
SCHEME mem VERSION 0このスキームはメモリーモジュールおよびメモリーページの識別に使用されます。ただし、最近、これらは hc スキームに識別されるようになってきました。mem スキームは cpu キャッシュリソースを識別するためにも使用されています。
Member Name Data Type Stability ------------------------------------------------- scheme string Committed, value "mem" version uint8 Committed, value 0 unum string Committed, Private [serial] string array Private [physaddr] uint64 Private [offset] uint64 Private
この文字列は、一般にプラットフォームのシルクスクリーンまたはサービスラベルにラベル付けされているように、メモリーモジュールを識別します。この文字列型のメンバーの存在は、Committed インタフェースですが、unum 文字列の内部構造は Private インタフェースです。そのため、不透明な unum 文字列を使用して、メモリーモジュールを識別できますが、unum 文字列のコンポーネントの解釈はプラットフォームに依存し、Private です。
unum はメモリーモジュールのグループ (またはバンク) を識別できます。これらは代わりに、メモリーモジュールごとに 1 つずつ、複数の FMRI によって識別されるべきですが、これは初期の実装からは歴史的に異例とされます。
unum メンバーによって名前が付けられたメモリーモジュールのシリアル番号の文字列配列。シリアル番号文字列の内部構造はインタフェースでないため、シリアル番号の照合では不透明な文字列値のみを使用でき、それ以上の解釈は適用されません。
これらの Private FMRI メンバーのセマンティクスについてはドキュメント化されていません。
mem:///unum=<unum> [/offset=<hex-offset> | /physaddr=<hex-physaddr>]
このスキームは Oracle Solaris カーネルモジュールの識別に使用されます。
Member Name Data Type Stability -------------------------------------------------- scheme string Committed, value "fmd" version uint8 Committed, value 0 mod-name string Committed [mod-desc] string Committed [mod-pkg] fmri (fmri)
modinfo(8) に従ったモジュール名。
これも、modinfo(8) に従ったモジュールの説明。
このモジュールを配布するパッケージの pkg スキーム FMRI。
mod:///mod-name=<mod-name>
このスキームは、ほかのどの FMRI スキームも適切でないときに抽象オブジェクトを識別するために使用されます。
Member Name Data Type Stability ------------------------------------------------------------------- scheme string Committed, value "obj" version uint8 Committed, value 0 id string Committed, Private [token] string Committed, Private
検出するソフトウェアのコンテキスト内で一意であるリソース識別子文字列。
オプションのリソース識別子の別の形式。
obj://[<authority>]/:id=<id>[:token=<token>]
このバージョンの pkg スキームは、pkgadd(8)、pkginfo(1)、pkgrm(8)、および関連するユーティリティーで使用されるレガシー SVR4 パッケージングに対応します。パッケージ名およびパッケージバージョン規則に準拠している場合、このスキームは汎用です。
Member Name Data Type Stability ------------------------------------------------------------------- scheme string Committed, value "pkg" version int8 Committed, value 0 pkg-name string Committed pkg-basedir string Committed pkg-inst string Committed pkg-version string Committed
パッケージ名。
pkginfo(1) のとおりの BASEDIR
pkginfo(1) のとおりの PKGINST
pkginfo(1) のとおりの VERSION
pkg:///<pkg-name>/:version=<pkg-version>
このバージョンの pkg スキームは、Image Packaging System に対応します。See the Package FMRIs and Versions section of pkg(7).このような FMRI はコマンド行およびその出力で文字列形式で使用され、コマンド行では FMRI 文字列の省略形が許可されます。
pkg スキームバージョン 1 の FMRI は汎用です。2 つの個別のコンテキスト (個別の Oracle Solaris インスタンスなど) で解釈された同じ FMRI は同じ実際のパッケージ (またはそのコピー) を識別します。
コマンド行ではバージョン 1 pkg FMRI の文字列形式を使用し、このような文字列の省略形を許可します。
Member Name Data Type Stability ------------------------------------------------- scheme string Committed, value "pkg" version uint8 Committed, value 1 [authority] nvlist Committed pkg-name string Committed [pkg-version] nvlist Committed
authority nvlist は pkg publisher の出力に従って、パッケージパブリッシャーを指定します。
Member Name Data Type Stability ------------------------------------- publisher string Committed publisher
Oracle Solaris などのこのパッケージのパブリッシャー。
パッケージの名前 (stem)。
Member Name Data Type Stability --------------------------------------- release string Committed [built-on] string Committed [branch] string Committed [timestamp] string Committed
ドットシーケンス文字列 (任意の長さ、ドット区切りの一連の 0 が先頭に付かない 10 進数) で書かれた、コンポーネントのプライマリバージョン。
ドットシーケンスで指定された、コンポーネントが構築されたオペレーティングシステムバージョン。
ドットシーケンスとしてのベンダーブランチバージョン。
ISO 8601 日付文字列: yyyymmddThhmmssZ で、T と Z はリテラルです。
pkgauthstr = <authority.publisher> pkg://[pkgauthstr]/<pkg-name> [@<release>[,<built-on>][-<branch>][:<timestamp>]
The svc scheme describes SMF services and service instances.See smf(7).svcadm(8)、svccfg(8)、svcprop(1)、svcs(1) などの SMF コマンド行およびその出力では、そのような FMRI は常に文字列形式で記述され、SMF コマンド行では省略形が許可されます。
svc スキーム FMRI は論理スキームであるため、FMRI はそれが生成された障害管理ドメイン (Oracle Solaris インスタンス) でのみ解釈するようにしてください。
Member Name Data Type Stability ------------------------------------------------- scheme string Committed, value "svc" version uint8 Committed, value 0 svc-name string Committed [svc-instance] string Committed [svc-scope] string Committed [pg] string Committed [property] string Committed
network/smtp などのサービス名。See smf(7).
サービスのインスタンスを識別する場合に使用されます。default の場合が多いですが、サービス network/smtp の sendmail インスタンスのようなものを指定することもできます。
smf(7) のとおりに、すべてのサービスおよびインスタンスオブジェクトは構成情報のコレクションを表す scope に格納されます。ローカル Oracle Solaris インスタンスの構成は localhost スコープと呼ばれ、現在サポートされている唯一のスコープとなります。
svc://[<svc-scope>]/<svc-name>[:<svc-instance>][/:properties/<pg>[/<property>]]
svcadm(8) などの SMF サブシステムコマンドでは、上の文字列形式の省略形が許可されます (それが必要な場合もあります)。文字列の開始での svc スキームの指示は、オプションとみなされ、SMF コマンド行ユーティリティーによって暗黙的に示されます。svc スキーム識別子を使用すると、権限コンポーネントもより公式な svc:///<svc-name> ではなく、svc:/<svc-name> に省略されます。たとえば、SMF では次のいずれかの方法で例を記述します。
svc:/network/smtp:sendmail
svc:///network/smtp:sendmail
svc://localhost/network/smtp:sendmail
svc:/network/dns/client:default/:properties/config/nameserver
さらに、SMF は一意のサービスやインスタンスを識別していれば、さらなる省略形を許可します。たとえば、インスタンス名 sendmail は一意で、svcs sendmail、svcadm restart sendmail などを使用できます。
そうした省略形は、SMF サブシステムの規則であり、公式の FMRI 定義に含まれません。svc スキーム FMRI は nvlist 形式で受け取られると (たとえば、libfmevent(3LIB) サブスクリプションで)、文字列として表示される際に、より公式な形式で表示されます。
この FMRI スキームは、実行可能ファイル、ライブラリオブジェクト、コアファイルなどのソフトウェアリソースを識別するために使用します。これは論理 FMRI スキームです。
Member Name Data Type Stability ----------------------------------------------- scheme string Committed, value "sw" version uint8 Committed, value 0 object nvlist See belowPrivate [site] nvlist See belowPrivate [context] nvlist See belowPrivate
object、site、および context メンバーはすべて Private であるため、互換性のない変更が行われることがありますが、それらの内容を情報目的で、下に説明します。
この必須メンバーはソフトウェアオブジェクトを識別します。現在のところ、ファイルシステム内に存在するオブジェクトのみが考慮されます。
Member Type Description ------------------------------------------------------------ path string Filesystem path to object [root] string If present, real path to chroot root directory [pkg] fmri "pkg" scheme fmri of package that delivers path
このオプションのメンバーはオブジェクト内のサイトを識別します。
Member Type Description ------------------------------------------------------------ [token] string Vendor and subsystem unique publisher token id [module] string Source module information [file] string Source filename (translation unit) [func] string Source function [line] int64 Source file line number
このオプションのメンバーは実行時情報を伝えます。
Member Type Description ------------------------------------------------------- [origin] string "userland" or "kernel" [execname] string Executable name [pid] uint64 Process id [thread-id] uint64 Thread id [os-instance-uuid] string Solaris instance UUID [zone] string Zone name, if not the global zone [ctid] uint64 Contract id [stack] string array Symbolic stack trace
sw://[<authority>]/ [:root=<object.root] :path=<object.path> [#<fragment-identifier>]
ルートおよびオブジェクトパスのスラッシュ文字 / はエスケープされません。
<fragment-identifier> は次のいずれかです。
:token=<site.token>
または
:file=<site.file>[:func=<site.func>][:line=<site.line>]
Member Name Data Type Stability ------------------------------------------------------------------- scheme string Committed, value "zfs" version uint8 Committed, value 0 [pool-name] string Committed pool uint64 Committed [vdev] uint64 Private [vdev-name] string Private
zpool list -o name のとおりのプール名。
zpool list -o guid のとおりのプール GUID。
この Private FMRI メンバーのセマンティクスについてはドキュメント化されていません。
この Private FMRI メンバーのセマンティクスについてはドキュメント化されていません。
hex-vdev = 'vdev' in hexadecimal with no '0x' prefix. hex-pool = 'pool' in hexadecimal with no '0x' prefix. zfs://[pool_name=<pool-name>/]pool=<hex-pool> zfs://[pool_name=<zfs://[pool_name=<hex-pool> [/vdev=<hex-vdev>][:vdev_name=<vdev-name>]
<vdev-name> は / 文字がエスケープされずに書かれます。
この FMRI スキームは、ハードウェアリソースをその場所のパスで識別するために使用されます。
Member Name Data Type Stability ------------------------------------------------------------------- scheme string Committed, value "location" version uint8 Committed, value 0 location-path string Committed
リソースの場所。通常はハードウェアに印刷されているラベルと一致します。
location:///<location-path>
<location-path> は / 文字がエスケープされずに書かれます。
be スキームは、大域ゾーンまたは非大域ゾーン内のブート環境 (BE) または BE スナップショットを識別するために使用します。be スキーム FMRI は論理スキームです。そのため、FMRI は Oracle Solaris インスタンス内の BE 管理ソフトウェアによってのみ解釈されます。
Member Name Data Type Stability ------------------------------------------------------------------- scheme string Committed, value "be" version uint8 Committed, value 0 [authority] string Committed be-name string Committed
be-name が存在する zpool。これはオプションです。指定されていない場合、デフォルト値は、現在実行中の BE の zpool です。
authority で指定された zpool 内に存在する BE の名前または BE スナップショットの名前。
be://[authority]/be-name[@snapshot_name]
beadm(8) を使用すると、ユーザーは現在実行中の BE と同じ zpool 内に存在する BE または BE スナップショットを識別するために、このスキームの文字列形式を be-name メンバーのみに省略できます。この省略名は beadm(8) の規則であり、正式な FMRI 定義に含まれません。
SCHEME zbe VERSION 0zbe スキームは、非大域ゾーンブート環境 (ZBE) または大域ゾーン内の ZBE スナップショットを識別するために使用します。
zbe スキーム FMRI は論理スキームです。そのため、FMRI は Oracle Solaris インスタンスの大域ゾーン内の BE 管理ソフトウェアによってのみ解釈されます。zbe スキームは非大域ゾーンインスタンスで有効ではありません。
Member Name Data Type Stability ------------------------------------------------------------------- scheme string Committed, value "zbe" version uint8 Committed, value 0 authority string Committed zbe-name string Committed
zbe-name が存在するゾーンの名前。指定されたゾーンは、現在実行中の大域ゾーン BE に定義されている必要があります。
authority で指定されたゾーン内に存在する ZBE の名前または ZBE スナップショットの名前。
zbe://zone_name/zbe-name[@snapshot]
beadm(8), hostid(1), pkginfo(1), svcprop(1), svcs(1), libfmevent(3LIB), libnvpair(3LIB), contract(5), attributes(7), pkg(7), smf(7), fmd(8), fmdump(8), pkgadd(8), pkgrm(8), psradm(8), svcadm(8), svccfg(8)
RFC 2396