マニュアルページセク ション 5: 標準、環境、マクロ

印刷ビューの終了

更新: 2014 年 7 月
 
 

fmri(5)

名前

fmri - 障害管理リソース識別子

説明

サービス管理機能 ( smf (5) を参照)、障害管理デーモン ( fmd (1M) fmadm (1M) を参照)、および Image Packaging System ( pkg (5) を参照) などの Oracle Solaris サブシステムは、障害管理リソース識別子 (省略形は FMRI) を使用して、それらが管理する各要素を識別します。

FMRI はハードウェアリソースとソフトウェアリソースおよび抽象の両方を識別するために使用します。ハードウェアリソースの場合、FMRI は通常実装の詳細であり、コンポーネントに障害があると診断された場合は、それを識別するために使われる FRU (現場交換可能ユニット) の位置ラベルになります。FRU ラベルを使用できない場合、FMRI が使用されます。SMF サービスまたは pkg (5) ソフトウェアパッケージなどのソフトウェア抽象の場合、FMRI (文字列形式のことがある) は管理対象リソースの唯一の名前付けの手段になります (省略形は別として)。

すべての FMRI には順守する FMRI スキームの指示と、使用されているその FMRI スキームのバージョンが含まれます。スキームとバージョンが分かったら、FMRI の残りの部分は、その FMRI スキームバージョンの形式的定義に指定されているとおりに解釈されます。svc pkgcpu, 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 メンバー

特定の FMRI スキームの特定のバージョンの公式の定義は、次の順序付けされていないシリーズで指定されます。

(member-name, data-type, data-semantics)

タプル、一部は必須で一部はオプションです。公式の定義では文字列形式で FMRI を表示する方法も指定します。

member-name

これは、次のアルファベットから選ばれた文字で、名前を FMRI メンバーに関連付けます。

A-Z
a-z
'_' (underscore)
'-' (hyphen)
'.' (period)
data-type

これはこのメンバーのデータ型を指定します。正式なプリミティブデータ型を次の表に一覧表示し、すべてのプリミティブ型について、正式なデータ型としてその型の配列も定義しています。プリミティブ整数および倍精度浮動小数点データ型は 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.

data-semantics

FMRI 定義内の特定のメンバーのデータセマンティクスは、そのメンバーの値の解釈方法、つまりそれらの意味を指定します。データセマンティクスは、メンバーが想定できる一連の正式な値を、メンバーのデータ型によって表現可能な値のサブセットに制限できます。

安定性

SMF の svc など、一部の FMRI スキームは管理者対応ですが、もっとプライベートな実装の詳細であるスキームもあります。それに応じて、一部の FMRI スキームは Committed インタフェースになり、ほかの定義は Private インタフェースを形成します。attributes(5) を参照してください。すべての Private インタフェースと同様に、Private FMRI コンポーネントの定義は、いつでも互換性のない変更が行われる可能性があるため、それらのインタフェースを使用したり、プライベート FMRI メンバーの存在や想定されるセマンティクスに依存したりしないでください。

下の FMRI スキームの定義では、一連の (member-name, data-type, data-semantics) を一覧表示し、どのメンバーが必須で、どのメンバーがオプションであるか、および FMRI を文字列形式で表示する場合のルールを示しています。安定性の割り当てに関して、各メンバーに 2 つの安定性レベルが関連付けられます。

  • (member-name, data-type) ペアの安定性

  • 対応するデータセマンティクスの安定性

両方の場合のデフォルトは Private です。メンバーの両方の側面の安定性が同じ (一般的な例) 場合、安定性レベルを 1 回だけ書いています。それらが違う場合は、メンバー名とデータ型の安定性を最初に書き、次にコンマとデータセマンティクスの安定性レベルを続けています。現在 FMRI で採用されている安定性レベルは CommittedPrivate、および Not An Interface だけですが、ほかも使用できます。Committed FMRI コンポーネントのセマンティクスは、その特定のスキームとバージョンに互換性なく変更されません。

FMRI スキームおよびバージョンの識別

スキーム名とメジャーバージョンのメンバーを含めるために、すべての FMRI 定義が必要です。名前/データ型とデータセマンティクスの安定性は Committed であるため、すべての FMRI 定義を次のように始める必要があります。


Member Name      Data Type    Stability
----------------------------------------
scheme           string       Committed
version          uint8        Committed

scheme

この FMRI スキームに名前を付けます

version

スキームメジャーバージョン

これらと一緒に、特定の FMRI を解釈する一連のルール (下のように) を選択します。さまざまなサブシステム内のリソースの識別を処理するために、少数のスキーム名が定義され、各スキームはバージョン番号 0 から始まってバージョン管理されます。

FMRI の非公式の文字列表現を使用する場合、スキームは常に書き込まれますが、使用されているスキームバージョンは通常含まれません。使用されているバージョンは、特定の 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
[server-id]

Fault Manager が実行しているエンティティーのホスト名 (uname –n) 文字列。不変ではありません。

[chassis-id]

これはリソースが存在するシャーシを識別するシリアル番号です。一部の大規模なシステムでは、複数の個別のシャーシコンポーネントが含まれることがあります。

[product-sn]

場合によっては、chassis-id だけではシステムを完全に識別できないことがあります。たとえば、サービス権限が製品シリアル番号に基づいている場合や製品が複数のシャーシ要素で構成されている可能性がある場合などです。不変です。

[product-id]

Sun-Fire-X4600 などの製品名文字列。不変です。

[domain-id]

この機能をサポートするハードウェアの場合に特定のハードウェアドメインを識別します。不変ではありません。

[host-id]

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
[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-mfg]

最上位レベル製品の製造元。複合製品では、system-* メンバーにサービス権限データが含まれます。単純なスタンドアロンラックシステムでは、system-*、sys-comp-*、および d chassis-* データが重複しています。不変です。

[system-name]

最上位レベル製品のモデル名。不変です。

[system-part]

最上位レベル製品のパーツ番号。不変です。

[system-serial]

最上位レベル製品のシリアル番号。不変です。

[sys-comp-mfg]

コンポーネントシステムレベル製品の製造元。不変です。

[sys-comp-name]

コンポーネントシステムレベル製品のモデル名。不変です。

[sys-comp-part]

コンポーネントシステムレベル製品のパーツ番号。不変です。

[sys-comp-serial]

コンポーネントシステムレベル製品のシリアル番号。不変です。

[chassis-mfg]

リソースが存在するシャーシの製造元。一部の大規模なシステムでは、複数の個別のシャーシコンポーネントが含まれることがあります。不変です。

[chassis-name]

シャーシのモデル名。不変です。

[chassis-part]

シャーシのパーツ番号。不変です。

[chassis-serial]

シャーシのシリアル番号。不変です。

場合によっては、*-name/*-part/*-serial の単一のセットだけではシステムを完全に識別できないことがあります。たとえば、サービス権限が製品シリアル番号に基づいている場合や製品が複数のシャーシ要素で構成されている可能性がある場合などです。不変です。

[chassis-alias]

これは「fmadm add-alias」によってこのシャーシに割り当てられた Chassis Receptacle Occupant の別名値です。不変ではありません。

[server-name]

Fault Manager が実行しているエンティティーのホスト名 (uname –n) 文字列。不変ではありません。

[domain-name]

この機能をサポートするハードウェアの場合に特定のハードウェアドメインを識別します。不変ではありません。

[host-id]

Oracle Solaris での hostid(1) 文字列、一般に使用されません。必ずしも不変ではありません。

論理および汎用 FMRI スキーム

論理 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 スキームとバージョン

次の 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

これらのうち svc および pkg スキームは毎日の Oracle Solaris の使用でもっとも目にする可能性のあるもので、残りのものは通常、問題が診断されたときの障害管理サブシステムとのコマンド行の対話に隠されます。

SCHEME cpu VERSION 0

cpu スキームは、診断された問題に影響を受ける可能性のある論理 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

cpuid

権限情報によって識別された Oracle Solaris インスタンスの psradm(1M) によって一覧表示される、この論理実行ユニットの Oracle Solaris プロセッサインスタンス ID。

[serial]

この Private FMRI メンバーのセマンティクスについてはドキュメント化されていません。

文字列形式:

cpu:///cpuid=<cpuid>[/serial=<hex-serial>]

<hex-serial>0x 接頭辞のない 16 進でのシリアルメンバーです。

SCHEME cpu VERSION 1

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 は文字列形式で表示されません。

SCHEME dev VERSION 0

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


device-path

pci@0,0/pci108e,cb84@2,1 などのデバイスノードを識別する Oracle Solaris /devices ツリー内のファイルシステムパス。このメンバーが /devices パスを識別するというこの解釈のほかに、それらのパスの内部構造、つまり Oracle Solaris /devices ツリーの構造とノードの名前付けはNot An Interface です。

[devid]
[target-port-l0id]

これらの Private FMRI メンバーのセマンティクスについてはドキュメント化されていません。

文字列形式:

dev:///[:devid=<devid>]
    [:target-port-l0id=<target-port-l0id>]
    <device-path>

SCHEME fmd VERSION 0

このスキームは Oracle Solaris Fault Manager (fmd(1M)) モジュールを識別するために使用されます。

高レベル権限:

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

mod-name

fmd モジュール名、不透明な文字列。

mod-version

fmd モジュールバージョン、不透明な文字列。

文字列形式:

fmd:///module/mod-name>

SCHEME fmd VERSION 1

このスキームは Oracle Solaris Fault Manager (fmd(1M)) モジュールを識別するために使用されます。

高レベル権限:

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
[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
mod-name

fmd モジュール名、不透明な文字列。

mod-version

fmd モジュールバージョン、不透明な文字列。

文字列形式:
fmd:///module/<mod-name>
SCHEME legacy-hc VERSION 0

hc スキームはハードウェアコンポーネントを識別するために使用します。ほとんどの場合、これらの FMRI は内部実装の詳細として残すべきであり、ハードウェアコンポーネントが障害ありと診断された場合に、その FRU または位置ラベルによって、(たとえば fmadm(1M) などで) それが識別されます。

使用されている 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
component

リソースの FRU ラベル。

レガシー hc の文字列形式:
hc:///component=<component>
SCHEME hc VERSION 0

権限 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

[serial]

この FMRI で識別されるハードウェアコンポーネントのシリアル番号文字列。これは内部構造がインタフェースでない不透明な文字列です。

[devid]

これらの Private FMRI メンバーのセマンティクスについてはドキュメント化されていません。

[part]

この FMRI で識別されるハードウェアコンポーネントのパーツ番号文字列。これは内部構造がインタフェースでない不透明な文字列です。

[revision]

文字列としてのパーツ番号のリビジョン。ここでも、これは不透明の文字列です。

[hc-root]

この Private FMRI メンバーのセマンティクスについてはドキュメント化されていません。

hc-list-sz

この Private FMRI メンバーのセマンティクスについてはドキュメント化されていません。

hc-list

この Private FMRI メンバーのセマンティクスについてはドキュメント化されていませんが、内容の構造を列挙しています (互換性のない変更が行われることがあります)。(順序付けされた) nvlist 配列の各メンバーは次の構造になります。


Member Name    Data Type   Stability
------------------------------------
hc-name        string      Private
hc-id          string      Private

[facility]

この Private FMRI メンバーのセマンティクスについてはドキュメント化されていませんが、内容の構造を列挙しています (互換性のない変更が行われることがあります)。機能 nvlist には次のメンバーがあります。


Member Name    Data Type   Stability
------------------------------------
facility-type  string      Private
facility-name  string      Private

[hc-specific]

この 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 からの高レベル権限情報は、すべてコロン区切りで、シリアル番号とパーツ番号のリーフレベル権限情報の隣に表示されます。この権限文字列のコンポーネントは、高レベル権限要素とリーフ権限要素が交互に配置され、任意の順序で表示されることがあります。そのような文字列の解釈は難しく、どのコンポーネントがどの権限情報のクラスに属しているか前もって知っていることに依存します。

SCHEME hc VERSION 1

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
[fru-mfg]

この FMRI で識別されるハードウェアコンポーネントの製造元文字列。これは内部構造がインタフェースでない不透明な文字列です。

[fru-serial]

この FMRI で識別されるハードウェアコンポーネントのシリアル番号文字列。これは内部構造がインタフェースでない不透明な文字列です。

[fru-part]

この FMRI で識別されるハードウェアコンポーネントのパーツ番号文字列。これは内部構造がインタフェースでない不透明な文字列です。

[fru-revision]

文字列としてのパーツ番号のリビジョン。ここでも、これは不透明の文字列です。

[devid]

これらの Private FMRI メンバーのセマンティクスについてはドキュメント化されていません。

[hc-root]

この Private FMRI メンバーのセマンティクスについてはドキュメント化されていません。

hc-list-sz

この Private FMRI メンバーのセマンティクスについてはドキュメント化されていません。

hc-list

この Private FMRI メンバーのセマンティクスについてはドキュメント化されていませんが、内容の構造を列挙しています (互換性のない変更が行われることがあります)。(順序付けされた) nvlist 配列の各メンバーは次の構造になります。

Member Name    Data Type   Stability
------------------------------------
hc-name        string      Private
hc-id          string      Private

[facility]

この Private FMRI メンバーのセマンティクスについてはドキュメント化されていませんが、内容の構造を列挙しています (互換性のない変更が行われることがあります)。機能 nvlist には次のメンバーがあります。

Member Name    Data Type   Stability
------------------------------------
facility-type  string      Private
facility-name  string      Private

[hc-specific]

この 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

unum

この文字列は、一般にプラットフォームのシルクスクリーンまたはサービスラベルにラベル付けされているように、メモリーモジュールを識別します。この文字列型のメンバーの存在は、Committed インタフェースですが、unum 文字列の内部構造は Private インタフェースです。そのため、不透明な unum 文字列を使用して、メモリーモジュールを識別できますが、unum 文字列のコンポーネントの解釈はプラットフォームに依存し、Private です。

unum はメモリーモジュールのグループ (またはバンク) を識別できます。これらは代わりに、メモリーモジュールごとに 1 つずつ、複数の FMRI によって識別されるべきですが、これは初期の実装からは歴史的に異例とされます。

[serial]

unum メンバーによって名前が付けられたメモリーモジュールのシリアル番号の文字列配列。シリアル番号文字列の内部構造はインタフェースでないため、シリアル番号の照合では不透明な文字列値のみを使用でき、それ以上の解釈は適用されません。

[physaddr]
[offset]

これらの Private FMRI メンバーのセマンティクスについてはドキュメント化されていません。

文字列形式:

mem:///unum=<unum>
        [/offset=<hex-offset> | /physaddr=<hex-physaddr>]
SCHEME mod VERSION 0

このスキームは 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)

mod-name

modinfo(1M) のとおりのモジュール名。

[mod-desc]

modinfo(1M) のとおりのモジュールの説明。

[mod-pkg]

このモジュールを配布するパッケージの pkg スキーム FMRI。

文字列形式:
mod:///mod-name=<mod-name>
SCHEME pkg VERSION 0

このバージョンの pkg スキームは pkgadd(1M)pkginfo(1)pkgrm(1M)、および関連ユーティリティーで使用されるレガシー 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

pkg-name

パッケージの名前。

pkg-basedir

pkginfo(1) のとおりの BASEDIR

pkg-inst

pkginfo(1) のとおりの PKGINST

pkg-version

pkginfo(1) のとおりの VERSION

文字列形式:
pkg:///<pkg-name>/:version=<pkg-version>
SCHEME pkg VERSION 1

このバージョンの pkg スキームは pkg (5) Image Packaging System に対応します。それらの FMRI は pkg (1) コマンド行とその出力で文字列形式で使用され、コマンド行では FMRI 文字列の省略形が許可されます。

pkg スキームバージョン 1 の FMRI は汎用です。2 つの個別のコンテキスト (個別の Oracle Solaris インスタンスなど) で解釈された同じ FMRI は同じ実際のパッケージ (またはそのコピー) を識別します。

pkg (5) コマンド行ではバージョン 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]

authority nvlistpkg publisher の出力に従って、パッケージパブリッシャーを指定します。


Member Name    Data Type    Stability
-------------------------------------
publisher      string       Committed

publisher

Oracle Solaris などのこのパッケージのパブリッシャー。

pkg-name

パッケージの名前 (stem)。

[pkg-version]

Member Name    Data Type    Stability
---------------------------------------
release        string       Committed
[built-on]     string       Committed
[branch]       string       Committed
[timestamp]    string       Committed

release

ドットシーケンス文字列 (任意の長さ、ドット区切りの一連の 0 が先頭に付かない 10 進数) で書かれた、コンポーネントのプライマリバージョン。

built-on

ドットシーケンスで指定された、コンポーネントが構築されたオペレーティングシステムバージョン。

branch

ドットシーケンスとしてのベンダーブランチバージョン。

timestamp

ISO 8601 日付文字列: yyyymmddThhmmssZ で、TZ はリテラルです。

文字列形式:

pkgauthstr = <authority.publisher>

pkg://[pkgauthstr]/<pkg-name>
    [@<release>[,<built-on>][-<branch>][:<timestamp>]

SCHEME svc VERSION 0

svc スキームは SMF (smf(5) を参照) サービスおよびサービスインスタンスを記述します。 svcadm(1M)svccfg(1M) 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
[contract-id]  string      Committed
[svc-scope]    string      Committed

     pkg://[pkgauthstr]/<pkg-name>
svc-name

network/smtp などのサービス名。smf(5) を参照してください。

[svc-instance]

サービスのインスタンスを識別する場合に使用されます。default の場合が多いですが、サービス network/smtpsendmail インスタンスのようなものを指定することもできます。

[contract-id]

これは、サービスの特定の実行中インスタンスを管理するために使用される数値の (10 進文字列として書かれますが) 契約 ID (smf(5) および contract(4) を参照) を識別します。

[svc-scope]

smf(5) のとおりに、すべてのサービスおよびインスタンスオブジェクトは構成情報のコレクションを表す scope に格納されます。ローカル Oracle Solaris インスタンスの構成は localhost スコープと呼ばれ、現在サポートされている唯一のスコープとなります。

文字列形式:

svc://[<svc-scope>]/<svc-name>
        [:<svc-instance>[@<contract-id>]]

svcadm(1M) などの SMF サブシステムコマンドは上記の文字列形式の省略形を許可 (または必要と) します。文字列の開始での svc スキームの指示は、オプションとみなされ、SMF コマンド行ユーティリティーによって暗黙的に示されます。svc スキーム識別子を使用すると、権限コンポーネントもより公式な svc:///<svc-name> ではなく、svc:/<svc-name> に省略されます。たとえば、SMF では次のように書きます。

svc:/network/smtp:sendmail

より公式な次の代わりに

svc:///network/smtp:sendmail

またはもっと公式な

svc://localhost/network/smtp:sendmail

さらに、SMF は一意のサービスやインスタンスを識別していれば、さらなる省略形を許可します。たとえば、インスタンス名 sendmail は一意で、svcs sendmailsvcadm restart sendmail などを使用できます。

そうした省略形は、SMF サブシステムの規則であり、公式の FMRI 定義に含まれません。svc スキーム FMRI は nvlist 形式で受け取られると (たとえば、 libfmevent(3LIB) サブスクリプションで)、文字列として表示される際に、より公式な形式で表示されます。

SCHEME sw VERSION 0

この 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

objectsite、および context メンバーはすべて Private であるため、互換性のない変更が行われることがありますが、それらの内容を情報目的で、下に説明します。

object

この必須メンバーはソフトウェアオブジェクトを識別します。現在のところ、ファイルシステム内に存在するオブジェクトのみが考慮されます。


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
site

このオプションのメンバーはオブジェクト内のサイトを識別します。


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

context

このオプションのメンバーは実行時情報を伝えます。


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>]
SCHEME zfs VERSION 0

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
[pool-name]

zpool list -o name のとおりのプール名。

pool

zpool list -o guid のとおりのプール GUID。

[vdev]

この Private FMRI メンバーのセマンティクスについてはドキュメント化されていません。

[vdev-name]

この 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>/ 文字がエスケープされずに書かれます。

関連項目

hostid (1) , fmadm (1M) , fmd (1M) , fmdump (1M) , pkg (5) , pkg (1) , pkgadd (1M) , pkginfo (1) , pkgrm (1M) , psradm (1M) , svcadm (1M) , svccfg (1M) , svcprop (1) , svcs (1) , libfmevent (3LIB) , libnvpair (3LIB) , contract (4) , attributes (5) , smf (5)

RFC 2396