Go to main content
Oracle ® Solaris ゾーン構成リソース

印刷ビューの終了

更新: 2016 年 11 月
 
 

構成可能なリソースとプロパティー

このセクションでは、構成可能な必須およびオプションのゾーンリソースおよびプロパティーについて説明します。ゾーン名だけが必要です。詳細は、ゾーン構成データを参照してください。特定ブランドのゾーンに固有の構成オプションの詳細は、solaris(5) および solaris-kz(5) のマニュアルページを参照してください。

ゾーン名

ゾーンの名前を選択する必要があります。

ゾーンパス

パスを指定しない場合、zonepath のデフォルト値は /system/zones/%{zonename} です。ゾーン構成に rootzpool リソースがない場合は、ZFS データセット %{global-rootzpool}/VARSHARE/system/zones/%{zonename} が作成され、/system/zones/%{zonename} にマウントされます。

ゾーンのパスを選択する場合、ゾーンは ZFS データセット上に存在する必要があります。ZFS データセットは、ゾーンのインストール時または接続時に自動的に作成されます。ZFS データセットを作成できない場合、ゾーンのインストールや接続は行われません。ゾーンのパスの親ディレクトリは、データセットでもなければならないことに注意してください。zonepath データセットが自動的に作成されない場合にのみ、zonepath の親が ZFS データセットでなければなりません。

カーネルゾーンでは zonepath プロパティーはサポートされません。ゾーンルートは ZFS ボリューム内に保持されます。ゾーンのインストール先のデバイスは、任意の正の整数値に設定された bootpri プロパティーを持つ device リソースで指定されます。

ゾーンの自動ブート

autoboot プロパティーの設定は、大域ゾーンのブート時にゾーンが自動的にブートされるかどうかを決定します。ゾーンサービス svc:/system/zones:default も有効になっている必要があります。

solaris および solaris10 のみ: global-time プロパティー

非大域ゾーン内から、ゾーン固有の時間とシステム全体の時間のどちらの変更を許可するかを指定するには、global-time プロパティーを設定します。

  • global-time プロパティーの global-time=true の値は、システム全体の時間をゾーンで設定できることを示します。

  • global-time プロパティーの global-time=false の値は、ゾーン固有の時間をゾーンで設定できることを示します。

使用例 3  ゾーンでのゾーン固有の時間の設定の有効化
# zonecfg -z my-zone
   zonecfg:my-zone> set global-time=false
   zonecfg:my-zone> exit

global-time プロパティーの値を割り当てる必要があります。ただし、値が設定されていなくても、limitpriv プロパティーを使用して sys_time 特権が明示的に割り当てられている場合は、global-time の値は true として扱われます。limitpriv プロパティーを使用して sys_time 特権が明示的に割り当てられていなければ、global-timefalse として扱われます。

Oracle Solaris 11.3 では、global-time プロパティー設定に応じて、非大域ゾーン内のプロセスが、次のシステムコールによって仮想ゾーン固有の時間かシステム全体の時間のどちらかを操作できます。プロセスに sys_time 特権が割り当てられている必要があります。

  • stime(2)

  • clock_settime(3C)

  • 時刻クロックを書き込む IA 固有のリアルタイムクロック (RTC) コール

詳細は、Oracle Solaris ゾーンの作成と使用 の 非大域ゾーン内の特権を参照してください。

不変ゾーンの file-mac-profile プロパティー

file-mac-profile を使用して、読み取り専用ルートで不変ゾーンを構成します。

詳細は、Oracle Solaris ゾーンの作成と使用 の 第 11 章, 不変ゾーンの構成と管理を参照してください。

admin リソース

admin 設定を使用すると、ゾーン管理の承認を設定できます。承認を定義するための推奨の方法は、zonecfg コマンドによる方法です。

user

ユーザー名を指定します。

auths

ユーザー名に対して承認を指定します。

auths に使用できる値は次のとおりです。

solaris.zone.login

RBAC を使用中の場合は、このゾーンへの zlogin を認証済みで使用許可します。対話型ログインには solaris.zone.login/zonename の承認が必要です。ゾーン内では、パスワード認証が実行されます。詳細は、zlogin(1) およびOracle Solaris ゾーンの作成と使用 の 第 4 章, 非大域ゾーンへのログインについてを参照してください。

solaris.zone.manage

RBAC を使用中の場合は、構成されたゾーンの通常の管理を許可します。非対話型ログインの場合、またはパスワード認証を省略する場合は、solaris.zone.manage/zonename の承認が必要です。

solaris.zone.clonefrom

RBAC を使用中の場合は、新しいゾーンのクローンを作成するソースとして、指定のゾーンを使用できるようにします。別のゾーンのコピーを作成するサブコマンドは solaris.zone.clonefrom/source_zone の承認を必要とします。

solaris.zone.config

RBAC を使用中の場合は、solaris.zone.config/zonename の承認を使用して、ゾーンの永続的な構成の変更を許可します。永続的な構成の詳細は、Oracle Solaris ゾーンの作成と使用 の 第 6 章, ライブゾーン再構成を参照してください。

solaris.zone.liveconfig

RBAC を使用中の場合は、solaris.zone.liveconfig/zonename の承認を使用して、ライブゾーン構成の検査および変更を許可します。ライブゾーン構成の詳細は、Oracle Solaris ゾーンの作成と使用 の 第 6 章, ライブゾーン再構成を参照してください。

承認の詳細は、auths(1)auth_attr(4)、および user_attr(4) を参照してください。

dedicated-cpu リソース

dedicated-cpu リソースを使用して、非大域ゾーンの実行中に、システムのプロセッサの一部をそのゾーン専用として指定します。ゾーンのブート時に、ゾーンの実行中に使用される一時プールが動的に作成されます。

zonecfg で指定すると、移行時にプールの設定が伝達されます。

dedicated-cpu リソースは、ncpus の制限を設定し、必要に応じて importance も設定します。

ncpus

CPU の数を指定するか、CPU の数の範囲を 2–4 などと指定します。リソースプールの動的な動作を得るために範囲を指定する場合は、次の手順も実行してください。

importance

動的な動作のために CPU 範囲を使用している場合は、importance プロパティーも設定します。importance プロパティーはオプションですが、プールの相対的な重要性を定義します。このプロパティーが必要となるのは、ncpus に範囲を指定した場合で、poold によって管理される動的リソースプールを使用しているときだけです。poold が実行されていない場合、importance は無視されます。poold が実行されている場合、importance が設定されていないと、importance のデフォルトは 1 になります。詳細は、Oracle Solaris 11.3 でのリソースの管理 の pool.importance プロパティーの制約を参照してください。

次のプロパティーを使用して、cpuscores、および sockets に永続的な dedicated-cpu リソースを設定します。

cpus

特定の CPU を永続的にゾーンに割り当てます。

cores

特定のコアを永続的にゾーンに割り当てます。

sockets

指定された数のソケットを永続的に割り当てます。

システムのリブートごとの結果の不整合をなくすには、dedicated-cpu:cpus を使用して、使用する正確な CPU を指定します。ncpus だけを指定する自動 virtual-cpu リソースではなく、dedicated-cpu リソースを使用します。


注 -  capped-cpu リソースと dedicated-cpu リソースには互換性がありません。cpu-shares リソース制御と dedicated-cpu リソースには互換性がありません。

注 -  使用可能な CPU の数に自動的にサイズ設定して拡大縮小するアプリケーションが capped-cpu 制限を認識しないことがあります。すべての CPU が使用可能として認識されると、Oracle データベースや Java 仮想マシン (JVM) などのアプリケーションでスケーリングとパフォーマンスに影響を与える可能性があります。アプリケーションが動作していないか、使用できないように見えることがあります。パフォーマンスが重要である場合は、capped-cpu で JVM を使用しないでください。影響を受けるカテゴリ内のアプリケーションでは dedicated-cpu リソースを使用できます。

solaris-kz のみ: virtual-cpu リソース

カーネルゾーンの仮想 CPU (VCPU) にデフォルト以外の数を割り当てる場合は、virtual-cpu リソースを使用して VCPU の数を設定します。

デフォルトのカーネルゾーン構成の VCPU は 4 つです。各 virtual-cpu は、最大 1 ホスト CPU の演算能力を使用できますが、システム CPU リソースの競合が起きると低下する場合があります。カーネルゾーンに割り当てられる CPU は、ncpus 値によって定義されます。virtual-cpu プロパティーを追加すると、さらに CPU をカーネルゾーンに追加できます。

カーネルゾーンが dedicated-cpu または pool リソースを使用して作成されたプール内にある場合、作成される仮想 CPU の数はそのプールのサイズに適合します。VCPU サイズは FSS 配分の数に基づいていないことに注意してください。

CPU リソースが多数のコンシューマ間で共有されている場合、システムによってカーネルゾーンのすべてまたは一部が「スケジュール解除」される期間が存在することがあります。

窃取時間は、システムが CPU リソースを使用している可能性があるためにカーネルゾーンが実行できない時間を示します。

CPU アカウンティング状態 CMS_STOLEN は、CPU がこの状態にある時間を示します。この時間は、物理ハードウェア上で実行しているシステムでは、常に 0 です。カーネルゾーンの一部として実行している CPU の場合、ゼロ以外のこの状態の値は、仮想 CPU が実際には物理 CPU にアクセスできなかった時間を反映しています。窃取時間は、zonestat(1)mpstat(1M)iostat(1M)vmstat(1M)、およびその他のユーティリティーによって報告されます。

dedicated-cpu リソースがすでに定義されている場合、仮想プラットフォームで構成されている仮想 CPU のデフォルト数は、dedicated-cpu リソース内の ncpus の範囲の下限値と一致します。dedicated-cpuvirtual-cpu のリソースを両方とも設定する必要はありません。

capped-cpu リソース

capped-cpu リソースは、1 つのプロジェクトまたは 1 つのゾーンで消費可能な CPU リソース量に対して絶対的できめの細かい制限を設けます。プロセッサセットと組み合わせて使用すると、CPU キャップはセット内の CPU 使用率を制限します。capped-cpu リソースには、小数点第 2 位までの正の小数である 1 つの ncpus プロパティーがあります。このプロパティーは、CPU のユニット数に対応しています。このリソースには範囲を指定できません。このリソースには小数を指定できます。ncpus を指定する場合、1 の値は 1 つの CPU の 100% を意味します。1.25 の値は 125% を意味します。100% がシステム上の 1 つの CPU の上限となります。


注 -  capped-cpu リソースと dedicated-cpu リソースには互換性がありません。

注 -  使用可能な CPU の数に自動サイズ設定して自動的に拡大縮小するアプリケーションが capped-cpu 制限を認識しないことがあります。すべての CPU が使用可能として認識されると、Oracle データベースや Java 仮想マシン (JVM) などのアプリケーションでスケーリングとパフォーマンスに影響を与える可能性があります。アプリケーションが動作していないか、使用できないように見えることがあります。パフォーマンスが重要である場合は、capped-cpu で JVM を使用しないでください。影響を受けるカテゴリ内のアプリケーションでは dedicated-cpu リソースを使用できます。dedicated-cpu リソースを参照してください。

スケジューリングクラス

公平配分スケジューラ (FSS) では、各ゾーンに対する使用可能な CPU リソースの割り当てを、そのゾーンの重要性に基づいて制御します。この重要性は、各ゾーンに割り当てる CPU リソースの「配分」で表します。CPU リソースのゾーン間での割り当てを管理するために FSS を使用していない場合でも、ゾーン内のプロジェクトに配分を設定するために FSS を使用するよう、ゾーンのスケジューリングクラスを設定することができます。

cpu-shares プロパティーを明示的に設定すると、公平配分スケジューラ (FSS) はそのゾーンのスケジューリングクラスとして使用されます。ただし、この場合に望ましい FSS の使用方法は、dispadmin コマンドを使用して、FSS をシステムのデフォルトのスケジューリングクラスに設定する方法です。このようにすると、すべてのゾーンがシステムの CPU リソースの公平配分を受けることができます。ゾーンに対して cpu-shares が設定されていない場合、そのゾーンはシステムのデフォルトのスケジューリングクラスを使用します。ゾーンのスケジューリングクラスは、次の処理によって設定されます。

  • zonecfgscheduling-class プロパティーを使ってゾーンのスケジューリングクラスを設定できます。

  • リソースプール機能を使ってゾーンのスケジューリングクラスを設定できます。ゾーンがプールに関連付けられている場合、そのプールの pool.scheduler プロパティーに有効なスケジューリングクラスが設定されていれば、ゾーンで実行されるプロセスは、デフォルトでそのスケジューリングクラスで実行されます。Oracle Solaris 11.3 でのリソースの管理 の リソースプールの紹介およびOracle Solaris 11.3 でのリソースの管理 の プールをスケジューリングクラスに対応付ける方法を参照してください。

  • cpu-shares リソース制御が設定されている場合で、別のアクションを通じて FSS がゾーンのスケジューリングクラスとして設定されていないときは、ゾーンのブート時に zoneadmd によってスケジューリングクラスが FSS に設定されます。

  • ほかの処理を通してスケジューリングクラスが設定されていない場合、ゾーンはシステムのデフォルトのスケジューリングクラスを継承します。

priocntl コマンド (priocntl(1) のマニュアルページに記載) を使用すると、デフォルトのスケジューリングクラスの変更やリブートを行うことなく、実行中のプロセスを別のスケジューリングクラスに移動できます。

capped-memory リソースと物理メモリーの制御

capped-memory リソースを使用するには、resource-cap パッケージが大域ゾーン内にインストールされている必要があります。リソースタイプとプロパティーの capped-memory も参照してください。

solaris ゾーンと capped-memory リソース

ネイティブ (solaris) ブランドゾーンの場合、capped-memory リソースは、physicalswap、および locked メモリープロパティーの制限を設定します。各制限はオプションですが、少なくとも 1 つは設定する必要があります。

  • 大域ゾーンから rcapd を使用してネイティブゾーンのメモリー上限を設定する場合は、physical プロパティーの値を決定します。capped-memory リソースの physical プロパティーは、ゾーンの max-rss 値として rcapd で使用されます。

    capped-memory リソースの physical プロパティーは、rcapd によって強制される弱い RAM 割り当て制限を表します。ゾーンが物理的な限度に達しても、そのゾーンは RAM の割り当てを続行できますが、システムで全体的なメモリー不足が起きていない場合でも、スワップデバイスへのページングが行われます。ページングは大量の I/O を生じさせる場合があるため、システム上のほかの操作に悪影響を与える可能性があります。一方、スワップは制限しても、システムのページングアクティビティーに直接の影響はありません。physical を設定せずに swap を設定すると、ネイティブゾーンで使用されるメモリーの量を効果的に制限できます。

  • ゾーンによって割り当て可能なスワップの量を制限するときには、ゾーンによって割り当て可能な RAM の量も制限します。ゾーンは、スワップよりも多くの RAM を割り当てることはできません。ゾーンがそのスワップ限度に達すると、システムで全体的なメモリー不足が起きていない場合でも、ゾーンでの新規メモリー割り当ては失敗します。

    capped-memory リソースの swap プロパティーは、ネイティブゾーンの zone.max-swap リソース制御を設定するための望ましい方法です。

  • capped-memory リソースの locked プロパティーは、ネイティブゾーンの zone.max-locked-memory リソース制御を設定するための望ましい方法です。


注 -  通常はアプリケーションが多量のメモリーをロックすることはありませんが、ゾーンのアプリケーションによってメモリーがロックされることがわかっている場合は、ロックされるメモリーを設定するとよいでしょう。ゾーンの信頼が問題になる場合は、ロックされるメモリーの上限を、システムの物理メモリーの 10 パーセントまたはゾーンの物理メモリー上限の 10 パーセントに設定することもできます。

詳細は、Oracle Solaris 11.3 でのリソースの管理 の 第 10 章, リソース上限デーモン (rcapd) による物理メモリーの制御についてOracle Solaris 11.3 でのリソースの管理 の 第 11 章, リソース上限デーモンの管理のタスク、およびOracle Solaris ゾーンの作成と使用 の ゾーンの構成方法を参照してください。ゾーンのリソース上限を一時的に設定するには、Oracle Solaris 11.3 でのリソースの管理 の ゾーンに一時的なリソース上限を指定する方法を参照してください。

solaris-kz ゾーンと capped-memory リソース

カーネルゾーンの場合、physical プロパティーは必須です。physical は、カーネルゾーンのメモリー用に予約された RAM の容量を表します。physical プロパティーを指定する場合は、物理メモリーでラージページを使用するためのポリシーを設定する、pagesize-policy プロパティーも指定するようにしてください。

physical に設定された値によって、ブートが成功するかどうかが決まります。物理マシンが 1G ページをサポートしている場合でも physical が 2M に設定されていると、ホストはより大きいページサイズをサポートしていますが、physical の値が使用されます。したがって、pagesize-policy=largest-available を使用したブートは成功します。

物理マシン上で使用可能なページサイズを判別するには、次のように入力します。

user% pagesize -a

デフォルトの solaris-kz テンプレートは、pagesize-policy を推奨値である largest-available に設定します。カーネルゾーンでは、swap および locked の制限は許可されません。rcapd ユーティリティーは使用されません。ライブゾーン再構成はサポートされていません。

プロパティーのシステムサポートを判別するには、次のコマンドを使用します。

# zoneadm migrate -n

pagesize-policy プロパティーをサポートしていない Oracle Solaris システムは、デフォルト値として compatible を使用します。このポリシーをクリアする必要があるのは、古い Oracle Solaris インスタンスからライブ移行する場合と、古い Oracle Solaris インスタンスでカーネルゾーンを再開する場合だけです。

pagesize-policy プロパティーの値は、リソースタイプのプロパティーで説明されています。

詳細については、solaris-kz(5) のマニュアルページも参照してください。

solaris および solaris10 のみ: npiv リソース

npiv リソースは、Oracle Solaris ゾーンおよび Oracle Solaris 10 ゾーンの N_Port_ID Virtualization (NPIV) をサポートしています。npiv リソースは、ゾーンのルートファイルシステムに対するバックエンドストレージとしてファイバチャネルデバイスを持ち、データに対してほかのデバイスを使用するゾーンを構成するために使用されます。

次の例では、2 つの npiv リソースをゾーン my-zone に委任します。virtual-port-wwnover-hba はどちらもオプションです。2 つの npiv ポートが、ゾーンのインストール時に自動的に作成されます。

zonecfg:my-zone> add npiv
     zonecfg:my-zone:npiv> set virtual-port-wwn=2100000000000001
     zonecfg:my-zone:npiv> set over-hba=c9
     zonecfg:my-zone:npiv> end
     zonecfg:my-zone> add npiv
     zonecfg:my-zone:npiv> end
     zonecfg:my-zone:>

NPIV ポートから認識できるディスクは、ゾーン内部でも認識できます。ファブリックに追加されたディスクは、自動的にゾーン内から認識できます。ファブリックから削除されたディスクは、自動的にゾーンビューから削除されます。

virtual-port-wwn プロパティータイプは npiv リソースタイプではオプションです。作成される npiv のポート World Wide Name (PWWN) が含まれます。ユーザーが指定しない場合、ポートは自動的に生成されます。デフォルトの virtual-port-wwn プロパティー値をオーバーライドするには、npiv リソーススコープ内から次のコマンドを使用します。

zonecfg:my-zone:npiv> set virtual-port-wwn=World Wide Name
    
  

zonecfg コマンドは、文字列が有効であることを確認します。

solaris および solaris10 のみ: rootzpool リソース

zonecfg ユーティリティーのオプションの rootzpool リソースは、solaris および solaris10 ブランドゾーンのゾーンインストール用に専用の zpool を作成するために使用されます。ゾーンのルート zpool は、1 つ以上の URI (Universal Resource Identifier) によって定義された共有ストレージデバイスでホストできます。必須の storage プロパティーは、ゾーンのルート zfs ファイルシステムを格納するストレージオブジェクトの URI を識別します。特定のゾーンに対して定義できる rootzpool は 1 つだけです。このストレージは、ゾーンがブートされたときに、そのゾーンのために自動的に構成されます。

対応する zpool は、ゾーンのインストールまたはゾーンの接続操作中に自動的に作成またはインポートされます。rootzpool と zpool の両方のリソースで、ゾーンがインストールされるとすぐに zpool ミラーを自動的に作成できます。詳細は、Oracle Solaris ゾーンの作成と使用 の 第 13 章, 共有ストレージでの Oracle Solaris ゾーンの使用開始を参照してください。

ゾーンのアンインストールまたは切り離しを行うと、次のアクションが実行されます。

  • 対応する zpool が自動的にエクスポートまたは破棄されます。

  • ストレージリソースが自動的に構成解除されます。

事前作成済みの zpool をゾーンのインストールに再利用するには、zpool をシステムからエクスポートする必要があります。

ゾーンのフレームワークでは、次の URI タイプがサポートされています。

  • dev

    ローカルデバイスパスの URI

    形式:

    dev:local-path-under-/dev
    dev://absolute-path-with-dev
    dev:absolute-path-with-dev

    例:

    dev:dsk/c7t0d0s0
    dev:///dev/dsk/c7t0d0s0
    dev:/dev/dsk/c7t0d0s0
    dev:chassis/SYS/HD1/disk
  • lu (論理ユニット)

    ファイバチャネル (FC) および Serial Attached SCSI (SAS)

    形式:

    lu:luname.naa.ID
    lu:luname.eui.ID
    lu:initiator.naa.ID,target.naa.ID,luname.naa.ID
    lu:initiator.naa.ID,target.naa.ID,luname.eui.ID

    例:

    lu:luname.naa.5000c5000288fa25
    lu:luname.eui.0021280001cf80f6
    lu:initiator.naa.2100001d38089fb0,target.naa.2100001d38089fb0,luname.naa.5000c5000288fa25
    lu:initiator.naa.2100001d38089fb0,target.naa.2100001d38089fb0,luname.eui.0021280001cf80f6 
  • iscsi

    iSCSI の URI

    形式:

    iscsi:///luname.naa.ID
    iscsi:///luname.eui.ID
    iscsi://host[:port]/luname.naa.ID
    iscsi://host[:port]/luname.eui.ID
    iscsi:///target.IQN,lun.LUN
    iscsi://host[:port]/target.IQN,lun.LUN 

    例:

    iscsi:///luname.eui.0021280001cf80f6
    iscsi:///luname.naa.600144f03d70c80000004ea57da10001
    iscsi://[::1]/luname.naa.600144f03d70c80000004ea57da10001
    iscsi://127.0.0.1/luname.naa.600144f03d70c80000004ea57da10001
    iscsi://hostname:1234/luname.eui.0021280001cf80f6
    iscsi://hostname:3260/luname.naa.600144f03d70c80000004ea57da10001
    
    iscsi://127.0.0.1/target.iqn.com.sun:02:d0f2d311-f703,lun.0
    iscsi:///target.iqn.com.sun:02:d0f2d311-f703,lun.6
    iscsi://[::1]:1234/target.iqn.com.sun:02:d0f2d311-f703,lun.2
    iscsi://hostname:1234/target.iqn.com.sun:4db41b76-e3d7-cd2f-bf2d-9abef784d76c,lun.0 

ストレージの URI に基づいて共有オブジェクトを管理するには、suriadm ツールを使用します。ID、NAA (Name Address Authority)、および既存のストレージオブジェクトの URI の取得については、suriadm(1M) および suri(5) のマニュアルページを参照してください。

システムは、関連するゾーンに対して新規作成またはインポートされた rootzpool に名前を割り当てます。割り当てられる名前は、zonename_rpool という形式になります。

storage プロパティーは、rootzpool リソーススコープ内から次のコマンドを使用して管理されます。

  • add storage URI string

  • remove storage URI string

zpool リソースの自動追加

zpool を非大域ゾーンに委任するには、zonecfg ユーティリティーでオプションの zpool リソースを構成します。zpool は、ゾーンがブートされたときに、そのゾーンのために自動的に構成されます。

対応する zpool は、ゾーンのインストールまたはゾーンの接続操作中に自動的に作成またはインポートされます。

ゾーンのアンインストールまたは切り離しを行うと、次のアクションが実行されます。

  • 対応する zpool が自動的にエクスポートまたは破棄されます。

  • ストレージリソースが自動的に構成解除されます。

必須の storage プロパティーは、このリソースに関連付けられたストレージオブジェクトの URI を識別します。

storage プロパティーは、zpool リソーススコープ内の次の設定を使用して管理されます。

  • add storage URI string

  • remove storage URI string

zpool リソースには name プロパティーが必須です。このプロパティーは、ゾーンに委任される zpool の名前で使用されます。ZFS ファイルシステムの name コンポーネントにスラッシュ (/) を含めることはできません。

新規作成またはインポートされた zpool に割り当てられる名前は、name プロパティーの値です。これは、非大域ゾーン内で表示可能な zpool 名です。新規作成またはインポートされた zpool 名に割り当てられる名前は、大域ゾーンから表示される際には zonename_name という形式になります。


注 -  ストレージオブジェクトに既存のパーティション、zpool、または UFS ファイルシステムが含まれている場合は、ゾーンのインストールが失敗することがあります。詳細は、Oracle Solaris ゾーンの作成と使用 の 構成済みのゾーンをインストールする方法の手順 4 を参照してください。

solaris-kz SPARC のみ: カーネルゾーンの移行クラスとホスト互換性レベル

カーネルゾーンから見えるのは、移行クラスとホスト互換性レベルの両方によって有効になっている機能だけです。カーネルゾーンを移行するには、カーネルゾーンから見える機能がソースとターゲットの両方のホストで同じになるように、移行クラスの cpu-arch および host-compatible プロパティーを構成する必要があります。

設定されていない場合は、cpu-arch のデフォルト値は native です。ゾーンは、ホストと同じ CPU クラスでブートします。ホストの CPU クラスと互換性のある CPU タイプ間でゾーンを移行できます。デフォルトでは、カーネルゾーンの SSM (Silicon Secured Memory) (ADI とも呼ばれる) はオフになっています。

solaris-kz SPARC のみ: CPU 間の移行

特定の CPU クラスでカーネルゾーンを構成するには、cpu-arch グローバルプロパティーを使用します。CPU クラスは、ホスト CPU クラスとは無関係にできるため、異なる CPU タイプ間で安全に移行できます。特定のクラスを使用して Oracle VM Server for SPARC ゲストドメインをブートする場合、互換性のある CPU タイプのすべてのプラットフォーム間で、ゲストを安全に移行できます。カーネルゾーンは、ゲストドメインと同じ CPU クラスのセットを使用します。

設定されていない場合は、cpu-arch のデフォルト値は native です。ゾーンは、ホストと同じ CPU クラスでブートします。ホストの CPU クラスと互換性のある CPU タイプ間でゾーンを移行できます。

互換性のないプラットフォームでは、ホストはこれまでに中断したゾーンを再開しません。また、ホストのプラットフォームに対して移行クラスが互換性のない値に設定されている場合も、ホストはゾーンをブートしません。たとえば、cpu-archsparc64-class1 に設定されている場合、T5 上のゲストはブートしません。ゾーンの CPU クラスは、ホストの CPU クラスの限度を超えることはできません。

generic クラスでブートしたカーネルゾーンは、SPARC T4 以前のシステムに移行できません。カーネルゾーンは、SPARC T4 と Fujitsu M10、または SPARC M10 以降のサポート対象のシステム上で実行します。

cpu-arch=generic|migration-class1|sparc64-class1

値は次のとおりです。

generic

カーネルゾーンは、T4 よりも新しいシステム間で、CPU タイプとは関係なく移行を実行できます。

migration-class1

カーネルゾーンは SPARC T4、SPARC T5、SPARC T7、SPARC S7、SPARC M5、SPARC M6、および SPARC M7 の間で CPU タイプ間移行を実行できます。

sparc64-class1

カーネルゾーンは Fujitsu M10 と SPARC M10 の間で、CPU タイプ間移行を実行できます。

cpu-arch プロパティーの設定および確認:

    # zonecfg -z vzl         
    zonecfg:vzl> info cpu-arch
    cpu-arch: generic         
    zonecfg:vzl> set cpu-arch=migration-class1
    zonecfg:vzl> info cpu-arch         
    cpu-arch: migration-class1         
    zonecfg:vzl>
    exit
  

solaris-kz SPARC のみ: host-compatible プロパティー

SSM (Silicon Secured Memory) 機能 (ADI とも呼ばれる) を有効にするには、host-compatible プロパティー adi を使用します。デフォルトでは、カーネルゾーンの SSM はオフになっています。SSM を有効にするには、host-compatible 修飾子を設定する必要があります。大域ゾーンでは、SSM 対応のハードウェア上で SSM は常にオンになります。

値が設定されていない場合、カーネルゾーンのデフォルトのホスト互換性レベルには、Oracle Solaris 11.2 リリースでサポートされている機能のみが含まれます。

現在のバージョンの Oracle Solaris にある SSM などのすべての機能をサポートするには、native ホスト互換性レベルを設定します。native ホスト互換性レベルでは、別のリリースの Oracle Solaris を実行しているホストにカーネルゾーンを移行できない場合があることに注意してください。

host-compatible=native

SSM 機能を有効にするには、adi 修飾子を設定します。adi 修飾子はデフォルトの互換性レベルでのみ使用できます。

host-compatible=adi 

移行クラスで SSM 機能がサポートされていない場合、host-compatible 修飾子を使用して SSM を有効にすることはできません。

ゾーンネットワークインタフェース

ネットワーク接続を提供するために zonecfg ユーティリティーによって構成されるゾーンネットワークインタフェースは、ゾーンのブート時に自動的に設定されてゾーン内に配置されます。

インターネットプロトコル (IP) 層は、ネットワークのパケットの受信と配信を行います。この層には、IP ルーティング、アドレス解決プロトコル (ARP)、IP セキュリティーアーキテクチャー (IPsec)、および IP フィルタが含まれます。

非大域ゾーンに使用できる IP タイプには、共有 IP と排他的 IP の 2 種類があります。排他的 IP がデフォルトの IP タイプです。共有 IP ゾーンは、大域ゾーンとネットワークインタフェースを共有します。大域ゾーン内の構成は、共有 IP ゾーンを使用するために ipadm ユーティリティーによって実行する必要があります。排他的 IP ゾーンには専用のネットワークインタフェースが必要です。anet リソースを使用して排他的 IP ゾーンを構成すると、専用の VNIC が自動的に作成され、そのゾーンに割り当てられます。自動化された anet リソースを使用することによって、大域ゾーン内にデータリンクを作成および構成し、非大域ゾーンにデータリンクを割り当てる必要がなくなります。次のことを行うには、anet リソースを使用します。

  • 大域ゾーンの管理者が、非大域ゾーンに割り当てられたデータリンク用の特定の名前を選択できるようにする

  • 複数のゾーンで同じ名前のデータリンクを使用できるようにする

あるアドレスを自動的は構成する必要があり、ほかのアドレスはゾーン内でオンラインおよびオフラインにできる必要がある場合、複数の anet リソースを使用できます。たとえば、次の構成には、2 つの anet リソースがあります。最初のリソースは、ゾーンのいずれかのインタフェースで 192.168.3.3 を自動的に構成します。2 番目のリソースでは、ゾーンは、別のインタフェース上で 192.168.3.100 および 192.168.3.101 のみを構成できます。

    zonecfg:t> select anet linkname=net0         
    zonecfg:t:anet> set allowed-address=192.168.3.3/24         
    zonecfg:t:anet> set configure-allowed-address=true         
    zonecfg:t:anet> end        
    zonecfg:t> add anet         
    zonecfg:t:anet> set allowed-address=192.168.3.100/24,192.168.3.101/24         
    zonecfg:t:anet> set configure-allowed-address=false         
    zonecfg:t:anet> end        
    zonecfg:t>
  

下位互換性を維持するために、事前構成済みのデータリンクを非大域ゾーンに割り当てることができます。

各タイプの IP 機能については、Oracle Solaris ゾーンの作成と使用 の 排他的 IP 非大域ゾーンにおけるネットワークおよびOracle Solaris ゾーンの作成と使用 の 共有 IP 非大域ゾーンにおけるネットワークを参照してください。


注 -  ゾーンを実行するシステムで、Oracle Solaris 11.3 でのネットワークのセキュリティー保護で説明されているリンク保護を使用できます。この機能は、大域ゾーン内で構成されます。

データリンクについて

データリンクとは、OSI プロトコルスタックのレイヤー 2 物理インタフェースのことです。このインタフェースは、システム内で STREAMS DLPI (v2) インタフェースとして表されます。このようなインタフェースは、TCP/IP などのプロトコルスタックの下で接続できます。データリンクは、「物理インタフェース」 (たとえば、ネットワークインタフェースカード (NIC)) とも呼ばれます。データリンクは、zonecfg (1M) を使用して構成される physical プロパティーです。physical プロパティーは VNIC でもかまいません。

Oracle Solaris 11 のデフォルトでは、物理ネットワークデバイス名は、nxge0 などのデバイスドライバ名ではなく、net0 などの総称名を使用します。

ゾーンでの IPoIB (IP over Infiniband) の使用については、リソースタイプのプロパティーanet の説明を参照してください。

エラスティック仮想スイッチとゾーンについて

evs および vport プロパティーを設定してエラスティック仮想スイッチ (EVS) に接続する anet リソースでは、その anet リソースのプロパティーは、evsvport のペア内にカプセル化されます。EVS anet リソースの次のプロパティーは変更できません。

  • mac-address

  • mtu

  • maxbw

  • priority

  • allowed-address

  • vlan-id

  • defrouter

  • lower-link

EVS anet リソースに設定できる唯一のプロパティーは次のとおりです。

  • linkname

  • evs

  • vport

  • configure-allowed-address

tenant リソースを設定する必要もあります。テナントは、名前空間の管理に使用されます。tenant 内で定義されている EVS リソースは、そのテナントの名前空間の外部からは見えません。

evszone という名前のゾーンの次の入力は、tenantA という名前のテナントの tenant リソースを設定します。zonecfg anet リソースプロパティーは、evsa という名前の EVS および vport0 という名前の VPort に接続する anet リソースを持つゾーンの VNIC を作成します。

zonecfg:evszone> set tenant=tenantA

zonecfg:evszone> add anet

zonecfg:evszone> set evs=EVSA

zonecfg:evszone> set vport=vport0

詳細は、Oracle Solaris 11.3 での仮想ネットワークとネットワークリソースの管理 の 第 5 章, エラスティック仮想スイッチについてを参照してください。

共有 IP 非大域ゾーン

共有 IP ゾーンは、大域ゾーンからの既存の IP インタフェースを使用します。ゾーンには、1 つ以上の専用の IP アドレスが存在する必要があります。共有 IP ゾーンは、IP 層の構成と状態を大域ゾーンと共有します。次の両方の条件が満たされる場合、ゾーンは共有 IP インスタンスを使用すべきです。

  • 大域ゾーンと非大域ゾーンが同じサブネット上に存在するかどうかに関係なく、非大域ゾーンが大域ゾーンによって使用されるデータリンクと同じデータリンクを使用する計画である。

  • 排他的 IP ゾーンによって提供されるその他の機能は必要でない。

共有 IP ゾーンには、zonecfg コマンドの net リソースを使用して、1 つ以上の IP アドレスを割り当てます。大域ゾーンでデータリンク名も構成する必要があります。

zonecfg net リソースで、addressphysical のプロパティーを設定する必要があります。defrouter プロパティーはオプションです。

大域ゾーン内で共有 IP タイプのネットワーク接続構成を使用するには、自動ネットワーク構成ではなく ipadm を使用する必要があります。ネットワーク接続構成を ipadm によって行うかどうかを決定するには、次のコマンドを実行します。表示される応答は、DefaultFixed でなければなりません。

# svcprop -p netcfg/active_ncp svc:/network/physical:default
DefaultFixed

共有 IP ゾーンに割り当てられる IP アドレスは、論理ネットワークインタフェースに関連付けられます。

大域ゾーンから ipadm コマンドを使用すると、稼働中のゾーンの論理インタフェースの割り当てまたは削除を行うことができます。

インタフェースを追加するには、次のコマンドを使用します。

global# ipadm set-addrprop -p zone=my-zone net0/addr1

インタフェースを削除するには、次のコマンドのいずれかを使用します。

global# ipadm set-addrprop -p zone=global net0/addr

または

global# ipadm reset-addrprop -p zone net0/addr1 

詳細は、Oracle Solaris ゾーンの作成と使用 の 共有 IP ネットワークインタフェースを参照してください。

排他的 IP 非大域ゾーン

排他的 IP は、非大域ゾーンのデフォルトのネットワーク接続構成です。

排他的 IP ゾーンには、独自の IP に関連付けられた状態と 1 つ以上の専用のデータリンクが保持されます。

排他的 IP ゾーン内では、次の各機能を使用できます。

  • DHCPv4 および IPv6 ステートレスアドレスの自動構成

  • IP フィルタ。ネットワークアドレス変換 (NAT) 機能も含む

  • IP ネットワークマルチパス (IPMP)

  • IP ルーティング

  • TCP/UDP/SCTP および IP/ARP レベルのチューニング可能パラメータを設定するための ipadm

  • IP セキュリティー (IPsec) と Internet Key Exchange (IKE)。これは、IPsec セキュリティーアソシエーション用の認証済み鍵材料のプロビジョニングを自動化する

排他的 IP ゾーンを構成する方法には、次の 2 つがあります。

  • zonecfg ユーティリティーの anet リソースを使用して、ゾーンのブート時にゾーンに対して一時的な VNIC を自動的に作成し、またゾーンの停止時にそれを削除します。

  • 大域ゾーン内にデータリンクを事前構成し、排他的 IP ゾーンにそれを割り当てます。これは、zonecfg ユーティリティーの net リソースを使用して行います。データリンクは、net リソースの physical プロパティーを使用して指定します。physical プロパティーは VNIC でもかまいません。net リソースの address プロパティーは設定されません。

    データリンクを割り当てると snoop コマンドが使用可能になります。

排他的 IP ゾーンは、デフォルトでは関連付けられたインタフェース上のすべての IP アドレスを構成および使用できます。必要に応じて、allowed-address プロパティーを使用して IP アドレスのコンマ区切りリストを指定することもできます。排他的 IP ゾーンは、allowed-address リスト内にない IP アドレスを使用することはできません。また、ゾーンのブート時に、allowed-address リスト内のすべてのアドレスが排他的 IP ゾーンに対して自動で持続的に構成されます。このインタフェース構成が不要な場合、configure-allowed-address プロパティーを false に設定する必要があります。デフォルト値は true です。

あるアドレスは自動的に構成する必要があり、またあるアドレスはゾーン内でオンラインおよびオフラインにできる必要がある場合、複数の anet リソースを使用できます。たとえば、次の構成には、2 つの anet リソースがあります。最初の anet リソースは、ゾーンのいずれかのインタフェースでアドレス 192.168.3.3 を自動的に構成します。2 番目の anet リソースでは、ゾーンは別のインタフェース上で 192.168.3.100 および 192.168.3.101 のみを構成できます。

    zonecfg:t> select anet linkname=net0         
    zonecfg:t:anet> set allowed-address=192.168.3.3/24         
    zonecfg:t:anet> set configure-allowed-address=true         
    zonecfg:t:anet> end        
    zonecfg:t> add anet         
    zonecfg:t:anet> set allowed-address=192.168.3.100/24,192.168.3.101/24         
    zonecfg:t:anet> set configure-allowed-address=false         
    zonecfg:t:anet> end        
    zonecfg:t>
  

dladm コマンドを show-linkprop サブコマンドとともに使用すると、実行中の排他的 IP ゾーンに対するデータリンクの割り当てを表示できます。dladm コマンドを set-linkprop サブコマンドとともに使用すると、実行中のゾーンに対して追加のデータリンクを割り当てることができます。使用例については、Oracle Solaris ゾーンの作成と使用 の 排他的 IP 非大域ゾーンでのデータリンクの管理を参照してください。

独自のデータリンクセットが割り当てられた、実行中の排他的 IP ゾーン内では、ipadm コマンドを使用して IP を構成できます。このコマンドには、論理インタフェースの追加または削除を行う機能が備わっています。ゾーンの IP 構成は、大域ゾーン内の場合と同様に sysconfig インタフェース (sysconfig(1M) のマニュアルページに記載) を使用して設定できます。

排他的 IP ゾーンの IP 構成は、大域ゾーンから zlogin コマンドを使用することによってのみ表示できます。

global# zlogin zone1 ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
nge0/v4           dhcp     ok           10.134.62.47/24
lo0/v6            static   ok           ::1/128
nge0/_a           addrconf ok           fe80::2e0:81ff:fe5d:c630/10

非大域ゾーンでの Reliable Datagram Sockets のサポート

RDS (Reliable Datagram Sockets) IPC プロトコルは、排他的 IP 非大域ゾーンと共有 IP 非大域ゾーンの両方でサポートされています。RDSv3 ドライバは、SMF サービス rds として有効になっています。デフォルトでは、このサービスはインストール後に無効になります。このサービスは、適切な承認を付与されたゾーン管理者が特定の非大域ゾーン内で有効にすることができます。zlogin のあとで、rds をそれが実行される各ゾーン内で有効にできます。

使用例 4  非大域ゾーン内で rds サービスを有効にする方法
  1. 排他的 IP ゾーンまたは共有 IP ゾーン内で RDSv3 サービスを有効にするには、zlogin コマンドでゾーンにログインし、svcadm enable コマンドを実行します。

    # svcadm enable rds
  2. rds が有効になっていることを確認します。

    # svcs rds
        STATE          STIME    FMRI
        online         22:50:53 svc:/system/rds:default

詳細は、svcadm(1M) のマニュアルページを参照してください。

共有 IP 非大域ゾーンと排他的 IP 非大域ゾーンのセキュリティーの相違

共有 IP ゾーン内のアプリケーションは、スーパーユーザーも含め、zonecfg ユーティリティーを介してゾーンに割り当てられた IP アドレス以外をソース IP アドレスとしてパケットを送信することはできません。このタイプのゾーンには、任意のデータリンク (レイヤー 2) パケットを送受信するアクセス権はありません。

一方、排他的 IP ゾーンの場合は、zonecfg によって指定されたデータリンク全体がゾーンに対して許可されます。結果として、排他的 IP ゾーン内では、root ユーザーまたは必要な権利プロファイルを持つユーザーは、大域ゾーン内と同様に、それらのデータリンク上でなりすましのパケットを送信できます。IP アドレスのなりすましは、allowed-address プロパティーを設定することによって使用不可にできます。anet リソースの場合、link-protection プロパティーを設定することによって、mac-nospoofdhcp-nospoof などの追加の保護を有効にできます。

共有 IP 非大域ゾーンと排他的 IP 非大域ゾーンの同時使用

共有 IP ゾーンは常に IP 層を大域ゾーンと共有し、排他的 IP ゾーンは常に独自の IP 層インスタンスを持っています。共有 IP ゾーンと排他的 IP ゾーンの両方を同じシステムで使用できます。

ゾーンでマウントされるファイルシステム

各ゾーンには、デフォルトでそのゾーンに委任された ZFS データセットが保持されています。このデフォルトの委任されたデータセットは、デフォルトの大域ゾーンのデータセットレイアウトのデータセットレイアウトを模倣します。 .../rpool/ROOT というデータセットは、ブート環境を含んでいます。このデータセットは、直接操作しないでください。存在する必要がある rpool データセットは、デフォルトで .../rpool にマウントされます。.../rpool/export、および .../rpool/export/home データセットは /export/export/home にマウントされます。これらの非大域ゾーンのデータセットは、対応する大域ゾーンのデータセットと使用方法が同じで、同様に管理できます。ゾーン管理者は、.../rpool.../rpool/export、および .../rpool/export/home のデータセット内に追加のデータセットを作成できます。

zfs(1M) のマニュアルページで説明されている zfs コマンドを使用して、ゾーンの rpool/ROOT ファイルシステムから始まる階層内でファイルシステムの作成、削除、または名前変更を行うべきではありませんzfs コマンドは、canmountmountpointsharesmbzonedcom.oracle.*:*com.sun:*、および org.opensolaris.*.*. 以外のプロパティーを設定するために使用できます。

通常、ゾーンでマウントされるファイルシステムには、次のものが含まれます。

  • 仮想プラットフォームの初期化時にマウントされる一連のファイルシステム

  • アプリケーション環境自体の内部からマウントされる一連のファイルシステム

これらのセットには、たとえば次のようなファイルシステムが含まれます。

  • none または legacy 以外の mountpoint があり、また canmount プロパティーに yes の値が保持された ZFS ファイルシステム。

  • ゾーンの /etc/vfstab ファイルで指定されたファイルシステム。

  • AutoFS によるマウントおよび AutoFS によってトリガーされるマウント。autofs プロパティーは、sharectl (sharectl(1M) に記載) を使用して設定します。

  • ゾーン管理者が明示的に実行するマウント

    また、稼働中のネイティブゾーン内でのファイルシステムのマウント権限は、zonecfg fs-allowed プロパティーで定義します。このプロパティーは、zonecfg add fs リソースまたは add dataset リソースを使用してゾーンにマウントされたファイルシステムには適用されません。デフォルトでは、ゾーンのデフォルトの委任されたデータセットである hsfs ファイルシステム内でのファイルシステム、および NFS などのネットワークファイルシステムのマウントだけが、ゾーン内で許可されます。


    Caution

    注意  - アプリケーション環境内部から実行される、デフォルト以外のマウントには、いくつかの制限事項があります。これらの制限事項は、ほかのゾーンに悪影響を与えないようにするために、ゾーン管理者がシステムのほかの部分に対するサービスを拒否できないようにします。


一部のファイルシステムについては、ゾーン内部からマウントする場合にセキュリティー制限があります。ほかのファイルシステムは、ゾーン内でマウントされたときに特有の動作を行います。詳細は、Oracle Solaris ゾーンの作成と使用 の ファイルシステムと非大域ゾーンを参照してください。

データセットの詳細は、datasets(5) のマニュアルページを参照してください。BE の詳細は、Oracle Solaris 11.3 ブート環境の作成と管理を参照してください。

ファイルシステムのマウントと更新

pkg(5) のマニュアルページで説明されているように、ゾーンのシステムイメージの一部であるファイル、シンボリックリンク、またはディレクトリを非表示にしてファイルシステムをマウントする方法はサポートされていません。/usr/local に内容を提供するパッケージがインストールされていない場合は、/usr/local にファイルシステムをマウントすることが許容されます。しかし、いずれかのパッケージ (SVR4 パッケージを含む) が /usr/local で始まるパスにファイル、ディレクトリ、またはシンボリックリンクを提供する場合は、/usr/local へのファイルシステムのマウントはサポートされません。/mnt へのファイルシステムの一時的なマウントはサポートされています。

ゾーン内でファイルシステムがマウントされる順序のため、/export がゾーンの rpool/export データセットまたは別の委任されたデータセットに由来する場合は、fs リソースが /export/filesys にファイルシステムをマウントすることはできません。

ゾーン内のホスト ID

非大域ゾーンでは、大域ゾーンの hostid とは異なる hostid プロパティーを設定できます。これはたとえば、別のシステム上のゾーンに移行された物理マシンなどの場合に行います。このゾーン内に現在あるアプリケーションは、元の hostid に依存している場合があります。詳細は、リソースタイプとプロパティーを参照してください。

非大域ゾーンの /dev ファイルシステム

zonecfg コマンドは、規則照合方式を使って、特定のゾーンにどのデバイスを配置するかを指定します。いずれかのルールに一致するデバイスは、ゾーンの /dev ファイルシステムに含まれます。詳細は、Oracle Solaris ゾーンの作成と使用 の ゾーンの構成方法を参照してください。

非大域ゾーンのリムーバブル lofi デバイス

リムーバブルループバックファイル (lofi) デバイスは、CD-ROM デバイスのように機能し、非大域ゾーンに構成できます。デバイスがマップするファイルを変更したり、複数の lofi デバイスを作成して、同じファイルを読み取り専用モードで使用したりできます。このタイプの lofi デバイスを作成するには、lofiadm コマンドを –r オプションとともに使用します。作成時にファイル名は必要ありません。リムーバブル lofi デバイスのライフサイクル中は、ファイルを空のデバイスに関連付けたり、空でないデバイスからファイルの関連付けを解除したりできます。1 つのファイルを同時に複数のリムーバブル lofi デバイスに安全に関連付けることができます。リムーバブル lofi デバイスは読み取り専用です。通常の読み取り/書き込み lofi デバイスまたはリムーバブル lofi デバイスにマップされたファイルを再マッピングすることはできません。潜在的な lofi デバイスの数は、大域ゾーンで zonecfg コマンドを使用して設定できる zone.max-lofi リソース制御によって制限されます。

作成後のリムーバブル lofi デバイスは読み取り専用です。リムーバブル lofi デバイスに対して書き込み操作が行われると、lofi ドライバはエラーを返します。

lofiadm コマンドは、リムーバブル lofi デバイスを一覧表示する場合にも使用します。

使用例 5  関連するファイルを含むリムーバブル lofi デバイスを作成する
# lofiadm -r /path/to/file 
/dev/lofi/1
使用例 6  空のリムーバブル lofi デバイスを作成する
# lofiadm -r 
/dev/lofi/2
使用例 7  リムーバブル lofi デバイスにファイルを挿入する
# lofiadm -r /path/to/file /dev/lofi/1
/dev/lofi/1

詳細は、lofiadm(1M)zonecfg(1M)、および lofi(7D) のマニュアルページを参照してください。表 3も参照してください。

非大域ゾーン内でのディスク形式のサポート

ディスクのパーティション分割と uscsi コマンドの使用は、zonecfg ツールを使用すると有効になります。例については、Resource Type Propertiesリソースタイプのプロパティー を参照してください。uscsi コマンドの詳細は、uscsi(7I) を参照してください。

  • 委任は、solaris ゾーンでサポートされるだけです。

  • ディスクは、–D オプションを指定した prtconf コマンドを使用して表示される sd ターゲットを使用する必要があります。prtconf(1M) を参照してください。

ストレージ URI を持つカーネルゾーンのデバイスリソース

次のサポートを利用できます。

  • ディスクとして使用されるデバイスがサポートされています。このサポートは、物理ディスク全体、SAN での物理または仮想ディスク全体、Oracle Solaris Cluster と組み合わせたデバイス、および ZFS ボリュームを対象とします。

  • カーネルゾーンは、nfs: URI を介して NFS ベースのストレージオブジェクトもサポートします。

    NFS URI は、指定された NFS ファイル上に作成された lofi デバイスに基づいてオブジェクトを指定します。NFS ファイルには user および  group から派生した資格証明を使用してアクセスします。user および group はユーザー名またはユーザー ID として指定できます。host は IPv4 アドレスとして、IPv6 アドレスとして、またはホスト名として指定できます。IPv6 アドレスは、角括弧 ([]) で囲む必要があります。

    形式:

    nfs://user:group@host[:port]/nfs-share-path/file
    

    例:

    nfs://admin:staff@host/export/test/nfs_file 
    nfs://admin:staff@host:1000/export/test/nfs_file 
      
  • カーネルゾーンは、デバイスリソースで bootpri および id プロパティーをサポートします。

    • ゾーンのルートプールの一部になるディスクでは、bootpri のみを設定します。ゾーンのルートプールの一部にならないディスクで bootpri を設定した場合、ディスク上のデータが破損する可能性があります。

      ブート可能にする必要があるデバイスにのみ bootpri を設定します。

    • id は、カーネルゾーンでディスクのインスタンスを制御します。たとえば、id=5 は、ディスクがゾーン内で c1d5 になることを意味します。

  • ブータブル solaris-kz ディスクで作成されるルート zpool は、インストール中に大域ゾーンにインポートできます。この時点で、zpool コマンドを使用してルート zpool を表示できます。詳細は、zpool(1M) を参照してください。

使用例 8  移植可能なゾーン構成を作成するためのストレージ URI の構成

デバイスリソースは、ゾーン構成をほかのシステムに移植可能にするストレージ URI を構成する場合にも使用できます。

# zonecfg -z my-zone
zonecfg:myzone> add device
zonecfg:myzone:device> set storage=nfs://user1:staff@host1/export/file1
zonecfg:myzone:device> set create-size=4g 

詳細は、suri(5) のマニュアルページを参照してください。

使用例 9  現在のデバイスリソース構成の表示

デバイスリソースの現在の構成についての情報を表示するには、info サブコマンドを使用してください。たとえば、次のように表示されます。

# zonecfg -z my-zone info device          
device: 
    match not specified              
    storage: dev:/dev/zvol/dsk/rpool/VARSHARE/zones/myzone/disk0                  
    id: 0
    bootpri: 0          
device:
    match not specified
    storage: nfs://user1:staff@host1/export/file1              
    create-size: 4g

ゾーンの ID を指定することによって、特定のゾーンの出力を表示できます。

# zonecfg -z my-zone info device id=1          
device:
    match not specified              
    storage: nfs://user1:staff@host1/export/file1              
    create-size: 4g
    id: 1              
    bootpri not specified
 

構成可能な特権

ゾーンをブートすると、safe 特権のデフォルトセットが構成に含められます。これらの特権は、ゾーン内の特権プロセスがシステムのほかの非大域ゾーン内のプロセスや大域ゾーン内のプロセスに影響を及ぼすことを防ぐため、安全と見なされます。 zonecfg コマンドを使用して、次の操作を実行できます。

  • デフォルトの特権セットに追加します。ただし、この種の変更を行うと、あるゾーン内のプロセスがグローバルリソースを制御できるようになって、ほかのゾーン内のプロセスに影響する場合があります。

  • デフォルトの特権セットから削除します。ただし、この種の変更を行うと、実行に必要な特権がないため一部のプロセスが正しく動作しなくなる場合があります。


注 - わずかですが、この時点でゾーンのデフォルト特権セットから削除できない特権があります。同じように、特権セットに追加できない特権もあります。

詳細は、Oracle Solaris ゾーンの作成と使用 の 非大域ゾーン内の特権Oracle Solaris ゾーンの作成と使用 の ゾーンの構成方法、および privileges(5) を参照してください。

リソースプールの関連付け

Oracle Solaris 11.3 でのリソースの管理 の 第 13 章, リソースプールの作成と管理のタスクの説明に従ってシステムでリソースプールを構成した場合、ゾーンの構成時に pool プロパティーを使用して、リソースプールの 1 つにゾーンを関連付けることができます。

dedicated-cpu リソースを使用すると、非大域ゾーンの実行中にシステムのプロセッサの一部をそのゾーン専用に割り当てるよう指定できます。dedicated-cpu プロパティーを使用すると、CPU、コア、およびソケットをゾーンに割り当てることができます。ゾーンの実行中に使用される一時プールが動的に作成されます。zonecfg によって指定すると、移行時にプールの設定が伝達されます。Oracle Solaris カーネルゾーンを構成する場合、virtual-cpu リソースも参照してください。

pool プロパティーを使用すると、同じプールを共有する複数のゾーンを構成できます。


注 - pool プロパティーによって設定される持続的プールを使用するゾーン構成と、dedicated-cpu リソースによって構成される一時プールには、互換性がありません。これら 2 つのプロパティーは、どちらか 1 つしか設定できません。

ゾーン規模のリソース制御の設定

大域管理者または適切な承認を持つユーザーは、ゾーン規模の特権付きリソース制御をゾーンに対して設定できます。ゾーン規模のリソース制御は、ゾーン内のすべてのプロセスエンティティーによる総リソース消費を制限します。

これらの制限は、大域ゾーンと非大域ゾーンのどちらに対しても、zonecfg コマンドを使用して指定します。Oracle Solaris ゾーンの作成と使用 の ゾーンの構成方法を参照してください。

ゾーン規模のリソース制御を設定するためのより簡単な推奨される方法は、cpu-cap などの rctl リソースではなく、capped-cpu などのプロパティー名またはリソースを使用することです。

zone.cpu-cap リソース制御は、1 つのゾーンで消費可能な CPU リソースの量に対する絶対的な制限を設定します。設定と同様、100 の値は 1 つの CPU の 100% を意味します。125 の値は 125% になります。CPU キャップの使用時は、100% がシステム上の 1 つの CPU の上限となります。


注 - capped-cpu リソースを設定する場合は、単位に小数を使用できます。この値は zone.cpu-cap リソース制御と相互に関連していますが、設定値はその 100 分の 1 になります。設定値 1 はリソース制御の設定値 100 に等しくなります。

zone.cpu-shares リソース制御は、公平配分スケジューラ (FSS) の CPU 配分の制限をゾーンに対して設定します。CPU 配分は、まずゾーンに対して割り当てられたあとで、project.cpu-shares エントリの指定に従って、ゾーン内のプロジェクトに分配されます。詳細は、Oracle Solaris ゾーンの作成と使用 の ゾーンがインストールされている Oracle Solaris システムでの公平配分スケジューラの使用を参照してください。この制御のグローバルプロパティー名は cpu-shares です。

zone.max-locked-memory リソース制御は、1 つのゾーンで使用できる、ロックされた物理メモリーの量に制限を設定します。ゾーン内のプロジェクト間でのロックされたメモリーリソースの割り当ては、project.max-locked-memory リソース制御を使用して制御できます。詳細は、Oracle Solaris 11.3 でのリソースの管理 の 使用可能なリソース制御を参照してください。

zone.max-lofi リソース制御は、1 つのゾーンで作成可能な lofi デバイスの数を制限します。

1 つのゾーンの LWP が多くなりすぎると、ほかのゾーンに影響を与えることがあります。zone.max-lwps リソース制御は、これを防ぐことで、リソースの隔離を向上させます。ゾーン内のプロジェクト間での LWP リソースの割り当ては、project.max-lwps リソース制御を使用して制御できます。詳細は、Oracle Solaris 11.3 でのリソースの管理 の 使用可能なリソース制御を参照してください。この制御のグローバルプロパティー名は max-lwps です。

zone.max-processes リソース制御は、1 つのゾーン内のあまりに多くの LWP が他のゾーンに影響を与えることを防ぐことによって、リソースの隔離性を高めます。ゾーン内の各プロジェクトに対するプロセステーブルスロットリソースの割り当ては、project.max-processes リソース制御 (Oracle Solaris 11.3 でのリソースの管理 の 使用可能なリソース制御に記載) を使用して設定できます。この制御のグローバルプロパティー名は max-processes です。zone.max-processes リソース制御は、zone.max-lwps リソース制御を含むこともできます。zone.max-processes が設定されていて zone.max-lwps が設定されていない場合、zone.max-lwps はゾーンのブート時に暗黙的に zone.max-processes の値の 10 倍に設定されます。正常なプロセスとゾンビプロセスの両方がプロセステーブルスロットを占有するため、max-processes 制御がプロセステーブルを消費しつくすゾンビプロセスから保護します。ゾンビプロセスには本来 LWP がないため、max-lwps でこの可能性から保護することはできません。

zone.max-msg-idszone.max-sem-idszone.max-shm-ids、および zone.max-shm-memory の各リソース制御は、ゾーン内のすべてのプロセスで使用される System V リソースを制限するために使用されます。ゾーン内のプロジェクト間での System V リソースの割り当ては、これらのリソース制御の project バージョンを使用して制御できます。これらの制御のグローバルプロパティー名は、max-msg-idsmax-sem-idsmax-shm-ids、および max-shm-memory です。

zone.max-swap リソース制御は、ゾーン内のユーザープロセスのアドレス空間マッピングと tmpfs マウントで消費されるスワップを制限します。prstat –Z の出力は「スワップ」列を表示します。報告されるスワップは、ゾーンのプロセスと tmpfs マウントで消費されるスワップの合計量です。この値により、各ゾーンで予約されているスワップをモニタリングしやすくなり、適切な zone.max-swap 設定を選択できます。

表 3  ゾーン規模のリソース制御
制御名
グローバルプロパティー名
説明
デフォルトの単位
使用される値
zone.cpu-cap
このゾーンに対する CPU リソース量の絶対的な制限。
数量 (CPU の数)、パーセントで表されます。

注 - capped-cpu リソースとして設定する場合は、単位に小数を使用できます。

zone.cpu-shares
cpu-shares
このゾーンに対する公平配分スケジューラ (FSS) の CPU 配分
数量 (配分)
zone.max-locked-memory
ゾーンで使用できるロックされた物理メモリーの合計量。
priv_proc_lock_memory がゾーンに割り当てられている場合、そのゾーンがすべてのメモリーをロックするのを防ぐため、このリソース制御の設定も検討してください。
サイズ (バイト)
capped-memorylocked プロパティー
zone.max-lofi
max-lofi
1 つのゾーンで作成可能な lofi デバイスの数に対する制限
数量 (lofi デバイスの数)
zone.max-lwps
max-lwps
このゾーンで同時に使用できる LWP の最大数
数量 (LWP 数)
zone.max-msg-ids
max-msg-ids
このゾーンに許容されるメッセージキュー ID の最大数
数量 (メッセージキュー ID の数)
zone.max-processes
max-processes
このゾーンで同時に使用できるプロセステーブルスロットの最大数
数量 (プロセステーブルスロット数)
zone.max-sem-ids
max-sem-ids
このゾーンに許容されるセマフォー ID の最大数
数量 (セマフォー ID の数)
zone.max-shm-ids
max-shm-ids
このゾーンに許容される共有メモリー ID の最大数
数量 (共有メモリー ID の数)
zone.max-shm-memory
max-shm-memory
このゾーンに許容される System V 共有メモリーの合計量
サイズ (バイト)
zone.max-swap
このゾーンのユーザープロセスのアドレス空間マッピングと tmpfs マウントで消費できるスワップの合計量。
サイズ (バイト)
capped-memoryswap プロパティー

prctl コマンドを使用すると、実行中のプロセスに対してこれらの制限を指定できます。例がOracle Solaris ゾーンの作成と使用 の prctl コマンドを使用して大域ゾーンの FSS 配分を設定する方法に記載されています。prctl コマンドで指定された制限には持続性がありません。システムがリブートされると、制限は無効になります。

ゾーンのコメントの追加

attr リソースの型を使ってゾーンのコメントを追加できます。詳細は、Oracle Solaris ゾーンの作成と使用 の ゾーンの構成方法を参照してください。