Solaris のシステム管理 (基本編)

SMF の概念

この節では、SMF フレームワーク内で使われる用語とその定義をいくつか紹介します。これらの用語は、マニュアル全体で使用されます。SMF の概念を理解するには、これらの用語を理解する必要があります。

SMF サービス

SMF フレームワークでの基本的な管理単位は「サービスインスタンス」です。それぞれの SMF サービスでは、構成された複数のバージョンを保持することができます。さらに、1 つの Oracle Solaris システム上で同じバージョンの複数のインスタンスが動作できます。「インスタンス」とは、サービスの特定の構成のことです。 Web サーバーはサービスです。ポート 80 で待機するよう構成された Web サーバーデーモンはインスタンスです。Web サーバーサービスの各インスタンスには、異なる構成要件を設定できます。サービスにはシステム全体の構成要件が設定されていますが、各インスタンスでは必要に応じて特定の要件を無効にできます。1 つのサービスの複数のインスタンスは、サービスオブジェクトの子オブジェクトとして管理されます。

サービスは、in.dhcpdnfsd などの標準の長年続いているシステムサービスだけではなく、Oracle ソフトウェアなどの ISV アプリケーションを含むさまざまなシステムエンティティーも意味します。また、次のような今まであまり使われなかったエンティティーを組み込むこともできます。

一般に、サービスはアプリケーションやほかのサービス (ローカルやリモート) に機能リストを提供するエンティティーです。サービスは、暗黙のうちに宣言されたローカルサービスのリストに依存しています。

「マイルストン」とは、特殊なタイプのサービスです。マイルストンサービスは、システムの高レベルの属性を表します。たとえば、実行レベル S、2、および 3 を構成するサービスはマイルストンサービスによってそれぞれ表されます。

サービス識別子

各サービスインスタンスの名前は、障害管理リソース識別子 (FMRI) によって付けられます。FMRI には、サービス名とインスタンス名が含まれます。たとえば、rlogin サービスの FMRI は svc:/network/login:rlogin となり、ここでの network/login はサービスを、rlogin はサービスインスタンスをそれぞれ示します。

次の FMRI の形式はどれも同じです。

また、SMF コマンドの中には、 svc:/system/system-log という FMRI 形式を使用できるものや、あいまいさがまったくない場合に、使用するインスタンスを推測するものもあります。適切な FMRI 形式を判断する方法については、svcadm(1M)svcs(1) などの SMF コマンドのマニュアルページを参照してください。

通常、サービス名には一般的な機能カテゴリが含まれます。カテゴリには、次のものがあります。

また、従来の init.d スクリプトは、svc ではなく lrc で始まる FMRI (たとえば、lrc:/etc/rcS_d/S35cacheos_sh) で表現されます。従来のサービスは、SMF を使用して監視できますが、管理することはできません。

SMF を使用してシステムを初めてブートしたときに、/etc/inetd.conf に示されたサービスが自動的に SMF サービスに変換されます。これらのサービスの FMRI は多少異なります。変換された inetd サービスの構文は次のとおりです。


network/<service-name>/<protocol>

また、RPC プロトコルを使用するサービスの構文は次のとおりです。


network/rpc-<service-name>/rpc_<protocol>

ここで、<service-name>/etc/inetd.conf に定義されている名前であり、<protocol> はそのサービスに使用されるプロトコルです。たとえば、rpc.cmsd サービスの FMRI は network/rpc-100068_2-5/rpc_udp となります。

サービスの状態

svcs コマンドは、サービスインスタンスの状態、開始時刻、および FMRI を表示します。各サービスの状態は次のいずれかになります。

SMF 目録

SMF の「目録」とは、サービスまたはサービスインスタンスに関連付けられた完全なプロパティーセットを含む XML ファイルのことです。これらのファイルは /var/svc/manifest に格納されます。目録は、サービスプロパティーの変更には使用しないでください。サービス構成リポジトリは、信頼できる構成情報ソースです。情報を目録からリポジトリに取り込むには、svccfg import を実行するか、システムのブート時に、サービスが情報をインポートできるようにする必要があります。

SMF 目録の詳しい内容については、service_bundle(4) のマニュアルページを参照してください。サービスのプロパティーを変更する必要がある場合には、svccfg(1M) または inetadm(1m) のマニュアルページを参照してください。

SMF プロファイル

SMF の「プロファイル」とは、サービスインスタンスの一覧とそれぞれを有効にするかどうかを示す XML ファイルのことです。この Oracle Solaris リリースで配布されるプロファイルには、次のようなものがあります。

Oracle Solaris OS を新規にインストールした場合やこの OS にアップグレードした場合は、そのあとの最初のブート時に、いくつかの Solaris プロファイルが自動的に適用されます。具体的には、/var/svc/profile/generic.xml プロファイルが適用されます。通常、このファイルには、generic_open.xml または generic_limited_net.xml へのシンボリックリンクが設定されています。また、最初のブート時に site.xml というプロファイルが /var/svc/profile に存在している場合や、次のブートまでに追加された場合は、このプロファイルの内容が適用されます。管理者は site.xml プロファイルを使用して、有効にするサービスの初期セットをカスタマイズすることができます。

プロファイルの使用方法については、「SMF プロファイルを適用する方法」を参照してください。

サービス構成リポジトリ

「サービス構成リポジトリ」には、永続的な構成情報と SMF 実行時サービスデータが格納されます。リポジトリは、ローカルメモリーとローカルファイルの間で割り当てられます。SMF は、最終的にサービスデータをネットワークディレクトリサービスで表現できるように設計されています。ネットワークディレクトリサービスはまだ利用できません。サービス構成リポジトリ内のデータを使用すると、多数の Solaris インスタンス間で構成情報の共有や管理の簡素化ができます。サービス構成リポジトリは、SMF インタフェースを使ってのみ操作または照会できます。リポジトリの操作やアクセスの方法については、svccfg(1M) および svcprop(1) のマニュアルページを参照してください。サービス構成リポジトリデーモンについては、svc.configd(1M) のマニュアルページを参照してください。サービス構成ライブラリについては、libscf(3LIB) のマニュアルページを参照してください。

SMF リポジトリのバックアップ

SMF では、次に示すリポジトリのバックアップを自動的に行います。

タイプごとに 4 つのバックアップがシステムによって管理されます。必要に応じて、もっとも古いバックアップから削除されます。バックアップは /etc/svc/repository -type-YYYYMMDD_HHMMSWS という名前で格納されます。ここでの YYYYMMDD (年、月、日) と HHMMSS (時、分、秒) は、バックアップが行われた日時です。時間は 24 時間形式で表されます。

エラーが発生した場合は、これらのバックアップからリポジトリを復元できます。そのためには、/lib/svc/bin/restore_repository コマンドを使用します。詳細は、「破壊されたリポジトリを修復する方法」を参照してください。

SMF スナップショット

サービス構成リポジトリ内のデータには、編集可能な構成情報のほかに「スナップショット」もあります。各サービスインスタンスに関するデータは、スナップショットに格納されます。標準のスナップショットは、次のとおりです。

SMF サービスは常に running スナップショットを使って実行します。このスナップショットが存在しない場合は、自動的に作成されます。

svcadm refresh コマンド (ときどきこのあとに svcadm restart コマンドが実行される) によってスナップショットがアクティブになります。以前のスナップショットに含まれるインスタンス構成を表示したり、そこに戻ったりするには、svccfg コマンドを使用します。詳細については、「別の SMF スナップショットに戻す方法」を参照してください。