ゾーン構成リソースにより、ゾーンのシステムリソースを管理できます。ゾーン構成の作成時にリソースを指定します。一部のリソースは、カーネルゾーンでのみ、またはネィティブゾーンでのみサポートされます。
このセクションでは、リソースを構成して、次のコンポーネントのサポートを追加する方法について説明します。
カーネルゾーンの CPU。カーネルゾーンの CPU の管理を参照してください。
カーネルゾーンのメモリー。カーネルゾーンのメモリーの管理を参照してください。
カーネルゾーンのストレージデバイス。カーネルゾーンのストレージデバイスとブート順序の管理を参照してください。
カーネルゾーンのネットワークデバイスおよびネットワーク構成。カーネルゾーンのネットワークデバイスと構成の管理を参照してください。
カーネルゾーンのネットワーク仮想化。カーネルゾーンでのシングルルート I/O NIC 仮想化の管理を参照してください。
カーネルゾーンのベリファイドブート。ベリファイドブートを使用した Oracle Solaris カーネルゾーンのセキュリティー保護を参照してください。
カーネルゾーンのリソースの一時停止。suspend リソースの構成を参照してください。
zonecfg コマンドを大域ゾーンで使用して、カーネルゾーンリソースを設定または変更します。
ゾーンリソースの詳細については、Oracle Solaris ゾーン構成リソースおよび solaris-kz(5) のマニュアルページを参照してください。
デフォルトで、カーネルゾーンには作成時に 4 つの仮想 CPU が与えられます。カーネルゾーンの CPU の数を構成する次のいずれかの方法を使用して、仮想 CPU の数を変更できます。
dedicated-cpu リソースの追加と変更
virtual-cpu リソースの追加と変更
anet 待機時間グループからの CPU の追加
virtual-cpu および dedicated-cpu ゾーンリソースの設定方法については、Oracle Solaris ゾーンの作成と使用 の 第 1 章, 非大域ゾーンの計画および構成方法を参照してください。
パフォーマンスを最適にするために、dedicated-cpu リソースプロパティーを構成することを推奨します。この値を設定すると、カーネルゾーンは選択された CPU 上でのみ実行するように指定されます。カーネルゾーンに専用の CPU で、システム上のほかのプロセスを実行することはできません。
CPU の値は、使用可能なコアまたはプロセッサの観点から割り当てることができます。システムのプロセッサ情報を取得するには、psrinfo -vp を使用します。たとえば、次の psrinfo -vp 出力は、システム global に 4 つの使用可能なコアがあることを示しています。
global# psrinfo -vp The physical processor has 4 virtual processors (0-3) x86 (GenuineIntel 206D7 family 6 model 45 step 7 clock 2400 MHz) Intel(r) Xeon(r) CPU E5-2609 0 @ 2.40GHz
dedicated-cpu ゾーンリソースに関する全般的な情報については、Oracle Solaris ゾーンの作成と使用 の 第 1 章, 非大域ゾーンの計画および構成方法を参照してください。
使用例 1 カーネルゾーンへの専用 CPU の追加この例は、専用 CPU をカーネルゾーン kzone1 に追加する方法を示しています。
global# zonecfg -z kzone1 zonecfg:kzone1> info dedicated-cpu zonecfg:kzone1> add dedicated-cpu zonecfg:kzone1:dedicated-cpu> set ncpus=8 zonecfg:kzone1:dedicated-cpu> end zonecfg:kzone1> info dedicated-cpu ncpus: 8 zonecfg:kzone1> exit
virtual-cpu リソースは、カーネルゾーンで可視になる仮想 CPU の数を指定します。ホスト上では、仮想 CPU は CPU 時間をほかのゾーンと共有します。virtual-cpu リソースを設定することは、統合に役立ちますが、システムのパフォーマンスに影響する可能性があります。
dedicated-cpu リソースをすでに定義している場合、構成されている仮想 CPU のデフォルトの数は、dedicated-cpu リソース内の ncpus 範囲の下限値と一致します。両方のリソースが存在する場合は、整合性が相互チェックされます。詳細は、zonecfg(1M) のマニュアルページを参照してください。
使用例 2 カーネルゾーンへの仮想 CPU の追加この例は、virtual-cpu リソースを使用してカーネルゾーン kzone1 に追加の仮想 CPU を追加する方法を示しています。
global# zonecfg -z kzone1 zonecfg:kzone1> info virtual-cpu zonecfg:kzone1> add virtual-cpu zonecfg:kzone1:virtual-cpu> set ncpus=8 zonecfg:kzone1:virtual-cpu> end zonecfg:kzone1> info virtual-cpu virtual-cpu: ncpus: 8 zonecfg:kzone1> exit
待機時間グループから CPU を指定できます。待機時間グループから CPU を指定すると、待機時間のグループがベースとなるネットワークデバイスと同じ場合に、ネットワークパフォーマンスを向上させることができます。
待機時間グループの操作の詳細については、Oracle Solaris 11.3 での仮想ネットワークとネットワークリソースの管理 の 第 2 章, 仮想ネットワークの作成および管理を参照してください。
一定量の物理 RAM をカーネルゾーンの仮想プラットフォームに割り当てる必要があります。この量を定義するには、カーネルゾーンの capped-memory リソースの physical プロパティーを設定します。
カーネルゾーンに割り当てられる物理メモリーは、ゾーンのブート時にその全体に割り当てられます。 割り当てられるメモリーは、カーネルゾーンの排他的使用のためです。カーネルゾーンがブートしたら、capped-memory リソースに指定されたすべてのメモリーがホストオペレーティングシステムに使用されているように見えます。
デフォルトのカーネルゾーンのメモリーサイズ (capped-memory:physical) は 4G バイト (GB) です。より大きいワークロードを管理するには、メモリーサイズを増やすことをお勧めします。
カーネルゾーンのデフォルトの CPU およびメモリー構成は、アプリケーションの実行を容易にするために、4 つの VCPU と 4G バイトのメモリーです。追加のカーネルゾーンテンプレート SYSsolaris-kz-minimal は 1 VCPU と 2G バイトのメモリーのサポートされている最小のカーネルゾーンの構成を提供します。
x86 ベースシステムでは、2M バイト (MB) の増分で capped-memory リソースを設定する必要があります。
SPARC ベースシステムでは、256M バイト (MB) の増分で capped-memory リソースを設定する必要があります。
ゾーンは、ゾーンのブート時に capped-memory リソースを割り当てます。この量は、ゾーンの実行中は固定されたままになります。
capped-memory:pagesize-policy プロパティーは、カーネルゾーンの物理メモリーのページサイズを割り当てるためのポリシーを指定します。デフォルトでは、カーネルゾーンは最適なパフォーマンスを実現するために使用可能な最大のページサイズを使用します。詳細は、メモリーのページサイズポリシーと物理メモリーについてを参照してください。
capped-memory ゾーンリソースの設定方法については、Oracle Solaris ゾーンの作成と使用 の 第 1 章, 非大域ゾーンの計画および構成方法を参照してください。
capped-memory ゾーンリソースの設定の詳細は、Oracle Solaris ゾーン構成リソース の solaris-kz ゾーンと capped-memory リソースを参照してください。
インストール前にカーネルゾーンのメモリーサイズを増やした場合、スワップデバイスとダンプデバイスも大きくなるため、カーネルゾーンのルートディスクサイズも増やす必要があります。カーネルゾーンにディスクを明示的に追加しない場合、zvol が作成され、ルートディスクとして使用されます。デフォルトで、zvol のサイズは 16G バイトです。異なるルートディスクサイズが必要な場合は、zoneadm install –x install-size コマンドを使用して、ディスクサイズを変更します。たとえば、カーネルゾーン kzone1 に 32G バイトのルートディスクサイズを指定するには、次のインストール時に、次のコマンドを使用します。
global# zoneadm -z kzone1 install -x install-size=32G
zoneadm コマンドを使用したディスクサイズの変更については、zoneadm(1M) のマニュアルページを参照してください。
使用例 3 SPARC ベースシステムでの capped-memory リソースの設定この例では、SPARC ベースシステムに、capped-memory リソースの physical プロパティーを設定して、2048M バイトのメモリーを指定する方法を示します。
global# zonecfg -z kzone1 zonecfg:kzone1> select capped-memory zonecfg:kzone1:capped-memory> set physical=2048m zonecfg:kzone1:capped-memory> end zonecfg:kzone1> exit使用例 4 x86 システムでの capped-memory リソースの設定
この例では、x86 システムに、capped-memory リソースの physicalプロパティーを設定して、16G バイトのメモリーを指定する方法を示します。
global# zonecfg -z kzone1 zonecfg:kzone1> select capped-memory zonecfg:kzone1:capped-memory> set physical=16g zonecfg:kzone1:capped-memory> end zonecfg:kzone1> exit
capped-memory リソースの pagesize-policy プロパティーは、システムでカーネルゾーンのページサイズを選択する方法を制御します。
デフォルトのカーネルゾーンテンプレート SYSsolaris-kz では、pagesize-policy プロパティーを、最適なパフォーマンスを得るための推奨値である largest-available に設定します。この設定により、システムはカーネルゾーンの物理メモリー量に合わせて使用する適切なページサイズを選択できます。物理メモリーサイズはページサイズの倍数である必要があるため、システムではカーネルゾーン用に指定された物理メモリー量に合致する最大ページサイズを選択します。pagesize-policy=largest-available を使用したブートは常に成功します。
最適なパフォーマンスを得るには、pagesize-policy=largest-available の設定時に最大ページサイズの選択が可能になるように、適切な量の物理メモリーを設定します。
physical プロパティーを、サポートされている最大ページサイズの倍数になる量に設定する必要があります。割り当てられているメモリーの量が要求されているページサイズと完全に一致する必要があります。次の例を参照してください。
使用例 5 最大ページサイズを使用するように物理メモリーを設定するSPARC T5 システムでは、さまざまなページサイズがサポートされていることが次の出力でわかります。最大ページサイズは 2147483648 バイト (2G バイト) です。
2147483648 ページサイズを使用するには、pagesize-policy=largest-available の設定時に最大ページサイズを使用できるように、capped-memory:physical プロパティーを 2G バイトの倍数値である 8G バイトに設定します。
global# pagesize -a 8192 65536 4194304 268435456 2147483648 global# zonecfg -z kzone1 zonecfg:kzone1> select capped-memory zonecfg:kzone1:capped-memory> set physical=8G zonecfg:kzone1:capped-memory> info capped-memory: physical: 8G pagesize-policy: largest-available zonecfg:kzone1:capped-memory> end zonecfg:kzone1> exit
カーネルゾーンの pagesize-policy プロパティーがクリアされているか、設定されていない場合、カーネルゾーンではそれが実行されている特定のハードウェアプラットフォームでブートするために必要な許容最小ページサイズを使用します。
Oracle Solaris 11.3 のアップデートで作成されたカーネルゾーンを、pagesize-policy プロパティーをサポートしていない古い Oracle Solaris リリース (Oracle Solaris 11.3 の初期リリースなど) に移行する場合は、pagesize-policy をクリアする必要があります。次の例を参照してください。
使用例 6 以前のバージョンの Oracle Solaris への移行前に pagesize-policy プロパティーをクリアするこの例では、pagesize-policy プロパティーをクリアして、そのプロパティーをサポートしていない古いリリースの Oracle Solaris にカーネルゾーンを移行する準備を整える方法を示します。
global# zonecfg -z kzone1 zonecfg:kzone1> select capped-memory zonecfg:kzone1:capped-memory> clear pagesize-policy zonecfg:kzone1:capped-memory> end zonecfg:kzone1> commit
最初に、移行の試験実行を行い、zoneadm migrate -n オプションを使用して pagesize-policy をクリアする必要があるかどうかを確認できます。詳細は、 zoneadm (8) のマニュアルページまたはOracle Solaris カーネルゾーンの移行を参照してください。
まれに、最大ページサイズを使用していなければ、ブートを回避するために pagesize-policy=largest-only を設定することが必要な場合もあります。これは、パフォーマンスが最大ページサイズの使用に左右されるデータベースまたはほかのアプリケーションをホストするカーネルゾーンに役立つことがあります。
physical および pagesize-policy プロパティーの設定方法の詳細は、Oracle Solaris ゾーン構成リソース の solaris-kz ゾーンと capped-memory リソースを参照してください。
カーネルゾーンのルートは常にアクセス可能です。デフォルトでは、カーネルゾーンのインストールは、ルートディスクに 16G バイトの ZFS ボリュームを使用します。–x install-size オプションを付けて zoneadm -z install コマンドを使用して、ゾーンのインストール時に異なるサイズを指定できます。たとえば、カーネルゾーン kzone1 の ZFS のサイズを 32G バイトに増やすには、次のようにします。
global# zoneadm -z kzone1 install -x install-size=32g
add device リソースを使用すると、追加のストレージデバイスをカーネルゾーンに追加できます。デバイスは、システム間で移植可能で、ZFS ボリュームのパフォーマンスを向上させます。追加のカーネルゾーンのストレージデバイスには、次の要件があります。
ストレージデバイスのフルパス (/dev/rdsk/c9t0d0 など) を指定する必要があります。
ストレージデバイスは次のいずれか 1 つで定義する必要があります。
add device match リソースプロパティー。add device match リソースプロパティーにストレージデバイスを指定する場合は、/dev/rdsk、/dev/zvol/rdsk、または /dev/did/rdsk に存在するデバイスを指定する必要があります。
有効なストレージ URI。
ストレージデバイスはディスク全体か LUN である必要があります。
ストレージデバイスごとのブート順序を指定するには、bootpri リソースプロパティーを使用します。bootpri リソースプロパティーは正の整数値に設定する必要があります。
注意 - デバイスをブートデバイスとして使用する場合のみ、bootpri リソースプロパティーを設定する必要があります。bootpri リソースプロパティーをブートデバイス以外のデバイスに設定すると、データが破損する可能性があります。 |
bootpri リソースプロパティーの設定を解除するには、clear bootpri リソースプロパティーを使用します。
ブート可能な複数のデバイスがインストール中に存在する場合、これらのデバイスはゾーン内のミラー化 ZFS プールで使用されます。
デバイスごとのデフォルトのブート順は、最初に bootpri でデバイスをソートし、複数のデバイスが同じ bootpri を持つ場合は、次に id でソートして決定されます。
使用例 7 カーネルゾーンへのストレージデバイスの追加この例は、ストレージデバイス /dev/rdsk/c9t0d0 をカーネルゾーン kzone1 に追加する方法を示しています。
global# zonecfg -z kzone1 zonecfg:kzone1> add device zonecfg:kzone1:device> set match=/dev/rdsk/c9t0d0 zonecfg:kzone1:device> set bootpri=4 zonecfg:kzone1:device> end使用例 8 ストレージ URI を使用するためのカーネルゾーンのデフォルトのブートデバイスの変更:
この例は、iscsi://zfssa/luname.naa.600144F0DBF8AF19000052E820D60003 にあるストレージ URI を使用するように、カーネルゾーン kzone1 でデフォルトのブートデバイスを変更する方法を示しています。
global# zonecfg -z kzone1 zonecfg:kzone1> select device id=0 zonecfg:kzone1:device> set storage=iscsi://zfssa/luname.naa.600144F0DBF8AF19000053482CC00029 zonecfg:kzone1:device> end zonecfg:kzone1> info device device: match not specified storage: iscsi://zfssa/luname.naa.600144F0DBF8AF19000052E820D60003 id: 0 bootpri: 0
カーネルゾーンは、net または anet リソースの追加によってカーネルゾーンでのネットワークアクセスを提供します。これらの 2 つのリソースタイプの詳細は、Oracle Solaris ゾーン構成リソース の 構成可能なリソースとプロパティーおよびOracle Solaris ゾーン構成リソースを参照してください。
排他的 IP ゾーンをカーネルゾーンに使用する必要があります。排他的 IP ゾーンの詳細は、Oracle Solaris ゾーンの作成と使用 の 排他的 IP ゾーンのネットワークアドレスを参照してください。
追加の MAC アドレスを指定すると、入れ子にされたゾーン、またはカーネルゾーンが非大域 solaris および solaris10 ブランドゾーンをホストするゾーンをサポートできます。入れ子にされたゾーンの詳細は、入れ子にされたゾーンの管理を参照してください。
オプションでネットワークデバイス ID を指定して、ゾーン内から VNIC アドレスを識別して、ネットワークインタフェースがカーネルゾーンに表示される順序を決定できます。このプロセスは、ある物理スロットから別の物理スロットへの NIC の移動に似ています。
ネットワークゾーンリソースの設定方法については、Oracle Solaris ゾーンの作成と使用 の 第 1 章, 非大域ゾーンの計画および構成方法を参照してください。
使用例 9 カーネルゾーンへのネットワークリソースの追加この例は、ネットワークリソースをカーネルゾーン kzone1 に追加する方法を示しています。ID が 3 に設定され、新しい anet インタフェースがカーネルゾーンに表示される順序が決定されます。
global# zonecfg -z kzone1 zonecfg:kzone1> add anet zonecfg:kzone1:anet> set id=3 zonecfg:kzone1:anet> end zonecfg:kzone1> exit使用例 10 カーネルゾーンからのネットワークデバイスの削除
この例は、カーネルゾーン kzone1 からネットワークデバイスを削除する方法を示しています。既存の anet リソースに関する情報が一覧表示され、値が 1 の anet デバイスが削除されます。
global# zonecfg -z kzone1 info anet anet: lower-link: auto allowed-address not specified allowed-dhcp-cids not specified link-protection: mac-nospoof mac-address: random mac-prefix not specified mac-slot not specified vlan-id not specified priority not specified rxrings not specified txrings not specified mtu not specified maxbw not specified rxfanout not specified vsi-typeid not specified vsi-vers not specified vsi-mgrid not specified etsbw-lcl not specified cos not specified id: 0 anet: lower-link: auto allowed-address not specified allowed-dhcp-cids not specified link-protection: mac-nospoof mac-address: default mac-prefix not specified mac-slot not specified vlan-id not specified priority not specified rxrings not specified txrings not specified mtu not specified maxbw not specified rxfanout not specified vsi-typeid not specified vsi-vers not specified vsi-mgrid not specified etsbw-lcl not specified cos not specified id: 1 global# zonecfg -z kzone1 remove anet id=1