この節では、Solaris 10 3/05 リリースに含まれるシステム資源の機能拡張について、新しい機能だけでなく、Solaris 9 OS が 2002 年 5 月にはじめて配布されたあとに拡張されたものも含めて説明します。Solaris 10 OS には、Solaris ゾーン区分技術という、Solaris ユーザーにとって非常に重要な機能が組み込まれています。
この機能は、Solaris Express 2/04 で新しく追加されました。Solaris Express 7/04 では、ゾーンに新しい機能が追加されています。
Solaris ゾーンソフトウェア区分技術は、Solaris コンテナ環境のコンポーネントの 1 つで、オペレーティングシステムサービスを仮想化して、アプリケーションの実行に適した安全で隔離された環境を提供します。ゾーンとは、Solaris オペレーティングシステムの単一インスタンスに作成される、仮想化されたオペレーティングシステム環境です。ゾーンは、基本的に Solaris 標準のインタフェースおよびアプリケーション環境だけで構成され、アプリケーションの移植を必要とするような新しい ABI や API は含みません。
ゾーンごとにカスタマイズされたサービスを提供できます。ゾーンは、複数のアプリケーションを 1 つのサーバーに統合する環境にもっとも適しています。ゾーン内で資源管理機能を使用すると、利用可能なシステム資源をアプリケーションがどのように使用するかを詳細に制御できます。
ゾーンは、箱と見なすことができます。この箱の中で、システムのほかの箱に影響を与えずに、1 つ以上のアプリケーションを実行できます。各ゾーンは隔離されているので、あるゾーンで実行しているプロセスが、ほかのゾーンで実行しているプロセスから監視または干渉されることがありません。スーパーユーザーの資格で実行しているプロセスでも、ゾーンで実行している場合には、ほかのゾーンの動作を表示または操作することはできません。
Solaris オペレーティングシステムの実体は、大域ゾーンだけです。大域ゾーンは、システムのデフォルトのゾーンであり、システム全体の管理に使用されるゾーンでもあります。大域ゾーンで操作を行う管理者は、1 つ以上の非大域ゾーンを作成できます。非大域ゾーンは、ゾーンを作成した管理者が個別に管理します。ゾーン管理者の特権は、非大域ゾーンに対してのみ有効です。
非大域ゾーンでは、必要となるあらゆる詳細なレベルのほとんどの隔離が提供されます。専用の CPU、物理デバイス、物理メモリーの一部分などをゾーンに割り当てる必要はありません。これらの資源は、1 つのドメインまたはシステムで動作しているいくつかのゾーンの間で多重化したり、オペレーティングシステムで使用可能になっている資源管理機能を使用してゾーン単位で割り当てることもできます。小規模の単一プロセッサシステムでも、同時に複数のゾーンに対応できます。
プロセスの隔離を実現するため、プロセスは同じゾーンに含まれるプロセスだけ認識やシグナルの送信ができます。
ゾーン間で基本的な通信を行うには、各ゾーンに 1 つ以上の論理ネットワークインタフェースを割り当てます。同じシステム上の異なるゾーンでアプリケーションを実行している場合には、各ゾーンに個別に割り当てられている IP アドレスを使用するか、ワイルドカードアドレスを使用すると、それらのアプリケーションを同じネットワークポートに割り当てることができます。あるゾーンで実行中のアプリケーションが、別のゾーンのネットワークトラフィックを監視することはできません。それぞれのパケットストリームが同じ物理インタフェースを通過する場合でも、この隔離は維持されます。
各ゾーンには、ファイルシステム階層の一部分が割り当てられます。各ゾーンは、ファイルシステム階層で割り当てられた部分ツリーに限定されます。したがって、特定のゾーンで実行されている作業負荷は、別のゾーンで実行されているほかの作業負荷のディスク上のデータにアクセスすることはできません。
ネームサービスで使用されるファイルは、ゾーン独自のルートファイルシステムのビュー内に置かれます。つまり、あるゾーンのネームサービスはほかのゾーンのネームサービスから隔離されるので、個別に構成することができます。
システム上にゾーンを構成して使用する方法の詳細は、『Solaris のシステム管理 (Solaris コンテナ : 資源管理と Solaris ゾーン)』を参照してください。
資源制御 (rctls) 機能は、Solaris 9 ソフトウェアで新しく追加されました。Software Express パイロットプログラムと Solaris Express 3/04、8/04、10/04 の各リリースで、追加の資源制御が新しく導入されました。
プロジェクトによる、あるいはプロセスによる資源管理 (rctls) が新たに追加されています。資源制御は、アプリケーションがどのようにシステム資源を使用するかを制御します。
Software Express パイロットプログラムでは、次の資源制御が追加されました。これらの資源制御は、共有メモリー、メッセージキュー、セマフォーなど、System V IPC (プロセス間通信) 機能に適用されます。
project.max-shm-ids
project.max-sem-ids
project.max-msg-ids
project.max-shm-memory
process.max-sem-nsems
process.max-sem-ops
process.max-msg-qbytes
詳細は、「System V IPC 構成」を参照してください。
Solaris Express 3/04 では、次のイベントポート資源制御が追加されました。
project.max-device-locked-memory
project.max-port-ids
process.max-port-events
Solaris Express 8/04 では、次の新しい資源制御が追加されました。
project.max-lwps
project.max-tasks
Solaris Express 10/04 では、project.max-contracts 資源制御が追加されました。
Solaris Express 11/04 では、process.max-crypto-memory 暗号化資源制御が追加されました。
資源制御については、『Solaris のシステム管理 (Solaris コンテナ : 資源管理と Solaris ゾーン)』の第 6 章「資源制御 (概要)」を参照してください。この章の内容は、次のとおりです。
使用可能な資源制御の最新リスト
資源制御の概要
資源制御の構成情報
資源制御に関する説明は、project(4) のマニュアルページにも記載されています。
この機能は、Solaris Express 7/04 で新しく追加されました。
Solaris Express 7/04 では、プロジェクトデータベースおよび資源制御のコマンドに対して次の機能拡張が新しく導入されています。
資源制御の値およびコマンドで、倍率値と単位修飾子をサポート
プロジェクト属性のフィールドの検証と操作性が向上
project(4) のマニュアルページを参照してください。
prctl コマンドおよび projects コマンドの出力形式を改訂し、新しいオプションを追加
prctl(1) および projects(1) のマニュアルページを参照してください。
導入された変更については、『Solaris のシステム管理 (Solaris コンテナ : 資源管理と Solaris ゾーン)』の次の章を参照してください。
第 2 章「プロジェクトとタスク (概要)」
第 3 章「プロジェクトとタスクの管理」
第 6 章「資源制御 (概要)」
第 7 章「資源制御の管理 (手順)」
useradd、usermod、および passmgmt コマンドを使用してユーザーのデフォルトプロジェクトを設定する方法の説明は、このマニュアルですでに更新されています。これらのコマンドについては、useradd(1M)、usermod(1M)、および passmgmt(1M) のマニュアルページで説明されています。
また、次のマニュアルページも参照してください。
この機能は、Solaris Express 1/04 で新しく追加されました。
動的資源プール (DRP) は、資源プールが使用可能になっているシステム上のシステムイベントとアプリケーション負荷の変化に応じて、各プールの資源割り当てを調整する機構を提供します。管理者が指定したシステム性能の目標が維持されるように、資源割り当てが自動的に調整されます。構成の変更はログに記録されます。
これらの機能は、主に資源コントローラ poold によって適用されます。この資源コントローラは、動的な資源割り当てが必要になると動作するシステムデーモンです。poold は、定期的にシステム上の負荷を検査し、指定されている資源利用率の目標を維持するためにシステム介入が必要かどうかを判断します。調整できる場合は、このデーモンが適切な処置を適用します。調整できない場合は、状態が記録されます。
詳細は、『Solaris のシステム管理 (Solaris コンテナ : 資源管理と Solaris ゾーン)』の次の章を参照してください。
第 12 章「動的資源プール (概要)」
第 13 章「動的資源プールの管理 (手順)」
第 14 章「資源管理の構成例」
また、次のマニュアルページも参照してください。
拡張アカウンティングは、Solaris 9 オペレーティングシステムが最初に配布された 2002 年 5 月に導入されました。Software Express パイロットプログラムでは、フローアカウンティングの機能拡張と Perl インタフェースが導入されました。これらの機能拡張は、Solaris 10 3/05 リリースに組み込まれています。
Solaris 9 ユーザー向けに、フローアカウンティングの拡張が Solaris 9 9/02 で新しく追加されました。Perl インタフェースは、Solaris 9 4/03 で新しく追加されました。
拡張アカウンティングプロセスは、IP サービス品質 (IPQoS) のフローアカウンティングモジュールと併用できます。IPQoS の詳細については、『Solaris のシステム管理 (IP サービス)』の第 7 部「IP サービス品質 (IPQoS)」を参照してください。
拡張アカウンティング機能の詳細は、『Solaris のシステム管理 (Solaris コンテナ : 資源管理と Solaris ゾーン)』の第 5 章「拡張アカウンティングの管理 (手順)」を参照してください。
Software Express リリースには、libexacct の Perl インタフェースが用意されています。このインタフェースを使って、exacct フレームワークによって生成されたアカウンティングファイルを読み取る Perl スクリプトを作成できます。exacct ファイルを作成する Perl スクリプトも作成できます。この新しい Perl インタフェースは、基盤となる C API と機能的に同等です。
この Perl インタフェースでは、作業単位またはプロセス単位でシステムの資源消費量を記録できます。または、IPQoS の flowacct モジュールによって提供されたセレクタ単位でシステムの資源消費量を記録できます。
詳細は、次のマニュアルページを参照してください。
この節で説明している拡張機能を含む拡張アカウンティングの構成および使用方法の詳細は、『Solaris のシステム管理 (Solaris コンテナ : 資源管理と Solaris ゾーン)』の第 4 章「拡張アカウンティング (概要)」を参照してください。
この機能は、Software Express パイロットプログラムと Solaris 9 12/03 で新しく追加されました。この機能は、Solaris 10 3/05 に組み込まれています。
資源上限デーモンを使用する物理メモリー制御は、オプションの機能です。資源上限デーモン rcapd は、資源上限が定義されたプロジェクト内で動作するプロセスが消費する物理メモリーを制御します。また、このデーモンを管理したり、関連する統計情報を報告したりする機構を持つ関連ユーティリティーが用意されています。
詳細は、『Solaris のシステム管理 (Solaris コンテナ : 資源管理と Solaris ゾーン)』の第 10 章「資源上限デーモンによる物理メモリーの制御 (概要)」を参照してください。
また、rcapstat(1)、rcapadm(1M)、project(4)、および rcapd(1M) のマニュアルページも参照してください。