Solaris 10 8/07 リリースでは、次のシステム資源機能と拡張機能が追加されました。
Sun の BrandZ 技術は、ネイティブでないオペレーティング環境を含む非大域ブランドゾーンを作成するためのフレームワークを提供します。非大域ゾーンの簡単な拡張機能として、ブランドゾーンは同一の孤立した安全な環境を提供しており、ブランド管理はすべて現在のゾーン構造の拡張機能を使って行われます。
現在使用可能なブランドは lx ブランドで、これは Linux アプリケーション用の Solaris コンテナです。これらの非大域ゾーンは、Solaris OS が稼働している x86 または x64 マシン上に Linux アプリケーション環境を作成できます。
lx ブランドには、非大域ゾーン内に CentOS 3.5 - 3.8 または Red Hat Enterprise Linux 3.5 - 3.8 をインストールするために必要なツールが含まれています。32 ビットまたは 64 ビットモードの Solaris OS が稼働しているマシンでは、32 ビットの Linux アプリケーションを実行できます。
詳細は、『Solaris のシステム管理 (Solaris コンテナ : 資源管理と Solaris ゾーン)』の Part III 「Branded Zones」を参照してください。
また、次のマニュアルページも参照してください。
brands(5)
lx(5)
資源管理機能とゾーン機能の統合がさらに進んだことで、zonecfg コマンドを使ってシステムの資源管理能力をより簡単に強化できるようになりました。ゾーンがブートされると、ユーザーが指定した資源構成が自動的に作成されます。資源管理の設定にまつわる手順を手動で行う必要はなくなりました。
大域ゾーンの資源管理の設定を行う場合は、zonecfg コマンドを使用できます。
ゾーン全体の資源制御は、推奨される大域プロパティー名の方法を使って設定できます。新しいプロジェクトおよびゾーンの資源制御も使用可能です。
zone.max-locked-memory
zone.max-msg-ids
zone.max-sem-ids
zone.max-shm-ids
zone.max-shm-memory
zone.max-swap - キャップされたメモリー資源によるゾーンのスワップキャッピングを行います
project.max-locked-memory - project.max-device-locked-memory を置き換えます
ゾーン内のデフォルトスケジューラを設定する方法がいくつか追加されました (例: 新しいスケジューリングクラスプロパティー)。
資源プールの機能が向上しました。ゾーンがブートされると動的に作成される一時的なプールを追加できます。このプールは、dedicated-CPU 資源を介して設定されます。
オプションの設定値をクリアーする際に clear サブコマンドを使用できます。
rcapd(1M) が改善されたことにより、機能が向上した、大域ゾーンからの物理メモリーのキャッピング機能を使用できます。制限値は、キャップされたメモリー資源を介して設定されます。
この機能は、lx ブランドゾーンやネイティブゾーン用の物理メモリーをキャップする際に使用できます。詳細は、「lx ブランドゾーン: Linux アプリケーション用の Solaris コンテナ」を参照してください。
常駐セットサイズ (RSS) の計算機能が向上しています。資源上限デーモン rcapd と prstat コマンドが改善されました。
詳細については、次を参照してください。
prstat(1M) のマニュアルページ
rcapd(1M) のマニュアルページ
zonecfg(1M) のマニュアルページ
resource_controls(5) のマニュアルページ
ゾーンに排他的 IP インスタンスを割り当てるか、それとも IP 層の構成および状態を大域ゾーンと共有するかに応じて、IP ネットワーク接続を 2 通りの方法で設定できるようになりました。IP の種類を設定するには、zonecfg コマンドを使用します。
IP 共有タイプがデフォルトになります。これらのゾーンは、大域ゾーンと同じ VLAN または LAN に接続され、IP 層を共有します。lx ブランドゾーンは、共有 IP ゾーンとして設定されます。詳細は、「lx ブランドゾーン: Linux アプリケーション用の Solaris コンテナ」を参照してください。
IP レベルの完全な機能は、排他的 IP ゾーンで使用できます。ゾーンをネットワーク上の IP 層で孤立させる必要がある場合は、そのゾーンに排他的 IP を割り当てることができます。排他的 IP ゾーンを使用すると、異なる VLAN や LAN の異なるサブネット上で通信しなければならないアプリケーションを統合することができます。
詳細については、次を参照してください。
zonecfg(1M) のマニュアルページ
zones(5) のマニュアルページ
『Solaris のシステム管理 (Solaris コンテナ : 資源管理と Solaris ゾーン)』
構成情報については、『Solaris のシステム管理 (Solaris コンテナ : 資源管理と Solaris ゾーン)』の第 17 章「非大域ゾーンの構成 (概要)」および『Solaris のシステム管理 (Solaris コンテナ : 資源管理と Solaris ゾーン)』の第 18 章「非大域ゾーンの計画と構成 (手順)」を参照してください。
機能コンポーネントについては、『Solaris のシステム管理 (Solaris コンテナ : 資源管理と Solaris ゾーン)』の第 26 章「Solaris のゾーン管理 (概要)」および『Solaris のシステム管理 (Solaris コンテナ : 資源管理と Solaris ゾーン)』の第 27 章「Solaris のゾーン管理 (手順)」を参照してください。
Solaris ゾーンのブートの拡張機能では、ブート引数を boot および reboot の一部としてサポートするようになりました。次のブート引数は、今回からサポートされます。
-m <smf_options>
-i </path/to/init/>
-s
ブート引数は、次の方法で渡すことができます。
global# zoneadm -z myzone boot -- -m verbose
global# zoneadm -z myzone reboot -- -m verbose
myzone# reboot -- -m verbose
また、zonecfg コマンドの新しいプロパティー bootargs を使用すれば、ブート引数を永続的に指定できます。
zonecfg:myzone> set bootargs="-m verbose"
reboot、zoneadm boot、または zoneadm reboot コマンドで無効にされないかぎり、この設定が適用されます。
ブート引数と bootargs プロパティーの詳細は、次の項目を参照してください。
zoneadm(1M) のマニュアルページ
zonecfg(1M) のマニュアルページ
非大域ゾーン内のプロセスが使用する System V 資源の合計量を制限するために、次に示すゾーン全体の資源制御が追加されました。
zone.max-shm-memory
zone.max-shm-ids
zone.max-msg-ids
zone.max-sem-ids
資源制御は、非大域ゾーン用の zonecfg コマンドの add rctl 資源プロパティーによって設定します。
大域ゾーンの消費量を制限する場合は、prctl コマンドによって資源制御を設定できます。
詳細については、次を参照してください。
prctl(1) のマニュアルページ
zonecfg(1M) のマニュアルページ
resource_controls(5) のマニュアルページ
Solaris システムでは、それぞれの非大域ゾーン (インストールされている場合) にグローバル一意識別子を自動的に割り当てます。zoneadm list -p コマンドを使えば、この識別子を大域ゾーンと非大域ゾーンのどちらからでも取り出すことができます。ユーザーは、ゾーン自体を 1 つのアセットとみなすことにより、アセットの追跡にゾーンの一意識別子を利用できます。この識別子は、次の処理にまたがってゾーンを識別する場合にも使用できます。
ゾーンの移動。
ゾーンの名前の変更。
ゾーン内容の破棄を伴わないすべてのイベント。
詳細は、zoneadm(1M) のマニュアルページを参照してください。
このリリース以降、新しい zoneadm 機能を使って、ゾーンに「incomplete (不完全)」のマークを付けられるようになりました。この新しい zoneadm 機能により、ゾーンの内容を更新する管理ソフトウェアで致命的または永続的なゾーン障害の状態を記録することができます。
詳細は、zoneadm(1M) のマニュアルページを参照してください。
dtrace_proc および dtrace_user 特権が非大域ゾーンに割り当てられている場合は、DTrace をその非大域ゾーンで使用できるようになりました。DTrace のプロバイダおよびアクションの有効範囲は、ゾーンに制限されます。dtrace_proc 特権があれば、fasttrap および pid プロバイダを使用できます。dtrace_user 特権があれば、profile および syscall プロバイダを使用できます。
zonecfg コマンドの limitpriv プロパティーを使用すると、これらの権限を非大域ゾーンで使用できる権限セットに追加することができます。
非大域ゾーンの特権の概要については、「非大域ゾーンに関する設定可能な特権」を参照してください。
ゾーン構成、ゾーンの特権の指定方法、および DTrace ユーティリティーの使用方法については、次の項目を参照してください。
zonecfg(1M) のマニュアルページ
dtrace(1M) のマニュアルページ